При оформлении импортных операций в конфигурации «Бухгалтерия предприятия 2.0» пользователи часто сталкиваются с блокирующей ошибкой при попытке провести документ ГТД по импорту. Система выдает сообщение: «Запись не верна! Значение поля "Счет-Фактура" не может быть пустым!», ссылаясь на регистр сведений ЖурналУчетаСчетовФактур. Ситуация осложняется тем, что в ошибке часто фигурирует странная дата — 01.04.2019, хотя сам документ может быть оформлен значительно позже.
В этой статье мы подробно разберем внутреннюю логику работы документа, проанализируем программный код запроса, формирующего движения, и выясним, какие именно данные в пользовательском интерфейсе приводят к такому сбою.
Для начала выясним, почему система требует заполнения поля Счет-Фактура в документе, который сам по себе не является счетом-фактурой. Согласно законодательству РФ, при импорте товаров из стран, не входящих в ЕАЭС, роль счета-фактуры для книги покупок выполняет именно таможенная декларация (ГТД). В 1С:БП 2.0 для корректного построения отчетности по НДС документ ГТД по импорту должен создать техническую запись в регистр Журнал учета счетов-фактур, где в качестве ссылки на счет-фактуру он указывает самого себя.
Если в процессе проведения программный алгоритм не может корректно определить «самого себя» как источник данных или теряет связь с поставщиком, поле остается пустым, что вызывает отказ в записи регистра. Рассмотрим, как это выглядит в коде типового запроса.
Проанализируем фрагмент запроса, который собирает данные для формирования записей в журнале:
ВЫБРАТЬ
Реквизиты.Период КАК Период,
Реквизиты.Ссылка КАК Регистратор,
Реквизиты.Организация КАК Организация,
ВЫБОР
КОГДА ТаблицаПоставщик.Посредник = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
ТОГДА ТаблицаПоставщик.Поставщик
ИНАЧЕ ТаблицаПоставщик.Посредник
КОНЕЦ КАК Контрагент,
"" КАК КППКонтрагента,
Реквизиты.Ссылка КАК СчетФактура,
...
Как мы видим, поле СчетФактура заполняется из временной таблицы Реквизиты.Ссылка. Однако данные в итоговую выборку попадают только при условии успешного соединения с временной таблицей ТаблицаПоставщик. Если эта таблица оказывается пустой, итоговая выборка не возвращает строк, либо возвращает некорректные данные, что приводит к ошибке при записи набора записей в регистр.
Многих сбивает с толку дата 01.04.2019 в тексте ошибки. Это не ошибка в ваших данных, а «жесткая» граница в программном коде 1С. Именно с этой даты вступили в силу изменения в постановление Правительства №1137, касающиеся правил ведения журнала учета счетов-фактур. В коде проведения документа ГТД по импорту существует проверка:
И Реквизиты.Период >= ДАТАВРЕМЯ(2014, 10, 1) (для старых периодов)
Система пытается сопоставить данные документа с требованиями актуального законодательства. Если алгоритм формирования временных таблиц дает сбой, механизмы проверки НДС могут «сваливаться» в обработку исключений, подставляя граничные даты периодов, по которым не удалось получить четких данных из запроса.
Наиболее частая причина «пустого счета-фактуры» кроется в табличной части «Товары». Посмотрим на структуру формирования временной таблицы ТаблицаПоставщик в запросе:
ВЫБРАТЬ ПЕРВЫЕ 1
...
ПОМЕСТИТЬ ТаблицаПоставщик
ИЗ
ТоварыДокумента КАК ТоварыДокумента
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
...
ПО ТоварыДокумента.ДокументПартии = ПоступлениеТоваровУслуг.Ссылка
Обратим внимание на ВНУТРЕННЕЕ СОЕДИНЕНИЕ (INNER JOIN). Это означает, что если в табличной части документа ГТД хотя бы у одного товара не указан или указан неверно Документ партии (ссылка на Поступление товаров и услуг), вся таблица ТаблицаПоставщик может оказаться пустой.
Что нужно сделать:
ГТД по импорту на вкладке Товары.Поступление товаров и услуг проведены и не помечены на удаление.Вторая распространенная причина связана с настройкой договоров. Для работы документа ГТД по импорту необходимо соблюдение баланса между договором с таможней и договором с иностранным поставщиком.
Проанализируем ситуацию: документ ГТД обычно оформляется на таможню (или таможенного брокера), где вид договора должен быть Прочее. Однако товары, указанные в ГТД, ссылаются на документы поступления от иностранного поставщика, где вид договора — С поставщиком.
Важные моменты:
Поступление товаров и услуг по ошибке выбран договор с видом С комитентом или С комиссионером, 1С задействует механизмы агентской схемы.СчетФактура в журнале не может быть заполнено по стандартному алгоритму импорта.Иногда пользователи пытаются «помочь» системе и на вкладке Счет-фактура в документе поступления ставят галочку Предъявлен счет-фактура. Разберем, почему при импорте этого делать нельзя.
При импорте из «дальнего зарубежья» поставщик не выставляет счет-фактуру российского образца. НДС платится на таможне. Если в ПТУ поставить признак предъявления счета-фактуры, система будет ожидать ввода отдельного документа Счет-фактура полученный. При проведении ГТД возникнет конфликт: система увидит, что по данной партии уже ожидается или зафиксирован счет-фактура от поставщика, и «запутается» в том, что именно регистрировать в Журнале учета счетов-фактур.
Инструкция:
Поступление товаров и услуг, который является базовым для нашей ГТД.Если программный код типовой и все данные заполнены верно, но ошибка сохраняется (особенно с аномальной датой), выясним, нет ли в базе «битых» записей. Ошибка «Запись не верна» часто возникает не при создании новой записи, а при попытке системы перезаписать существующий набор по данному регистратору.
Рассмотрим шаги по очистке:
Журнал учета счетов-фактур по данному документу. Если записи остались после распроведения — их нужно удалить программно.Подводя итог, можно сказать, что в 90% случаев проблема решается заполнением колонки «Документ партии» в табличной части товаров ГТД. Именно это поле является «ключом» для соединения всех временных таблиц в запросе проведения. Без него ссылка на сам документ ГТД не попадает в итоговый набор записей регистра, что и вызывает ошибку пустого значения счета-фактуры.