Печатная форма

1. Dimkis 21.03.18 21:25 Сейчас в теме
Конфигурация БП 3.0. Задача через через http-сервис получить печатную форму акта выполненных работ в pdf на сайте
Создал тестовую печатную форму, всё работает:

Функция GetActGetActInfo(Запрос)
	
	УН = Запрос.ПараметрыURL["Guid"];
	
	ДокументРеализация = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Новый УникальныйИдентификатор(СокрЛП(УН)));
	
	ТабДок = Новый ТабличныйДокумент;
	Документы.РеализацияТоваровУслуг.ПечатьТемп(ТабДок, ДокументРеализация.Ссылка);
	
	ИмяФайла = ПолучитьИмяВременногоФайла("pdf");
	ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
	ДанныеФайла = Новый ДвоичныеДанные(ИмяФайла);
	
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.Заголовки.Вставить("Content-type", "application/pdf; charset=utf-8");	
	Ответ.УстановитьТелоИзДвоичныхДанных(ДанныеФайла);
	Возврат Ответ;
	
КонецФункции
Показать


Но нужна стандартная печатная форма, как её поместить в ТабДок?

Функция GetActGetActInfo(Запрос)
	
	УН = Запрос.ПараметрыURL["Guid"];
	
	ДокументРеализация = Документы.РеализацияТоваровУслуг.ПолучитьСсылку(Новый УникальныйИдентификатор(СокрЛП(УН)));
	
	МассивДокумента = Новый Массив();
	МассивДокумента.Добавить(ДокументРеализация);
	
	ПараметрыПечати = Новый Структура;
	
	КоллекцияПечатныхФормДокумента = Новый ТаблицаЗначений;
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("ИмяВРЕГ");
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("ИмяМакета");
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("ИмяФайлаПечатнойФормы");
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("Картинка");
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("Экземпляров");
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("ПолныйПутьКМакету");
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("СинонимМакета");
	КоллекцияПечатныхФормДокумента.Колонки.Добавить("ТабличныйДокумент");
	КоллекцияПечатныхФормДокументаСтрока = КоллекцияПечатныхФормДокумента.Добавить();
	КоллекцияПечатныхФормДокументаСтрока.ИмяВРЕГ = "Акт";
	КоллекцияПечатныхФормДокументаСтрока.ИмяМакета = "Акт";
	КоллекцияПечатныхФормДокументаСтрока.Экземпляров = 1;
	
	ОбъектыПечатиДокумента = Новый СписокЗначений;

	ПараметрыВывода = новый Структура("ДоступнаПечатьПоКомплектно,ПараметрыОтправки");
	ПараметрыВывода.ПараметрыОтправки = Новый Структура("Получатель,Текст,Тема");	
	
	ТабДок = Новый ТабличныйДокумент;
	Документы.РеализацияТоваровУслуг.Печать(МассивДокумента, ПараметрыПечати, КоллекцияПечатныхФормДокумента, ОбъектыПечатиДокумента, ПараметрыВывода);
	
	ИмяФайла = ПолучитьИмяВременногоФайла("pdf");
	ТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.PDF);
	ДанныеФайла = Новый ДвоичныеДанные(ИмяФайла);
	
	Ответ = Новый HTTPСервисОтвет(200);
	Ответ.Заголовки.Вставить("Content-type", "application/pdf; charset=utf-8");	
	Ответ.УстановитьТелоИзДвоичныхДанных(ДанныеФайла);
	Возврат Ответ;
	
КонецФункции
Показать
По теме из базы знаний
Найденные решения
4. D_e_X_T_e_R 573 22.03.18 09:16 Сейчас в теме
Процедура СоздатьАктНаСервере()
	
	Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000091");
	Док = Документы.РеализацияТоваровУслуг.НайтиПоРеквизиту("Контрагент", Контрагент);
	
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("pdf");
	
	ОбъектыПечати = Новый СписокЗначений;
	СтруктураПараметровПечати = Новый Структура;
	СтруктураПараметровПечати.Вставить("ВидДокументаПечати",  "РеализацияТоваровУслуг");
	СтруктураПараметровПечати.Вставить("ИмяПараметровПечати", "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт");
	СтруктураПараметровПечати.Вставить("ИмяМакетаПечати",     "Документ.РеализацияТоваровУслуг.ПФ_MXL_Акт");
	ОбъектыТипа = Док;
	МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоСсылке(ОбъектыТипа); 
	ТаблицаСведенийАктаОбОказанииУслуг = МенеджерОбъекта.ПолучитьТаблицуСведенийАктаОбОказанииУслуг(Док);

	
	ТабДок = ПечатьТорговыхДокументов.ПечатьАктаОбОказанииУслуг(ТаблицаСведенийАктаОбОказанииУслуг, ОбъектыПечати, СтруктураПараметровПечати); 
