Вот ещё полезности -
1. - много отчетов одном - нужно просто создать несколько схем компоновки данных - и в меню сверху можно выбирать любую - отчет по этой схеме формируется сразу после выбора.
2. - форма для авторегистрации внешней печатной формы - необходимо указать типы документов, к которым подключается ВПФ, и в модуле прописать функцию "Печать()".
3. для формирования кода заполнения макета ПФ - создается макет со всеми параметрами/шаблонами,
указываешь имя макета в модуле, и вуаля - костяк заполнения процедуры Печать() уже готов, осталось подставить запрос с выборкой.
Макет = ПолучитьМакет("ИМЯ_МАКЕТА");
ТекстЗаполненияПараметровМакета =
"
|ТабДок = Новый ТабличныйДокумент;
|ТабДок.АвтоМасштаб = Истина;
|ТабДок.Защита = Истина;
|ТабДок.ОтображатьСетку = Ложь;
|ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
|ТабДок.ИмяПараметровПечати = ""ПАРАМЕТРЫ_ПЕЧАТИ_"" + ЭтотОбъект.Имя;
|
|ИмяМакета = ""ИМЯ_МАКЕТА"";
|Макет = ПолучитьМакет(ИмяМакета);
|";
Для каждого Обл Из Макет.Области Цикл
ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета + Символы.ПС +
СтрЗаменить( "// Область ""ОбластьМакета""
|ОбластьОбластьМакета = Макет.ПолучитьОбласть(""ОбластьМакета"");
|ОбластьОбластьМакета.Параметры.Заполнить(ДанныеЗаполнения);",
"ОбластьМакета",
Обл.Имя) + Символы.ПС;
ОблМ = Макет.ПолучитьОбласть(Обл.Имя);
Для сч_строк = 1 По ОблМ.ВысотаТаблицы Цикл
Для сч_столбцов = 1 По ОблМ.ШиринаТаблицы Цикл
Яч = ОблМ.Область("R"+ Формат(сч_строк,"ЧГ=0") + "C" + Формат(сч_столбцов,"ЧГ=0"));
Если Яч.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Параметр Тогда
ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета +
"Область" + Обл.Имя + ".Параметры." + Яч.Параметр + " = ДанныеЗаполнения." + Яч.Параметр + ";" + Символы.ПС;
КонецЕсли;
Если Яч.Заполнение = ТипЗаполненияОбластиТабличногоДокумента.Шаблон Тогда
МассивСтрок = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок(Яч.Текст, "[");
Для каждого ЭлМассива Из МассивСтрок Цикл
Если Найти(ЭлМассива,"]") > 0 Тогда
ИмяП = СокрЛП(СтрЗаменить(ЭлМассива,"]",""));
ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета +
"Область" + Обл.Имя + ".Параметры." + ИмяП + " = ДанныеЗаполнения." + ИмяП + ";" + Символы.ПС;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
ТекстЗаполненияПараметровМакета = ТекстЗаполненияПараметровМакета +
СтрЗаменить("ТабДок.Вывести(ОбластьОбластьМакета);", "ОбластьМакета", Обл.Имя) + Символы.ПС;
КонецЦикла;
Сообщить("", СтатусСообщения.БезСтатуса);
Сообщить(ТекстЗаполненияПараметровМакета, СтатусСообщения.БезСтатуса);
Показать