Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 14:50

УНФ 1.6 Программно сформировать типовую ПФ и сохранить

Автор buketov.av, 14 мар 2019, 20:04

0 Пользователей и 1 гость просматривают эту тему.

buketov.av

Всем добрый вечер!

1С:Предприятие 8.3 (8.3.13.1644)
Управление нашей фирмой, редакция 1.6 (1.6.15.65)

Очень нужна помощь и подсказка.
Сделал внешнюю обработку, по расписанию она выполняет ряд действий, одно из действий это создание на основании счета на оплату, акта выполненных работ, счета фактуры, копирует старый счет на оплату и вносит в него некоторые изменения.
Так вот, теперь мне необходимо программно, из моей внешней обработки, сформировать типовые ПФ Акта выполненных работ, нового счет на оплату и УПД, сохранить и отправить клиенту, который указан в счете на оплату.
Как программно сформировать определенные типовые ПФ для определенных документов, затем их сохранить в pdf и все это дело отправить?
Всем заранее спасибо!

buketov.av

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

            Письмо.Вложения.Добавить(ВремФайлСчета);           
            Письмо.Вложения.Добавить(ВремФайлАкт);

wise

Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

buketov.av

Цитата: wise от 15 мар 2019, 10:57
(1) УПД также из АктВыполненныхРабот

чет не получается
подскажите тогда, пожалуйста, как и где указать, чтобы сформировался УПД, а не Акт выполненных работ


//получаем ПФ Акта выполненных работ для отправки по почту клиенту
ОбъектДляСервера      = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АктОбОказанииУслуг");
ПараметрыВывода       = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ОбъектыПечати = Новый СписокЗначений; 

МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);

Документы.АктВыполненныхРабот.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

СтрАкт       = КоллекцияПечатныхФорм[0];
АктПФ        = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлАкт  = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF);


Добавлено: 15 мар 2019, 14:55


Итоговый рабочий код:


//получаем ПФ Счета на оплату для отправки по почту клиенту
ОбъектДляСервера      = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчетНаОплату");
ПараметрыВывода       = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ОбъектыПечатиСчета = Новый СписокЗначений; 

МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(ПродлевающийСчет.Ссылка);

Документы.СчетНаОплату.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечатиСчета, ПараметрыВывода);

СтрСчет          = КоллекцияПечатныхФорм[0];
СчетНаОплатуПФ   = СтрСчет.ТабличныйДокумент;
СчетНаОплатуПФ.Защита = Истина;
ВремФайлСчета         = ПолучитьИмяВременногоФайла("pdf");
СчетНаОплатуПФ.Записать(ВремФайлСчета,ТипФайлаТабличногоДокумента.PDF);

//получаем ПФ Акта выполненных работ для отправки по почту клиенту
ОбъектДляСервера      = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АктОбОказанииУслуг");
ПараметрыВывода       = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ОбъектыПечати = Новый СписокЗначений; 

МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);

Документы.АктВыполненныхРабот.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

СтрАкт       = КоллекцияПечатныхФорм[0];
АктПФ        = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлАкт  = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF);


//получаем ПФ Акта выполненных работ для отправки по почту клиенту
ОбъектДляСервера      = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("УниверсальныйПередаточныйДокумент");
ПараметрыВывода       = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();

ОбъектыПечати = Новый СписокЗначений;

МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);

Обработки.ПечатьСчетФактура.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

СтрАкт       = КоллекцияПечатныхФорм[0];
АктПФ        = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлУпд  = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлУпд,ТипФайлаТабличногоДокумента.PDF);

Письмо.Вложения.Добавить(ВремФайлСчета);
Письмо.Вложения.Добавить(ВремФайлАкт);
Письмо.Вложения.Добавить(ВремФайлУпд);


buketov.av

Вот таким образом победил правильное отображение файлов в отправляемом письме:
Код:


       ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлСчета);
       Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(ПродлевающийСчет) + ".PDF");
           
       ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлАкт);
       Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйАктВР) + ".PDF");
           
       ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлУпд);
      Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйСчетФактура) + ".PDF");

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск