Как отладить внешнюю печатную форму в 1С:УНФ и почему выводится не тот макет

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

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

Разберем детально обе проблемы, выясним логику работы подсистемы печати БСП и рассмотрим рабочие способы отладки внешних печатных форм на управляемых формах.

Почему выводится не тот макет: влияние регистра пользовательских макетов

В типовых конфигурациях 1С на управляемых формах макеты печатных форм могут редактироваться пользователями прямо в режиме «1С:Предприятие» без изменения конфигурации. Для хранения измененных вариантов используется РегистрСведений.ПользовательскиеМакетыПечати (раздел Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм).

Механизм работы подсистемы печати устроен следующим образом:

  1. При формировании печатной формы система сначала проверяет регистр сведений ПользовательскиеМакетыПечати.
  2. Если в регистре найдена запись с соответствующим идентификатором макета, система переопределяет стандартный макет и подставляет версию из информационной базы.
  3. В результате изменения, внесенные разработчиком в табличный документ внутри файла .epf, полностью игнорируются, так как сохраненный пользовательский макет имеет наивысший приоритет.

Чтобы восстановить вывод актуального макета из внешней печатной формы, выполним следующие шаги:

  1. Откроем список пользовательских макетов через раздел администрирования или напрямую через функции для технического специалиста / регистр сведений ПользовательскиеМакетыПечати.
  2. Найдем строку с нужной печатной формой (она будет отмечена специальным значком отредактированного макета).
  3. Нажмем кнопку Использовать стандартный или удалим запись из регистра. После этого значок модификации исчезнет, и система начнет брать макет непосредственно из внешней обработки.

Также важно помнить о механизме справочника ДополнительныеОтчетыИОбработки: при подключении внешней печатной формы ее файл сохраняется в базе данных. Если вы изменили файл на диске, обязательно выполните повторную загрузку файла .epf в карточку элемента справочника.

Способ 1. Отладка ВПФ через создание тестовой управляемой формы

Наиболее удобный способ разработки и отладки внешних печатных форм — встроить во внешнюю обработку собственную вспомогательную форму. Это позволяет запускать обработку через меню Файл → Открыть без необходимости постоянной перезагрузки файла в справочник дополнительных обработок.

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

  1. В конфигураторе откроем внешнюю обработку и добавим новую основную управляемую форму.
  2. В реквизитах формы создадим реквизит ДокументСсылка с типом ссылки на проверяемый документ (например, ДокументСсылка.РасходнаяНакладная).
  3. Вынесем реквизит на форму и добавим команду СформироватьПечать с кнопкой.
  4. В модуле формы напишем вызов процедуры печати, передав ссылку на документ в процедуру модуля объекта:

&НаКлиенте
Процедура СформироватьПечать(Команда)
    СформироватьПечатьНаСервере();
КонецПроцедуры

&НаСервере
Процедура СформироватьПечатьНаСервере()
    ОбъектОбработки = РеквизитВФорму(РеквизитФормы);
    
    МассивОбъектов = Новый Массив;
    МассивОбъектов.Добавить(ДокументСсылка);
    
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("ИмяМакета");
    ОбъектыПечати = Новый СписокЗначений;
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    
    ОбъектОбработки.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    
    ТабличныйДокумент = КоллекцияПечатныхФорм[0].ТабличныйДокумент;
    ТабличныйДокумент.Показать("Тест внешней печатной формы");
КонецПроцедуры

Теперь при открытии файла .epf через Файл → Открыть в режиме предприятия мы можем установить точку останова в процедуре Печать модуля объекта внешней обработки и детально отследить формирование табличного документа.

Способ 2. Отладка подключенной ВПФ через типовые модули БСП

Если печатная форма уже подключена через справочник ДополнительныеОтчетыИОбработки и нужно проверить ее поведение в реальном контуре документа, используем пошаговую отладку:

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

Важные настройки окружения для отладки

Проанализируем технические параметры, без которых отладчик может не останавливаться на точках останова:

  1. Отладка на сервере: Формирование печатных форм происходит на стороне сервера. Служба сервера 1С:Предприятия должна быть запущена с параметром -debug (или с включенной HTTP-отладкой).
  2. Фоновые задания: В современных версиях БСП печать может выполняться асинхронно в фоновом задании. В конфигураторе перейдем в меню Отладка → Настройка автоматического подключения и обязательно включим флаг Фоновые задания.
  3. Безопасный режим: Если при регистрации ВПФ указан безопасный режим, обработка не сможет выполнять ряд привилегированных операций или работать с файловой системой сервера. Для полноценной отладки в функции СведенияОВнешнейОбработке() рекомендуется устанавливать свойство БезопасныйРежим = Ложь.
← На главную