Шаблон печатной формы в расширении

&Перед("ДобавитьКомандыПечати")
Процедура Расширение_ДобавитьКомандыПечати(КомандыПечати, Порядок, УсловиеВидимости)

	// НаименованиеФормы
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Идентификатор = "ИмяФормы";
	КомандаПечати.СразуНаПринтер = Истина;
	КомандаПечати.Представление = НСтр("ru = 'НаименованиеФормы'");
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;

КонецПроцедуры

Функция СформироватьПечатнуюФормуИмяФормы(МассивОбъектов, ОбъектыПечати)

	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.АвтоМасштаб = Истина;
	ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
	
	Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ИмяДокумента.ПФ_MXL_ИмяФормы");
	ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИмяФормы";
		
	УстановитьПривилегированныйРежим(Истина);
	
	ОбластьЗаголовокТаблицы      = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
	ОбластьМакета                = Макет.ПолучитьОбласть("Строка");
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"";
	Запрос.УстановитьПараметр("МассивОбъектов" , МассивОбъектов);
	РезультатЗапроса = Запрос.Выполнить();
	ВыборкаДокументов = РезультатЗапроса.Выбрать();
	
	ПервыйДокумент = Истина;
	Пока ВыборкаДокументов.Следующий() Цикл
		Если Не ПервыйДокумент Тогда
			ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		ПервыйДокумент    = Ложь;
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;

	КонецЦикла;
	
	УстановитьПривилегированныйРежим(Ложь);
	УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);
	
КонецФункции

&Перед("Печать")
Процедура Расширение_Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода)

	Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ИмяФормы") Тогда
		УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
			КоллекцияПечатныхФорм,
			"ИмяФормы", НСтр("ru = 'НаименованиеФормы'"),
			СформироватьПечатнуюФормуИмяФормы(МассивОбъектов, ОбъектыПечати));
	КонецЕсли;

КонецПроцедуры

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх