Как исправить ошибку при печати новой счет-фактуры по Постановлению 1137 в 1С 7.7 Торговля и Склад

Пользователь 1С v7.7 Налоговый учет Торговля и дистрибуция
← На главную

С введением новых правил заполнения счетов-фактур согласно Постановлению Правительства РФ №1137 (в редакции №534 от 01.07.2021), многие пользователи платформы 1С 7.7 «Торговля и Склад» столкнулись с техническими сложностями. Самая распространенная проблема — возникновение ошибок при попытке вывести документ на печать, а также вопросы, связанные с «пропавшими» колонками для прослеживаемых товаров. В этой статье мы подробно разберем, как устранить ошибку ДатаДокВходящий и правильно настроить отображение новой формы.

Почему возникает ошибка ДатаДокВходящий

Проанализируем природу данной ошибки. В системе 1С:Предприятие 7.7 существует несколько типовых конфигураций, самыми популярными из которых являются «Бухгалтерский учет» (БП) и «Торговля и Склад» (ТиС). Структура документов в них различается. В конфигурации «Бухгалтерский учет» в документе СчетФактураВыданный присутствует реквизит ДатаДокВходящий, который используется для учета входящих номеров и дат. Однако в конфигурации «Торговля и Склад» такого реквизита в стандартной структуре документа нет.

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

Конфликт встроенной и внешней печатной формы

Выясним причину, по которой 1С продолжает использовать ошибочную форму, даже если конфигурация была обновлена. В последних релизах 1С 7.7 (например, начиная с 7.70.1004 для ТиС) разработчики уже включили обновленную печатную форму непосредственно в саму конфигурацию. Однако архитектура 1С 7.7 работает по принципу приоритета внешних файлов:

  1. Программа проверяет наличие внешней формы в каталоге ExtForms\PrnForms.
  2. Если там найден файл регистрации (.efd) и сама форма (.ert), система запускает их.
  3. Если внешних файлов нет, программа обращается к «родной» форме, зашитой внутри метаданных.

Рассмотрим ситуацию: пользователь скачивает обновление, в инструкции к которому сказано «зарегистрировать внешнюю форму». Но часто в архиве обновлений лежат старые или недоработанные файлы, в то время как внутри обновленного .md файла уже находится корректная рабочая версия. Таким образом, регистрируя внешнюю форму SF1137.ert, вы собственноручно блокируете работу правильной встроенной формы.

Пошаговое решение проблемы с печатью

Для решения проблемы нам необходимо «очистить» систему от некорректных внешних обработок. Выполним следующие действия:

  1. Зайдем в папку, где установлена информационная база 1С.
  2. Перейдем по пути: каталог_базы\ExtForms\PrnForms.
  3. Найдем файлы с названиями SF1137.ert и SF1137.efd.
  4. Удалим эти файлы (или переместим их в архивную папку за пределами каталога базы).
  5. Запустим 1С в режиме «Предприятие».
  6. Перейдем в меню Сервис — Регистрация внешних печатных форм.
  7. Если в списке для документа «Счет-фактура выданный» все еще значится «Счет-фактура Постановление 1137» с указанием на внешний файл, удалим эту строку из списка.

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

Разбираемся с графами 12, 12а и 13 (Прослеживаемость)

Другой частый вопрос пользователей: «Почему в новой форме нет столбцов 12, 12а и 13?». Разберем требования законодательства. Согласно Постановлению №1137 в редакции №534, эти графы предназначены исключительно для операций с товарами, подлежащими прослеживаемости (РНПТ).

Важно понимать алгоритм работы актуальной формы в 1С:

Если вы видите, что форма датирована 2021 годом, но колонок нет — это не ошибка, а правильная работа программного кода, экономящего место на листе в соответствии с правилами заполнения.

Проверка программного кода (для программистов)

Если вы все же решили использовать внешнюю форму и хотите исправить ее самостоятельно, проанализируем фрагмент кода, который обычно вызывает сбой. В модуле формы SF1137.ert нужно заменить прямое обращение к реквизиту на проверку его существования или на использование данных документа-основания.

Пример исправления обращения к входящей дате:


// Вместо ошибочного:
// ПечДатаВх = Докум.ДатаДокВходящий;

// Используем безопасный вариант для ТиС:
Если Метаданные.Документ(Докум.Вид()).РеквизитШапки("ДатаДокВходящий").Выбран() = 1 Тогда
    ПечДатаВх = Докум.ДатаДокВходящий;
Иначе
    // Для ТиС берем дату самого документа или иную логику
    ПечДатаВх = Докум.ДатаДок;
КонецЕсли;

Также обратим внимание на заполнение новой строки 5а (Документ об отгрузке). В 1С 7.7 ТиС этот реквизит формируется динамически. Проверьте, чтобы в коде формирования этой строки использовались функции получения номера и даты первичного документа (например, «Реализация купленного товара»). Если документ-основание не заполнен, строка 5а может остаться пустой, что будет нарушением правил заполнения.

Подводя итог, отметим: в 90% случаев для корректной работы в 1С 7.7 достаточно просто обновить конфигурацию до актуального релиза и удалить старые внешние файлы из папки PrnForms. Это гарантирует использование кода, протестированного разработчиками 1С на соответствие всем нормам Постановления 1137.

← На главную