Получение печатной формы из внешней обработки
В функции получаю печатные формы, для дальнейшей передачи через вложение.
Печатную форму Накладная(макет в документе) и РублевыеСуммыДокументаВВалюте(макет в обработке) получаю без проблем. Не понимаю, как получить печатную форму внешней печатной формы.
Что указывать в ИмяМенеджераПечати?
Печатную форму Накладная(макет в документе) и РублевыеСуммыДокументаВВалюте(макет в обработке) получаю без проблем. Не понимаю, как получить печатную форму внешней печатной формы.
Что указывать в ИмяМенеджераПечати?
//Получаем печатную форму во временное хранилище
Функция СформироватьВложение(Выборка)
МД = Метаданные.НайтиПоТипу(ТипЗнч(Выборка.Объект));
ТекВид = МД.Имя;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(Выборка.Объект);
ПараметрыПечати = Новый Структура();
ДопустимыеТипыОбъектовПечати = Неопределено;
Если ТекВид = "РеализацияТоваровУслуг" Тогда
ИмяМенеджераПечати = "ВнешняяПечатнаяФорма.ПФ_УПД_Бренд2";
ИменаМакетов = "УниверсальныйПередаточныйДокумент";
//ИмяМенеджераПечати = "Документ.РеализацияТоваровУслуг";
//ИменаМакетов = "Накладная";
//ИмяМенеджераПечати = "Обработка.ПечатьРублевыхСуммДокументовВВалюте";
//ИменаМакетов = "РублевыеСуммыДокументаВВалюте";
Иначе
Возврат Неопределено;
КонецЕсли;
ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(ИмяМенеджераПечати, ИменаМакетов, МассивОбъектов, ПараметрыПечати, ДопустимыеТипыОбъектовПечати);
ТабДок = ПечатныеФормы.КоллекцияПечатныхФорм[0].ТабличныйДокумент;
ВременныйФайл = ПолучитьИмяВременногоФайла("XLSX");
ТабДок.Записать(ВременныйФайл, ТипФайлаТабличногоДокумента.XLSX);
ДвоичныеДанные = Новый ДвоичныеДанные(ВременныйФайл);
Возврат ПоместитьВоВременноеХранилище(ДвоичныеДанные);
КонецФункции
ПоказатьПо теме из базы знаний
- Как вывести табличный документ на печать в управляемой форме внешней обработки
- Внешние печатные формы для 1С:Зарплата и управление персоналом 3.1
- Генерация сценариев тестирования внешних печатных форм средствами Vanessa Automation
- Внешние печатные формы для 1С:Бухгалтерии государственного учреждения 2.0
- Классический корректный пример внешней печатной формы с печатью и подписями на БСП 3.1.10
Найденные решения
Как-то делала подобное в ERP, тоже надо было при отправке письма автоматически добавлять договор во вложения из внешней печатной формы. Делала так:
Далее получайте двоичные данные и передавайте куда-надо.
ВнешняяОбработка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта","имяВнешнейПечатнойФормы");
ДвоичныеДанные = ВнешняяОбработка.ХранилищеОбработки.Получить();
ИмяФайла = ПолучитьИмяВременногоФайла("epf");
ДвоичныеДанные.Записать(ИмяФайла);
ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла, Ложь);
ПечатнаяФормаДоговора = ВнешняяОбработка.СформироватьПечатнуюФорму(ЗаказСсылка);
// СформироватьПечатнуюФорму - это имя экспортной процедуры из внешней печатной формы,
// в моем случае она получает ссылку на заказ для формирования печатной формы договора
ПоказатьДалее получайте двоичные данные и передавайте куда-надо.
(7) Ну или еще как вариант, добавить во внешней обработке реквизит, например с именем ДляПередачи типа ТабличныйДокумент, в процедуре "Печать", присваивать ему значение сформированного табличного документа, и создать функцию, которая будет вызывать процедуру "Печать" и возвращать реквизит - ДляПередачи.
Например:
А в модуле внешней печатной формы:
Например:
ПечатнаяФормаДоговора = ВнешняяОбработка.ПолучитьПечатнуюФорму(Выборка.Объект);
А в модуле внешней печатной формы:
Процедура Печать(Объект)
ТабличныйДокумент = Новый ТабличныйДокумент;
// его заполнение
.............
ДляПередачи = ТабличныйДокумент;
КонецПроцедуры
Функция ПолучитьПечатнуюФорму(Объект)
Печать(Объект);
Возврат ДляПередачи;
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Как-то делала подобное в ERP, тоже надо было при отправке письма автоматически добавлять договор во вложения из внешней печатной формы. Делала так:
Далее получайте двоичные данные и передавайте куда-надо.
ВнешняяОбработка = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта","имяВнешнейПечатнойФормы");
ДвоичныеДанные = ВнешняяОбработка.ХранилищеОбработки.Получить();
ИмяФайла = ПолучитьИмяВременногоФайла("epf");
ДвоичныеДанные.Записать(ИмяФайла);
ВнешняяОбработка = ВнешниеОбработки.Создать(ИмяФайла, Ложь);
ПечатнаяФормаДоговора = ВнешняяОбработка.СформироватьПечатнуюФорму(ЗаказСсылка);
// СформироватьПечатнуюФорму - это имя экспортной процедуры из внешней печатной формы,
// в моем случае она получает ссылку на заказ для формирования печатной формы договора
ПоказатьДалее получайте двоичные данные и передавайте куда-надо.
(7) Ну или еще как вариант, добавить во внешней обработке реквизит, например с именем ДляПередачи типа ТабличныйДокумент, в процедуре "Печать", присваивать ему значение сформированного табличного документа, и создать функцию, которая будет вызывать процедуру "Печать" и возвращать реквизит - ДляПередачи.
Например:
А в модуле внешней печатной формы:
Например:
ПечатнаяФормаДоговора = ВнешняяОбработка.ПолучитьПечатнуюФорму(Выборка.Объект);
А в модуле внешней печатной формы:
Процедура Печать(Объект)
ТабличныйДокумент = Новый ТабличныйДокумент;
// его заполнение
.............
ДляПередачи = ТабличныйДокумент;
КонецПроцедуры
Функция ПолучитьПечатнуюФорму(Объект)
Печать(Объект);
Возврат ДляПередачи;
КонецФункции
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот