Как исправить ошибку «Поле объекта не обнаружено (ИдентификаторГосКонтракта)» во внешней счет-фактуре 1С?

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

При использовании внешних печатных форм в конфигурации 1С:Бухгалтерия предприятия 2.0 после очередного обновления релиза (в частности, начиная с релиза 2.0.66.32) пользователи часто сталкиваются с критической ошибкой:

Не удалось сформировать внешнюю печатную форму! Поле объекта не обнаружено (ИдентификаторГосКонтракта)

Рассмотрим подробно причины возникновения этой неисправности и разберем по шагам, как отредактировать внешнюю печатную форму для восстановления ее работоспособности.

Выясним причину возникновения ошибки

Данная проблема вызвана изменениями в законодательстве Российской Федерации (Постановления Правительства РФ № 625 и № 981 к Постановлению № 1137). Согласно этим нормативным актам, в форму счета-фактуры была добавлена обязательная строка 8 — «Идентификатор государственного контракта, договора (соглашения)».

В типовых конфигурациях 1С разработчики обновили механизмы и общие модули формирования печатных форм (в частности, модуль учета НДС). При вызове функции печати система ожидает, что в структуре заголовочных данных счета-фактуры будет присутствовать ключ ИдентификаторГосКонтракта.

Так как внешние печатные формы (файлы .epf) содержат собственные вынесенные алгоритмы формирования структуры данных или тексты запросов, скопированные из старых релизов, в них отсутствует данный реквизит. При попытке обращения типового кода к отсутствующему полю структуры платформа выбрасывает исключение «Поле объекта не обнаружено».

Способ 1. Добавление реквизита в структуру данных (быстрое решение)

Проанализируем программный код внешней печатной формы. В месте, где формируется структура заголовочных данных документа (обычно это переменная с именем ДанныеСчетаФактуры или аналогичная), необходимо принудительно добавить требуемый ключ.

Разберем по шагам порядок действий в конфигураторе:

  1. Откроем внешнюю печатную форму (файл .epf) в режиме конфигуратора.
  2. Найдем модуль объекта внешней обработки и процедуру, отвечающую за формирование структуры данных шапки документа.
  3. Добавим заполнение поля из документа-источника:

ДанныеСчетаФактуры.Вставить("ИдентификаторГосКонтракта", СсылкаНаОбъект.ИдентификаторГосКонтракта);

Если в вашей организации государственные контракты не используются и данный параметр не имеет значения для выгрузки, в качестве временного решения можно передать пустую строку:

ДанныеСчетаФактуры.Вставить("ИдентификаторГосКонтракта", "");

Способ 2. Корректировка текста запроса во внешней печатной форме

Если внешняя форма формирует данные с помощью объекта Запрос, правильнее всего доработать сам текст запроса, чтобы реквизит считывался напрямую из базы данных.

В секцию ВЫБРАТЬ запроса выборки данных счета-фактуры необходимо добавить поле реквизита:


ВЫБРАТЬ
    СчетФактураВыданный.Ссылка КАК Ссылка,
    СчетФактураВыданный.Номер КАК Номер,
    СчетФактураВыданный.Дата КАК Дата,
    СчетФактураВыданный.ИдентификаторГосКонтракта КАК ИдентификаторГосКонтракта
ИЗ
    Документ.СчетФактураВыданный КАК СчетФактураВыданный

Если документ-источник в базе не содержит этого реквизита или форма универсальна, можно выбрать пустую строку с заданным псевдонимом:

"" КАК ИдентификаторГосКонтракта

Способ 3. Обновление макета печатной формы

Помимо кода обработки, обратите внимание на табличный документ (макет) внешней печатной формы. Посмотрим на структуру печатного бланка: для корректной выгрузки и отображения строки 8 в макете также должен присутствовать параметр с именем ИдентификаторГосКонтракта.

  1. Откроем макет печатной формы во внешней обработке.
  2. Проверим наличие ячейки для строки 8 «Идентификатор государственного контракта, договора (соглашения)».
  3. Убедимся, что заполнение ячейки установлено в значение Параметр, а имя параметра совпадает с ИдентификаторГосКонтракта.

Важное замечание о налоговых рисках

Подстановка пустой строки "" решает техническую проблему формирования печатной формы. Однако помните: если ваша организация работает по государственным контрактам или гособоронзаказу (в рамках 44-ФЗ, 223-ФЗ или 275-ФЗ), незаполнение строки 8 в выставленной счет-фактуре является нарушением требований статьи 169 Налогового кодекса РФ. Это может повлечь отказ налоговых органов в принятии НДС к вычету у покупателя. В таких случаях реквизит должен обязательно заполняться реальными данными из документа.

← На главную