Получение табличного документа из внешней печатной формы

1. v.a.t 15.03.18 15:02 Сейчас в теме
Доброго дня!

Делаю обработку по пакетному формированию печатных форм реализации в БП 3.0. Во внешних обработках есть большое количество внешних печатных форм, беда форм в том что писались разными кодерами и по разному...

&НаСервереБезКонтекста
Функция ПечатьФормыНаСервере(ОбъектыНазначения, ВПФ, ОбъектыПечати)
    КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ВПФ.Команды[0].Идентификатор);
    ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
    ДвоичныеДанные = Форма.ХранилищеОбработки.Получить();
    АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
    ИмяОбр = ВнешниеОбработки.Подключить(АдресВоВременномХранилище,, Ложь);
    Об    = ВнешниеОбработки.Создать(ИмяОбр);
    Об.Печать(ОбъектыНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
    МассивПечатныхФорм = ОбщегоНазначения.ТаблицаЗначенийВМассив(КоллекцияПечатныхФорм);
    Возврат МассивПечатныхФорм;
КонецФункции
Показать



вот так я получаю массив печатных форм, все бы хорошо но!!! Экспортная функция Печать() есть далеко не во всех ВПФ, где-то Печ, где то Напечатать и т.д.

как мне получить команды печати, или подскажите другой способ программного получения!!! табличного документа,не через ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия); , так как я не хочу их выводить на экран, а сразу отправлять на принтер, так как их примерно 1 500 штук.

Еще вопрос, есть ли в БСП универсальных механизм печати документов по ссылке, если у меня есть наименование печатной формы и обработчик печати....
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ipoloskov 162 15.03.18 15:08 Сейчас в теме
Исправить в модулях всех внешних печатных форм "Печ", "Напечатать" и т.д. на "Печать(...)". Прописать в этих процедурах правильные параметры.
Соответственно исправить вызов этих процедур из форм обработок.
Загрузить исправленные печатные формы в базу.
3. v.a.t 15.03.18 15:24 Сейчас в теме
Чувствую, так и придется сделать, а есть ли в БСП универсальных механизм печати документов по ссылке, если у меня есть наименование печатной формы и обработчик печати....?
4. join2us 18 31.03.23 15:02 Сейчас в теме
Функция для получения ТабДока из ВПФ по ИмениКомандыПечати

//}***тестировалось на БСП 3.1.4***
//}МассивОбъектовНазначения 	- массив ссылок на объекты, для которых треб. печать
//}ИдентификаторКомандыПечати 	- строка, идентификатор КомандыПечати из параметров регистрации эскп. функции СведенияОВнешнейОбработке
//}ИмяВПФ						- строка, наименование внешней печ. формы из параметров регистрации эскп. функции СведенияОВнешнейОбработке
Функция ПолучитьТабДокИзВПФ(МассивОбъектовНазначения,ИдентификаторКомандыПечати,ИмяВПФ)

	ССылкаВПФ = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяВПФ);
	Если ССылкаВПФ.Пустая() Тогда
		Сообщить("Не найдена печ.форма реестра:\"+ИмяВПФ+"\ Обратитесь к знающим людям!");
		Возврат Неопределено;
	КонецЕсли;
		
	ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); //}всякая шляпа, не имеющая отношения к формированию табдока
	
	ОбъектыПечати = Новый СписокЗначений; //заглушка
		
	КоллекцияФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ИдентификаторКомандыПечати); //}Функция БСП. Подготовка ТЗ, без заполненного ТабДока
	
	стПараметрыИсточника = Новый Структура;
	стПараметрыИсточника.Вставить("ИдентификаторКоманды",ИдентификаторКомандыПечати); 
	стПараметрыИсточника.Вставить("ОбъектыНазначения",МассивОбъектовНазначения); 
	
	УправлениеПечатью.ПечатьПоВнешнемуИсточнику(ССылкаВПФ,стПараметрыИсточника,КоллекцияФорм,ОбъектыПечати,ПараметрыВывода); //}Процедура БСП, заполняем табдок в ТЗ КоллФорм
	
	Рез = Неопределено;
	Если КоллекцияФорм.Количество() И ТипЗнч(КоллекцияФорм[0].ТабличныйДокумент) = Тип("ТабличныйДокумент") Тогда
		Рез = КоллекцияФорм[0].ТабличныйДокумент; //}получаем ТабДок, если он заполнен в ТЗ
	КонецЕсли;
	
	Возврат Рез;
	
КонецФункции

Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот