Разработка внешних печатных форм (ВПФ) под интерфейс «Такси» на платформе 1С:Предприятие 8.3 с использованием Библиотеки стандартных подсистем (БСП) часто вызывает сложности на этапе отладки. При обычном открытии файла внешней обработки в режиме предприятия процедура формирования макета не запускается, а каждый раз перезагружать обработку в справочник «Дополнительные отчеты и обработки» крайне неудобно и занимает много времени.
Рассмотрим подробнее эффективные и надежные способы отладки внешних печатных форм без лишних рутинных действий.
Разберем самый простой и быстрый способ, который позволяет автономно запускать и тестировать формирование печатной формы прямо из файла .epf через меню Файл → Открыть в режиме «1С:Предприятие».
Для реализации этого метода выполним следующие шаги:
ДокументСсылка.ЗаказКлиента) или массив/список ссылок, для которых будет формироваться форма.ПолеТабличногоДокумента с типом ТабличныйДокумент и вынесем его на форму для предпросмотра результата.Сформировать) и привяжем ее к кнопке.Посмотрим на пример кода в модуле вспомогательной формы. Процедура Печать в БСП ожидает строгий набор входных параметров, поэтому инициализируем их стандартными методами подсистемы печати:
&НаСервере
Процедура СформироватьНаСервере()
// Получаем объект внешней обработки
ОбработкаОбъект = РеквизитВФорму(РеквизитФормыВЗначение("Объект"));
// Формируем массив объектов для печати
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(СсылкаНаДокумент);
// Инициализируем коллекции БСП
КоллекцияПечатныхФорм = УправлениеПечатью.ИнициализироватьКоллекциюПечатныхФорм("ИмяВПФ");
ОбъектыПечати = УправлениеПечатью.ИнициализироватьОбъектыПечати();
ПараметрыВывода = УправлениеПечатью.ИнициализироватьПараметрыВывода();
// Вызываем процедуру формирования печатной формы
ОбработкаОбъект.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
// Получаем результат в табличный документ на форме
СтрПечатнаяФорма = КоллекцияПечатныхФорм.Найти("ИмяВПФ", "ИмяВПФ");
Если СтрПечатнаяФорма <> Неопределено Тогда
ПолеТабличногоДокумента = СтрПечатнаяФорма.ТабличныйДокумент;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры
Теперь мы можем ставить точки останова в модуле объекта внешней обработки, открывать файл обработки в пользовательском режиме, выбирать нужный документ и запускать процесс печати с возможностью пошаговой трассировки.
Если печатная форма уже добавлена в справочник ДополнительныеОтчетыИОбработки, можно отлаживать ее штатный вызов непосредственно из документа информационной базы без изменения структуры файла обработки.
Разберем последовательность действий:
ДополнительныеОтчетыИОбработки или ДополнительныеОтчетыИОбработкиКлиентСервер).ВнешниеОбработки.Создать().В конфигурациях с режимом совместимости 8.3.9 и выше удобным вариантом является перенос разрабатываемой формы в расширение конфигурации. Это позволяет избежать ограничений, связанных с отладкой внешних файлов:
.epf.Проанализируем технические параметры платформы, влияющие на процесс отладки:
Отладка → Подключение необходимо включить флажок Автоматическое подключение фоновых заданий.-debug или настроенный протокол HTTP).БезопасныйРежим = Истина. При автономном тестировании через тестовую форму учитывайте, что доступ к COM-объектам, файловой системе и привилегированному режиму в безопасной среде ограничен.