Как отлаживать внешние печатные формы в 1С 8.3 на управляемых формах?

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

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

Рассмотрим подробнее эффективные и надежные способы отладки внешних печатных форм без лишних рутинных действий.

Способ 1. Создание вспомогательной формы внутри самой внешней обработки

Разберем самый простой и быстрый способ, который позволяет автономно запускать и тестировать формирование печатной формы прямо из файла .epf через меню Файл → Открыть в режиме «1С:Предприятие».

Для реализации этого метода выполним следующие шаги:

  1. Откроем внешнюю печатную форму в конфигураторе.
  2. Добавим новую основную форму обработки (управляемую).
  3. Разместим на форме реквизит с типом ссылки на документ (например, ДокументСсылка.ЗаказКлиента) или массив/список ссылок, для которых будет формироваться форма.
  4. Добавим на форму реквизит ПолеТабличногоДокумента с типом ТабличныйДокумент и вынесем его на форму для предпросмотра результата.
  5. Создадим команду формы (например, Сформировать) и привяжем ее к кнопке.

Посмотрим на пример кода в модуле вспомогательной формы. Процедура Печать в БСП ожидает строгий набор входных параметров, поэтому инициализируем их стандартными методами подсистемы печати:


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

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

Теперь мы можем ставить точки останова в модуле объекта внешней обработки, открывать файл обработки в пользовательском режиме, выбирать нужный документ и запускать процесс печати с возможностью пошаговой трассировки.

Способ 2. Отладка через точку останова в общем модуле БСП («Шаг с заходом»)

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

Разберем последовательность действий:

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

Способ 3. Перенос кода во временное расширение конфигурации

В конфигурациях с режимом совместимости 8.3.9 и выше удобным вариантом является перенос разрабатываемой формы в расширение конфигурации. Это позволяет избежать ограничений, связанных с отладкой внешних файлов:

  1. Создаем пустое расширение конфигурации с назначением «Адаптация» или «Дополнение».
  2. Добавляем в расширение обработку и переносим в нее макеты и код модуля объекта ВПФ.
  3. Код внутри расширения компилируется как стандартная часть конфигурации, что гарантирует мгновенное срабатывание точек останова и избавляет от необходимости постоянного переподключения файла обработки.
  4. После завершения разработки и отладки алгоритм и макет копируются обратно в файл внешней обработки .epf.

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

Проанализируем технические параметры платформы, влияющие на процесс отладки:

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