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