УНФ 1.6 Программно сформировать типовую ПФ и сохранить
Всем добрый вечер!
1С:Предприятие 8.3 (8.3.13.1644)
Управление нашей фирмой, редакция 1.6 (1.6.15.65)
Очень нужна помощь и подсказка.
Сделал внешнюю обработку, по расписанию она выполняет ряд действий, одно из действий это создание на основании счета на оплату, акта выполненных работ, счета фактуры, копирует старый счет на оплату и вносит в него некоторые изменения.
Так вот, теперь мне необходимо программно, из моей внешней обработки, сформировать типовые ПФ Акта выполненных работ, нового счет на оплату и УПД, сохранить и отправить клиенту, который указан в счете на оплату.
Как программно сформировать определенные типовые ПФ для определенных документов, затем их сохранить в pdf и все это дело отправить?
Всем заранее спасибо!
1С:Предприятие 8.3 (8.3.13.1644)
Управление нашей фирмой, редакция 1.6 (1.6.15.65)
Очень нужна помощь и подсказка.
Сделал внешнюю обработку, по расписанию она выполняет ряд действий, одно из действий это создание на основании счета на оплату, акта выполненных работ, счета фактуры, копирует старый счет на оплату и вносит в него некоторые изменения.
Так вот, теперь мне необходимо программно, из моей внешней обработки, сформировать типовые ПФ Акта выполненных работ, нового счет на оплату и УПД, сохранить и отправить клиенту, который указан в счете на оплату.
Как программно сформировать определенные типовые ПФ для определенных документов, затем их сохранить в pdf и все это дело отправить?
Всем заранее спасибо!
Найденные решения
(7) Немного не правильно подсказал, сама процедура печати в другом месте оказалась
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("УниверсальныйПередаточныйДокумент");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечати = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);
Обработки.ПечатьСчетФактура.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
СтрАкт = КоллекцияПечатныхФорм[0];
АктПФ = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлАкт = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF);
Показать
Вот таким образом победил правильное отображение файлов в отправляемом письме:
ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлСчета);
Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(ПродлевающийСчет) + ".PDF");
ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлАкт);
Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйАктВР) + ".PDF");
ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлУпд);
Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйСчетФактура) + ".PDF");
ПоказатьОстальные ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Для того чтобы формировать типовые нужно
1. Знать идентификаторы типовых печатных форм
Для этого открываем модуль менеджера нужного документа и ищем процедуру ДобавитьКомандыПечати(
2. Вызвать процедуру Печать() менеджера нужного документа
Пример с Актом выполненных работ в УНФ
1. Знать идентификаторы типовых печатных форм
Для этого открываем модуль менеджера нужного документа и ищем процедуру ДобавитьКомандыПечати(
2. Вызвать процедуру Печать() менеджера нужного документа
Пример с Актом выполненных работ в УНФ
ИдентификаторКоманды = Обработки.ПечатьАктаОбОказанииУслуг.ИдентификаторПечатнойФормы(Ложь, Ложь);
МассивОбъектов = Новый Массив;
МассивОбъектов.Добавить(Объект.СсылкаНаОбъект);
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм(ИдентификаторКоманды);
Документы.АктВыполненныхРабот.Печать(
МассивОбъектов, Новый Структура, КоллекцияПечатныхФорм, Новый СписокЗначений,
УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода());
Если КоллекцияПечатныхФорм.Количество() = 1 Тогда
ПутьСохранения = ПолучитьИмяВременногоФайла("pdf");
КоллекцияПечатныхФорм[0].ТабличныйДокумент.Записать(ПутьСохранения, ТипФайлаТабличногоДокумента.PDF);
КонецЕсли;
Показать
на данный момент получилось сделать так, но пока не разобрался как УПД сформировать:
Код:
Код:
//получаем ПФ Счета на оплату для отправки по почту клиенту
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчетНаОплату");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечатиСчета = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(ПродлевающийСчет.Ссылка);
Документы.СчетНаОплату.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечатиСчета, ПараметрыВывода);
СтрСчет = КоллекцияПечатныхФорм[0];
СчетНаОплатуПФ = СтрСчет.ТабличныйДокумент;
СчетНаОплатуПФ.Защита = Истина;
ВремФайлСчета = ПолучитьИмяВременногоФайла("pdf");
СчетНаОплатуПФ.Записать(ВремФайлСчета,ТипФайлаТабличногоДокумента.PDF);
//получаем ПФ Акта выполненных работ для отправки по почту клиенту
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АктОбОказанииУслуг");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечати = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);
Документы.АктВыполненныхРабот.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
СтрАкт = КоллекцияПечатныхФорм[0];
АктПФ = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлАкт = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF);
Письмо.Вложения.Добавить(ВремФайлСчета); Письмо.Вложения.Добавить(ВремФайлАкт);
Показать
(6)
чет не получается
подскажите тогда, пожалуйста, как и где указать, чтобы сформировался УПД, а не Акт выполненных работ
Код:
чет не получается
подскажите тогда, пожалуйста, как и где указать, чтобы сформировался УПД, а не Акт выполненных работ
Код:
//получаем ПФ Акта выполненных работ для отправки по почту клиенту
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АктОбОказанииУслуг");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечати = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);
Документы.АктВыполненныхРабот.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
СтрАкт = КоллекцияПечатныхФорм[0];
АктПФ = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлАкт = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF);
Показать
(7) Немного не правильно подсказал, сама процедура печати в другом месте оказалась
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("УниверсальныйПередаточныйДокумент");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечати = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);
Обработки.ПечатьСчетФактура.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
СтрАкт = КоллекцияПечатныхФорм[0];
АктПФ = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлАкт = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF);
Показать
(8)
Да, спасибо, это сработало. я смотрел на эту обработку )) Вы меня опередили ))
Единственная теперь проблема это то, что УПД сохраняется в альбомном варианте, что разделает ее на два листа.
И имена файлов непонятные. хотелось бы, чтобы они назывались так же ка ки в системе
Да, спасибо, это сработало. я смотрел на эту обработку )) Вы меня опередили ))
Единственная теперь проблема это то, что УПД сохраняется в альбомном варианте, что разделает ее на два листа.
И имена файлов непонятные. хотелось бы, чтобы они назывались так же ка ки в системе
И вот итоговый код:
//получаем ПФ Счета на оплату для отправки по почту клиенту
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчетНаОплату");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечатиСчета = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(ПродлевающийСчет.Ссылка);
Документы.СчетНаОплату.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечатиСчета, ПараметрыВывода);
СтрСчет = КоллекцияПечатныхФорм[0];
СчетНаОплатуПФ = СтрСчет.ТабличныйДокумент;
СчетНаОплатуПФ.Защита = Истина;
ВремФайлСчета = ПолучитьИмяВременногоФайла("pdf");
СчетНаОплатуПФ.Записать(ВремФайлСчета,ТипФайлаТабличногоДокумента.PDF);
//получаем ПФ Акта выполненных работ для отправки по почту клиенту
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АктОбОказанииУслуг");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечати = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);
Документы.АктВыполненныхРабот.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
СтрАкт = КоллекцияПечатныхФорм[0];
АктПФ = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлАкт = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF);
//получаем ПФ Акта выполненных работ для отправки по почту клиенту
ОбъектДляСервера = РеквизитФормыВЗначение("Объект");
КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("УниверсальныйПередаточныйДокумент");
ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода();
ОбъектыПечати = Новый СписокЗначений;
МассивОбъектов = Новый Массив();
МассивОбъектов.Добавить(НовыйАктВР.Ссылка);
Обработки.ПечатьСчетФактура.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
СтрАкт = КоллекцияПечатныхФорм[0];
АктПФ = СтрАкт.ТабличныйДокумент;
АктПФ.Защита = Истина;
ВремФайлУпд = ПолучитьИмяВременногоФайла("pdf");
АктПФ.Записать(ВремФайлУпд,ТипФайлаТабличногоДокумента.PDF);
Письмо.Вложения.Добавить(ВремФайлСчета);
Письмо.Вложения.Добавить(ВремФайлАкт);
Письмо.Вложения.Добавить(ВремФайлУпд);
Показать
Вот таким образом победил правильное отображение файлов в отправляемом письме:
ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлСчета);
Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(ПродлевающийСчет) + ".PDF");
ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлАкт);
Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйАктВР) + ".PDF");
ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлУпд);
Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйСчетФактура) + ".PDF");
Показать
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)