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

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

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


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

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


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

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

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)