Передать печатную форму с сервера на клиента
БП 3.0, 8.3
Не пинайте сильно, только начинаю в 1С программить. Думается, что спрашиваю тривиальную вещь
Хочу сохранить в счет в PDF
Я так понимаю, надо заполнить табличный документ на сервере, передать его на клиента и там уже
Но вот как заполнить табличный документ на сервере не знаю.
Не пинайте сильно, только начинаю в 1С программить. Думается, что спрашиваю тривиальную вещь
&НаКлиенте
Процедура ТЕСТ2(Команда)
Счет = ТЕСТ2НаСервере();
КонецПроцедуры
&НаСервере
Функция ТЕСТ2НаСервере();
Документ = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("0000-000207",Дата(2014,1,1)).Ссылка;
Возврат Документ;
КонецФункции
ПоказатьХочу сохранить в счет в PDF
Я так понимаю, надо заполнить табличный документ на сервере, передать его на клиента и там уже
Записать(Путь, типPDF)
Но вот как заполнить табличный документ на сервере не знаю.
По теме из базы знаний
- Как передать документ Word (ActiveDocument или ДвоичныеДанные) с сервера на клиент
- Знакомство с 1С:Документооборот. История автоматизации и доработок. Печатная форма Лист согласования
- Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом
- Формирование списка документов и скачивание печатной формы документа через веб-сайт с использованием HTTP-сервиса, плюс особенности авторизации
- Параметризация печатных форм под контрагентов (подключаемое расширение)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
как-то так:
ТабДок = Новый ТабличныйДокумент;
ОбластьЗаголовок.Параметры.ДатаФормирования = ТекущаяДата();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапка);
ТабДок.ФиксацияСверху = чЧислоСтрокФиксировать;
//ТабДок.ФиксацияСлева = 3;
ТабДок.ИтогиСнизу = Ложь;
Пока ВыборкаГруппировка.Следующий() Цикл
ОбластьГруппировка.Параметры.Заполнить(ВыборкаГруппировка);
ТабДок.Вывести(ОбластьГруппировка);
ТабДок.НачатьГруппуСтрок(, флЗаполненМенеджер);
Выборка = ВыборкаГруппировка.Выбрать();
Пока Выборка.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(Выборка);
ТабДок.Вывести(ОбластьСтрока);
КонецЦикла;
ТабДок.ЗакончитьГруппуСтрок();
КонецЦикла;
Возврат ТабДок;
Показать&НаКлиенте
Процедура ТЕСТ2(Команда)
ТабДок1 = Новый ТабличныйДокумент;
ТабДок1 = ТЕСТ2НаСервере();
ТабДок1.Записать("X:\1.pdf",ТипФайлаТабличногоДокумента.PDF);
КонецПроцедуры
&НаСервере
Функция ТЕСТ2НаСервере();
ТабДок = Новый ТабличныйДокумент;
Документы.СчетНаОплатуПокупателю.Печать(блабла, ТабДок, блабла )
Возврат ТабДок;
КонецФункции
ПоказатьВот так вот можно ?
Добрался Вот до чего:
КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
Документ = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00000000200",Дата(2014,1,1)).Ссылка;
мСчет = Новый массив ();
мСчет.Добавить(Документ);
ОбъектыПечати = Новый СписокЗначений;
ПараметрыОтправки=Новый Структура;
ПараметрыОтправки.Вставить("Получатель");
ПараметрыОтправки.Вставить("Текст","");
ПараметрыОтправки.Вставить("Тема","");
ПараметрыВывода=Новый Структура;
ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно",Ложь);
ПараметрыВывода.Вставить("ПараметрыОтправки",ПараметрыОтправки);
Документы.СчетНаОплатуПокупателю.Печать(мСчет,,КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
Документ = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00000000200",Дата(2014,1,1)).Ссылка;
мСчет = Новый массив ();
мСчет.Добавить(Документ);
ОбъектыПечати = Новый СписокЗначений;
ПараметрыОтправки=Новый Структура;
ПараметрыОтправки.Вставить("Получатель");
ПараметрыОтправки.Вставить("Текст","");
ПараметрыОтправки.Вставить("Тема","");
ПараметрыВывода=Новый Структура;
ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно",Ложь);
ПараметрыВывода.Вставить("ПараметрыОтправки",ПараметрыОтправки);
Документы.СчетНаОплатуПокупателю.Печать(мСчет,,КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
Добрался вот до чего:
Далее смотрю отладчиком Печать:
Вот это если у меня пропускается
Внесение новой строки не помогает
Где-то что-то не доделал, подскажите где?
КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
Документ = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00000000200",Дата(2014,1,1)).Ссылка;
мСчет = Новый массив ();
мСчет.Добавить(Документ);
ОбъектыПечати = Новый СписокЗначений;
ПараметрыОтправки=Новый Структура;
ПараметрыОтправки.Вставить("Получатель");
ПараметрыОтправки.Вставить("Текст","");
ПараметрыОтправки.Вставить("Тема","");
ПараметрыВывода=Новый Структура;
ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно",Ложь);
ПараметрыВывода.Вставить("ПараметрыОтправки",ПараметрыОтправки);
Документы.СчетНаОплатуПокупателю.Печать(мСчет,,КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ПоказатьДалее смотрю отладчиком Печать:
Вот это если у меня пропускается
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "СчетЗаказ") Тогда
ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату(МассивОбъектов);
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "СчетЗаказ", "Счет на оплату",
ПечатьТорговыхДокументов.ПечатьСчетаНаОплату(ТаблицаСведенийСчетНаОплату, ОбъектыПечати),,"ОбщийМакет.ПФ_MXL_СчетЗаказ");
КонецЕсли;
Внесение новой строки не помогает
НоваяСтрока = КоллекцияПечатныхФорм.Добавить()
НоваяСтрока.ИмяВрег = "СчетЗаказ";
Где-то что-то не доделал, подскажите где?
Ура, допилил.
Вдруг кому пригодится.
Вдруг кому пригодится.
&НаКлиенте
Процедура ТЕСТ2(Команда)
ТабДок1 = Новый ТабличныйДокумент;
ТабДок1 = ТЕСТ2НаСервере();
ТабДок1.Записать("X:\123.pdf", ТипФайлаТабличногоДокумента.PDF);
КонецПроцедуры
&НаСервере
Функция ТЕСТ2НаСервере();
ТабДок = Новый ТабличныйДокумент;
КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("Картинка");
КоллекцияПечатныхФорм.Колонки.Добавить("ПолныйПутьКМакету");
КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
НоваяСтрока = КоллекцияПечатныхФорм.Добавить();
НоваяСтрока.ИмяВРЕГ = "СЧЕТЗАКАЗСПЕЧАТЬЮ";
Документ = Документы.СчетНаОплатуПокупателю.НайтиПоНомеру("00000000200",Дата(2014,1,1)).Ссылка;
мСчет = Новый массив ();
мСчет.Добавить(Документ);
ОбъектыПечати = Новый СписокЗначений;
ПараметрыОтправки=Новый Структура;
ПараметрыОтправки.Вставить("Получатель");
ПараметрыОтправки.Вставить("Текст","");
ПараметрыОтправки.Вставить("Тема","");
ПараметрыВывода=Новый Структура;
ПараметрыВывода.Вставить("ДоступнаПечатьПоКомплектно",Ложь);
ПараметрыВывода.Вставить("ПараметрыОтправки",ПараметрыОтправки);
Документы.СчетНаОплатуПокупателю.Печать(мСчет,,КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ТабДок=КоллекцияПечатныхФорм[0].ТабличныйДокумент;
Возврат ТабДок;
КонецФункции
Показать
(9)
А теперь объясните назначение первой строки первой процедуры.
ТабДок1 = Новый ТабличныйДокумент;
ТабДок1 = ТЕСТ2НаСервере();
...
КонецПроцедуры
&НаСервере
Функция ТЕСТ2НаСервере();
ТабДок = Новый ТабличныйДокумент;
...
Возврат ТабДок;
КонецФункции
ПоказатьТабДок1 = ТЕСТ2НаСервере();
...
КонецПроцедуры
&НаСервере
Функция ТЕСТ2НаСервере();
ТабДок = Новый ТабличныйДокумент;
...
Возврат ТабДок;
КонецФункции
А теперь объясните назначение первой строки первой процедуры.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот