Добрый день, коллеги.
Бывает необходимость найти шаблон печатной формы для управляемого приложения. Решил выложить готовый шаблон с возможностью отладить печатную форму.
Также опишу некоторые места, которые надо менять, чтобы те, кто сталкивается с печатной формой впервые, могли быстрее сделать печатную форму.
Для формы обработки осуществлен вызов функции модуля объекта печатной формы.
&НаСервере
Функция ПечатьСервер() Экспорт
СсылкаОбъект = РеквизитФормыВЗначение("Объект");
ПечатнаяФорма = СсылкаОбъект.СформироватьПечатнуюФорму(СсылкаНаОбъект);
Возврат ПечатнаяФорма;
КонецФункции
&НаКлиенте
Процедура Печать(Команда)
ПечатнаяФОрма= ПечатьСервер();
ПечатнаяФОрма.Показать();
КонецПроцедуры
СсылкаНаОбъект - реквизит формы, передается в параметр печати. Сейчас тип - "ДокументСсылка, СправочникСсылка". Его нужно поменять на тип элемента, на который вы делаете печатную форму.
То, что подчеркнуто, нужно заменить.
1. Объект, из которого вызывается форма.
2. Наименование в справочнике внешней обработки.
3. Описание обработки.
4. Команда, которую можно увидеть, при нажатии на "Печать".
Также в команде - "Печать"
5. Имя под которым будет сохранена печатная форма, при сохранении в файл.
МассивОбъектов - массив, заполненный ссылками на печатаемые объекты. Для шаблона я сделал печать одного объекта - первого элемента массива.
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Макет", "Шаблон внешней печатной формы", СформироватьПечатнуюФорму(МассивОбъектов[0]));
КонецПроцедуры
&НаСервере
Функция СформироватьПечатнуюФорму(СсылкаНаДокумент) Экспорт
СтруктураПараметров = Новый Структура;
ЗаполнитьСтруктуруПараметровШаблона(СсылкаНаДокумент, СтруктураПараметров);
ТабличныйДокумент = Новый ТабличныйДокумент;
Макет = ПолучитьМакет("ОсновнойМакет");
ОбластьШапки = Макет.ПолучитьОбласть("ШаблонШапки");
ОбластьШапки.Параметры.Заполнить(СтруктураПараметров);
ТабличныйДокумент.Вывести(ОбластьШапки);
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции
В процедуре печать - шаблон вывода простого параметра в табличный документ.
Результат такой.
Прикладываю файл внешней обработки. Тестировал на платформе - 1С:Предприятие 8.3 (8.3.18.1289). В Бухгалтерия предприятия, редакция 3.0 (3.0.89.51). Важно, что это управляемая форма.