|
УНФ 1.6 Программно сформировать типовую ПФ и сохранить | ☑ | ||
---|---|---|---|---|
0
buketovav
14.03.19
✎
20:06
|
Всем добрый вечер!
\1С:Предприятие 8.3 (8.3.13.1644) Управление нашей фирмой, редакция 1.6 (1.6.15.65) Очень нужна помощь и подсказка. Сделал внешнюю обработку, по расписанию она выполняет ряд действий, одно из действий это создание на основании счета на оплату, акта выполненных работ, счета фактуры, копирует старый счет на оплату и вносит в него некоторые изменения. Так вот, теперь мне необходимо программно, из моей внешней обработки, сформировать типовые ПФ Акта выполненных работ, нового счет на оплату и УПД, сохранить и отправить клиенту, который указан в счете на оплату. Как программно сформировать определенные типовые ПФ для определенных документов, затем их сохранить в pdf и все это дело отправить? Всем заранее спасибо! |
|||
1
Garykom
гуру
14.03.19
✎
20:12
|
1. Посмотреть/изучить как они формируются в конфе
2. Сделать вызовы (в новых конфах с БСП это достаточно просто) этого формирования 3. Получить результат и сохранить куда нуна |
|||
2
Garykom
гуру
14.03.19
✎
20:13
|
В журнале документов (форме списка) есть кнопочка "Печать" ? Вот глянуть туда например ))
|
|||
3
buketovav
14.03.19
✎
20:14
|
есть и общая команда "ОтправитьПоЭлектроннойПочте", но что-то я не могу понять как ее использовать в своих целях
|
|||
4
Beduin
14.03.19
✎
20:20
|
Я когда в институте учился, у меня лабораторка была, чтобы сделать 5 объектов и вывести их на печать.
Мне препод двояк влепил, за то, что я не сделал универсальную функцию возвращающую печать для любого класса. |
|||
5
Garykom
гуру
14.03.19
✎
20:48
|
(3) Вот когда сможешь понять "как ее использовать в своих целях" заодно поймешь за что такие зарплаты программистам платят, но не всем.
|
|||
6
buketovav
14.03.19
✎
20:59
|
(5) вот сижу и разбираюсь, очень хочу понять и разобраться )) такая задача у меня впервые
|
|||
7
buketovav
15.03.19
✎
08:40
|
на данный момент получилось сделать так, но пока не разобрался как УПД сформировать:
Код: //получаем ПФ Счета на оплату для отправки по почту клиенту ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчетНаОплату"); ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечатиСчета = Новый СписокЗначений; МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(ПродлевающийСчет.Ссылка); Документы.СчетНаОплату.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечатиСчета, ПараметрыВывода); СтрСчет = КоллекцияПечатныхФорм[0]; СчетНаОплатуПФ = СтрСчет.ТабличныйДокумент; СчетНаОплатуПФ.Защита = Истина; ВремФайлСчета = ПолучитьИмяВременногоФайла("pdf"); СчетНаОплатуПФ.Записать(ВремФайлСчета,ТипФайлаТабличногоДокумента.PDF); //получаем ПФ Акта выполненных работ для отправки по почту клиенту ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АктОбОказанииУслуг"); ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечати = Новый СписокЗначений; МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(НовыйАктВР.Ссылка); Документы.АктВыполненныхРабот.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); СтрАкт = КоллекцияПечатныхФорм[0]; АктПФ = СтрАкт.ТабличныйДокумент; АктПФ.Защита = Истина; ВремФайлАкт = ПолучитьИмяВременногоФайла("pdf"); АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF); Письмо.Вложения.Добавить(ВремФайлСчета); Письмо.Вложения.Добавить(ВремФайлАкт); |
|||
8
buketovav
15.03.19
✎
09:55
|
но и как сформировать УПД, если для счета фактуры нет метода печать -
Метод объекта не обнаружен (Печать) Документы.СчетФактура.Печать |
|||
9
buketovav
15.03.19
✎
15:01
|
Решение:
Код: //получаем ПФ Счета на оплату для отправки по почту клиенту ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("СчетНаОплату"); ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечатиСчета = Новый СписокЗначений; МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(ПродлевающийСчет.Ссылка); Документы.СчетНаОплату.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечатиСчета, ПараметрыВывода); СтрСчет = КоллекцияПечатныхФорм[0]; СчетНаОплатуПФ = СтрСчет.ТабличныйДокумент; СчетНаОплатуПФ.Защита = Истина; ВремФайлСчета = ПолучитьИмяВременногоФайла("pdf"); СчетНаОплатуПФ.Записать(ВремФайлСчета,ТипФайлаТабличногоДокумента.PDF); //получаем ПФ Акта выполненных работ для отправки по почту клиенту ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("АктОбОказанииУслуг"); ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечати = Новый СписокЗначений; МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(НовыйАктВР.Ссылка); Документы.АктВыполненныхРабот.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); СтрАкт = КоллекцияПечатныхФорм[0]; АктПФ = СтрАкт.ТабличныйДокумент; АктПФ.Защита = Истина; ВремФайлАкт = ПолучитьИмяВременногоФайла("pdf"); АктПФ.Записать(ВремФайлАкт,ТипФайлаТабличногоДокумента.PDF); //получаем ПФ Акта выполненных работ для отправки по почту клиенту ОбъектДляСервера = РеквизитФормыВЗначение("Объект"); КоллекцияПечатныхФорм = УправлениеПечатью.ПодготовитьКоллекциюПечатныхФорм("УниверсальныйПередаточныйДокумент"); ПараметрыВывода = УправлениеПечатью.ПодготовитьСтруктуруПараметровВывода(); ОбъектыПечати = Новый СписокЗначений; МассивОбъектов = Новый Массив(); МассивОбъектов.Добавить(НовыйАктВР.Ссылка); Обработки.ПечатьСчетФактура.Печать(МассивОбъектов,ПараметрыВывода, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода); СтрАкт = КоллекцияПечатныхФорм[0]; АктПФ = СтрАкт.ТабличныйДокумент; АктПФ.Защита = Истина; ВремФайлУпд = ПолучитьИмяВременногоФайла("pdf"); АктПФ.Записать(ВремФайлУпд,ТипФайлаТабличногоДокумента.PDF); Письмо.Вложения.Добавить(ВремФайлСчета); Письмо.Вложения.Добавить(ВремФайлАкт); Письмо.Вложения.Добавить(ВремФайлУпд); |
|||
10
buketovav
18.03.19
✎
08:55
|
Вот таким образом победил правильное отображение файлов в отправляемом письме:
Код: ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлСчета); Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(ПродлевающийСчет) + ".PDF"); ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлАкт); Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйАктВР) + ".PDF"); ДвоичныеДанные = Новый ДвоичныеДанные(ВремФайлУпд); Письмо.Вложения.Добавить(ДвоичныеДанные, Строка(НовыйСчетФактура) + ".PDF"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |