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

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем АртемБууууу, 14 мар 2019.

  1. TopicStarter Overlay
    АртемБууууу
    Offline

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    169
    Симпатии:
    0
    Баллы:
    26
    Всем добрый вечер!

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

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

    АртемБууууу Опытный в 1С

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

    АртемБууууу Опытный в 1С

    Регистрация:
    30 авг 2017
    Сообщения:
    169
    Симпатии:
    0
    Баллы:
    26
    Решение:

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