Почему 1С:ERP требует проведения документа перед печатью и как это исправить?

Программист 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием IT и автоматизация бизнеса
← На главную

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

Анализ причины блокировки печати

Основная причина заключается в обновлении механизмов Библиотеки стандартных подсистем (БСП). В последних версиях ERP разработчики усилили контроль целостности данных — для этого подойдёт настройка правил контроля и проверки документов. Раньше внешние обработки могли свободно считывать данные из табличных частей документа, но теперь подсистема Печать может принудительно проверять состояние документа (статус проведения) на уровне общих модулей. Это делается для предотвращения формирования отчетов с неактуальными данными, однако в задачах оперативного учета часто требуется распечатать черновик, который еще не прошел процедуру проведения.

Рассмотрим способы решения проблемы

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

Способ 1: Настройка параметров команды печати

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


ПараметрыКоманды = ПолучитьСтруктуруКоманды();
ПараметрыКоманды.Вставить("ТребуетсяПроведение", Ложь);
// Дополнительно можно проверить параметр проверки проведения
ПараметрыКоманды.Вставить("ПроверкаПроведенияПередПечатью", Ложь);

Однако, как показывает практика, в последних релизах ERP одного этого параметра может быть недостаточно, так как проверка вшита глубже в логику конфигурации.

Способ 2: Отладка процесса вызова печати

Если простая настройка параметров не помогает, необходимо выполнить отладку. Разберем, как найти источник проблемы:

  1. Запустите «Конфигуратор» (поможет инструментарий для отладки и анализа запросов 1С) и установите точку останова в общем модуле УправлениеПечатью.
  2. Выполните печать из непроведенного документа и проследите стек вызовов — для этого подойдёт отладчик кода 1С в режиме Предприятие.
  3. Выясните, какая именно процедура инициирует проверку ДокументОбъект.Проведен (например, при печати приходного ордера).
  4. Часто источником являются обработчики событий в модуле менеджера объекта документа. Проверьте, нет ли там вызовов, которые принудительно вызывают исключение или диалоговое окно при попытке печати без проведения.

Способ 3: Оптимизация получения данных

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

Важные рекомендации по работе с БСП

Всегда помните, что изменения в БСП могут быть глобальными. Если вы столкнулись с проблемой даже в штатных печатных формах (как в случае с ТОРГ-12 из вашего вопроса), возможно, в настройках раздела НСИ и администрирование появилась новая опция, ограничивающая печать. Проверьте настройки «Печатные формы, отчеты и обработки» — иногда там включаются жесткие политики безопасности, требующие обязательного отражения документа в учете.

Если после всех манипуляций проблема сохраняется, рекомендуем перенести логику печати из внешнего модуля объекта в отдельную процедуру, которая не вызывает серверные вызовы, проверяющие статус документа. Таким образом, мы сможем добиться печати черновиков без внесения изменений в саму конфигурацию 1С:ERP, сохраняя ее типовой статус для последующих обновлений.

← На главную