Подавляющее большинство разработчиков 1С, работающих в типовых конфигурациях, пользуются внешними печатными формами. Это отличный функционал библиотеки стандартных подсистем, который позволяет без изменения конфигурации добавлять свои печатные формы к объектам конфигурации. Но многие начинающие программисты сталкиваются с препятствием в виде неработающей отладки в таких печатных формах. Однако ей можно воспользоваться, если правильно настроить свой внешний файл дополнения к 1С.
Настраиваем внешнюю печатную форму для отладки
Чтобы получить возможность контролировать в пошаговом режиме формирование печатной формы, необходимо сделать еще одну внешнюю обработку. Ее отличие заключается в том, что добавлен реквизит с типом соответствующим документу конфигурации и форма обработки. В форму нужно поместить поле для указания реквизита и кнопку для выполнения печати.
На кнопку выполнения печати необходимо назначить процедуру на клиенте. В ней будем задавать новый табличный документ и передавать его вместе с ссылкой в функцию на сервере. Также на клиенте нам необходимо выводить табличный документ, ведь на сервере это невозможно. Полный текст процедуры на клиентской стороне:
&НаКлиенте
Процедура ВыполнитьКоманду(Команда)
ТабДок = Новый ТабличныйДокумент;
ТабДок = ВыполнитьНаСервере(Объект.СсылкаНаДокумент,ТабДок);
ТабДок.Показать("Печать документа");
КонецПроцедуры
На серверной стороне код будет сложнее – в этой функции будет происходить получение данных, подключение к макету и его заполнение. На основе этих данных формируется табличный документ и возвращается на клиент, чтобы вывести его на экран пользователя. Рассмотрим команды серверной части подробнее:
- Получаем макет из обработки;
Макет = РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
- Получаем данные для вывода;
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗаказНаПеремещение.Дата, | ЗаказНаПеремещение.СкладОтправитель, | ЗаказНаПеремещение.СкладПолучатель |ИЗ | Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение |ГДЕ | ЗаказНаПеремещение.Ссылка = &СсылкаНаОбъект"; Запрос.УстановитьПараметр("СсылкаНаОбъект", СсылкаДок); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетЗап = РезультатЗапроса.Выбрать();
- Очищаем табличный документ и начинаем формировать его заново. Получаем область, заполняем все переменные в макете, параметры табличного документа и возвращаем на клиентскую сторону готовый к выводу табличный документ.
ТабДок.Очистить(); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ТабДок.НачатьАвтогруппировкуСтрок(); Пока ВыборкаДетЗап.Следующий() цикл ОбластьШапка.Параметры.Дата = ВыборкаДетЗап.Дата; ОбластьШапка.Параметры.СкладОтправитель = ВыборкаДетЗап.СкладОтправитель; ОбластьШапка.Параметры.СкладПолучатель = ВыборкаДетЗап.СкладПолучатель; КонецЦикла; ТабДок.Вывести(ОбластьШапка); ТабДок.ЗакончитьАвтогруппировкуСтрок(); ТабДок.АвтоМасштаб = Истина; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабДок.ПолеСлева = 5; ТабДок.ПолеСправа = 5; Возврат ТабДок;
Чтобы начать отладку внешних печатных форм, необходимо установить в тексте модуля точку останова. Для этого воспользуйтесь клавишей F9, специальным значком на панели инструментов или двойным щелчком на серой вертикальной линии слева от кода модуля. После этого необходимо прямо из конфигуратора запустить 1С Предприятие в режиме отладки.
Чтобы начать отладку нашей внешней печатной формы, необходимо открыть ее и, нажав на кнопку, запустить процесс формирования табличного документа. Узнать, что идет процесс отладки, вы сможете по изменившемуся значку точки останова (к его форме круга добавилась стрелочка). Теперь вы можете управлять пошаговым выполнением операторов алгоритма, используя следующие «горячие» клавиши:
- F11 (Шагнуть в) – Переходит на следующий шаг или заходит внутрь функции;
- F10 (Шагнуть через) – Переходит на следующий шаг, вычисляя значения всех функций;
- F11+Shift (Шагнуть из) – Завершает выполнение кода в текущей процедуре и попадает в то место алгоритма, откуда она была вызвана;
- F10+Shift (Идти до курсора) – Позволяет «промотать» выполнение процедуры до места, которое вы обозначите моргающим курсором.
Также можно использовать табло и стек вызовов для просмотра данных и вложенности вызовов процедур и функций. Если вы найдете ошибку алгоритма формирования печатной формы, после ее исправления необходимо открыть ее заново в режиме управляемых форм 1С Предприятия. После того как вы отладите печатную форму и будете уверены в качестве кода, можно будет использовать его в других местах.
консультация эксперта
самые свежие новости 1 раз в месяц