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