// Вот тут формируется сам табличный документ
	
	ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.PDF);
	ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
	АдресВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
	
	ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(Док, "Акт_Тест", "pdf", , , адресВХранилище);
	УдалитьФайлы(ИмяВременногоФайла);
	Сообщить(" Готово" + Док);
	
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. D_e_X_T_e_R 573 22.03.18 04:55 Сейчас в теме
Документы.РеализацияТоваровУслуг.Печать(МассивДокумента, ПараметрыПечати, КоллекцияПечатныхФормДокумента, ОбъектыПечатиДокумента, ПараметрыВывода);


Это доступ к процедуре печати документа, где есть и Торг 12 и акт. Какой документ тебе нужен?

Я делал так, ТабДок присваивал стандартную команду под нужный документ. Если мы говорит о БП 3.0, то они находятся в общем модуле ПечатьТорговыхДокументов. Нужно вытянуть оттуда нужную команду и передать в нее параметры. Плюс нужно получить менеджер объекта документа реализации, поскольку данные для формирования получаются из документа. Через два часа буду в офисе и могу скинуть рабочий пример кода.
3. Dimkis 22.03.18 08:08 Сейчас в теме
(2)Передать нужно Акт
КоллекцияПечатныхФормДокументаСтрока.ИмяМакета = "Акт";


Если можно, то скиньте рабочий код
4. D_e_X_T_e_R 573 22.03.18 09:16 Сейчас в теме
Процедура СоздатьАктНаСервере()
	
	Контрагент = Справочники.Контрагенты.НайтиПоКоду("00-000091");
	Док = Документы.РеализацияТоваровУслуг.НайтиПоРеквизиту("Контрагент", Контрагент);
	
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла("pdf");
	
	ОбъектыПечати = Новый СписокЗначений;
	СтруктураПараметровПечати = Новый Структура;
	СтруктураПараметровПечати.Вставить("ВидДокументаПечати",  "РеализацияТоваровУслуг");
	СтруктураПараметровПечати.Вставить("ИмяПараметровПечати", "ПАРАМЕТРЫ_ПЕЧАТИ_РеализацияТоваровУслуг_Акт");
	СтруктураПараметровПечати.Вставить("ИмяМакетаПечати",     "Документ.РеализацияТоваровУслуг.ПФ_MXL_Акт");
	ОбъектыТипа = Док;
	МенеджерОбъекта = ОбщегоНазначения.МенеджерОбъектаПоСсылке(ОбъектыТипа); 
	ТаблицаСведенийАктаОбОказанииУслуг = МенеджерОбъекта.ПолучитьТаблицуСведенийАктаОбОказанииУслуг(Док);

	
	ТабДок = ПечатьТорговыхДокументов.ПечатьАктаОбОказанииУслуг(ТаблицаСведенийАктаОбОказанииУслуг, ОбъектыПечати, СтруктураПараметровПечати); 
// Вот тут формируется сам табличный документ
	
	ТабДок.Записать(ИмяВременногоФайла, ТипФайлаТабличногоДокумента.PDF);
	ДвоичныеДанные = Новый ДвоичныеДанные(ИмяВременногоФайла);
	АдресВХранилище = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
	
	ПрисоединенныйФайл = ПрисоединенныеФайлы.ДобавитьФайл(Док, "Акт_Тест", "pdf", , , адресВХранилище);
	УдалитьФайлы(ИмяВременногоФайла);
	Сообщить(" Готово" + Док);
	
КонецПроцедуры
Показать
5. Dimkis 22.03.18 09:58 Сейчас в теме
(4) Алексей, спасибо за подсказку. Всё отрабатывает на УРА!!!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот