Получить печатную форму из обработки.

1. Cab-dv 50 02.06.18 07:39 Сейчас в теме
День добрый.
"Программирую" раз в год и то по крайне необходимости, так что сильно не пинайте.
Есть готовая обработка по рассылке счетов, появилась срочная необходимость прикрутить рассылку УПД.
Взял готовую внеш. печ. форму(ВНП) и интегрировал в базу.
Далее из своей обработки рассылки счетов, пробую её вызвать, а затем сохранить в эксель.
При сохранении выходит ошибка: Метод объекта не обнаружен (Записать)
ТабУПД.Записать(ИмяФайлаУПД,"XLS");
Я так полагаю, что изначально ошибка в функции печатьУПД().



Функция ПечатьУПД(Док)
ПечатьУПДоб=Обработки.УПД.Создать();
ПечатьУПДоб.ПолучитьФорму("Форма");
ПечатьУПДоб.СсылкаНаОбъект=Док.ссылка;
ПечатьУПДоб.Печать();
КонецФункции

Процедура КнопкаСформироватьНажатие(Кнопка)
ЭлементыФормы.Индикатор.ЦветРамки = ЦветаСтиля.ЦветРамки;
Если Не ЗначениеЗаполнено(Каталог) Тогда
Предупреждение("Не выбран каталог для сохранения выходных файлов!");
Возврат;
КонецЕсли;
ЭлементыФормы.Индикатор.МаксимальноеЗначение =ТаблицаСчета.Количество();
Для Каждого ТекСтрока Из ТаблицаСчета Цикл
//Счет
ТабСчет=ПечатьСчетаЗаказа(ТекСтрока.ДокументСчет);
ИмяФайла=Каталог+"\Счет"+ТекСтрока.ДокументСчет.Номер+".xls";
ТабСчет.Записать(ИмяФайла,"XLS");
ТекСтрока.Флажок=1;
ЭлементыФормы.Индикатор.Значение = ТаблицаСчета.Индекс(ТекСтрока)+1;
///УПД
ТабУПД=ПечатьУПДд(ТекСтрока.ДокументРеализация);
ИмяФайлаУПД=Каталог+"\УПД"+ТекСтрока.ДокументРеализация.Номер+".xls";
ТабУПД.Записать(ИмяФайлаУПД,"XLS");

КонецЦикла;
ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Разослать.Доступность=Истина;
КонецПроцедуры
По теме из базы знаний
Найденные решения
4. user705522_constantin_h 37 02.06.18 14:51 Сейчас в теме
(3)
Как мне его перехватить?


Что его перехватывать, его нужно использовать:
Функция ПечатьУПД(Док) 
	ПечатьУПДоб=Обработки.УПД.Создать(); 
	ПечатьУПДоб.ПолучитьФорму("Форма"); 
	ПечатьУПДоб.СсылкаНаОбъект=Док.ссылка; 
	Возврат ПечатьУПДоб.Печать(); 
КонецФункции 

///УПД 
ТабУПД=ПечатьУПДд(ТекСтрока.ДокументРеализация); 
ИмяФайлаУПД=Каталог+"\УПД"+ТекСтрока.ДокументРеализация.Номер+".xls"; 
ТабУПД.Записать(ИмяФайлаУПД, , ТипФайлаТабличногоДокумента.XLSX); 

Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. leosoft 167 02.06.18 09:15 Сейчас в теме
У Вас функция ПечатьУПД(Док) что возвращает? Ничего! Посмотрите что возвращает
ПечатьСчетаЗаказа и сделайте по аналогии
3. Cab-dv 50 02.06.18 14:33 Сейчас в теме
(2) Я понимаю, что нужно возврат сделать.
ПечатьУПДоб.Печать(); этой строкой я обращаюсь в экспортную функцию другой обработки, где уже есть возврат. Как мне его перехватить?

Функция Печать() Экспорт
ТабДокумент = ПечатьУПД();
Возврат ТабДокумент;

КонецФункции
4. user705522_constantin_h 37 02.06.18 14:51 Сейчас в теме
(3)
Как мне его перехватить?


Что его перехватывать, его нужно использовать:
Функция ПечатьУПД(Док) 
	ПечатьУПДоб=Обработки.УПД.Создать(); 
	ПечатьУПДоб.ПолучитьФорму("Форма"); 
	ПечатьУПДоб.СсылкаНаОбъект=Док.ссылка; 
	Возврат ПечатьУПДоб.Печать(); 
КонецФункции 

///УПД 
ТабУПД=ПечатьУПДд(ТекСтрока.ДокументРеализация); 
ИмяФайлаУПД=Каталог+"\УПД"+ТекСтрока.ДокументРеализация.Номер+".xls"; 
ТабУПД.Записать(ИмяФайлаУПД, , ТипФайлаТабличногоДокумента.XLSX); 

Показать
5. Cab-dv 50 02.06.18 14:56 Сейчас в теме
(4)
Возврат ПечатьУПДоб.Печать();

Спасибо.
А параметры страницы, как задать? по ширине листа, маштаб.
6. user705522_constantin_h 37 02.06.18 15:06 Сейчас в теме
(5)
А параметры страницы, как задать? по ширине листа, маштаб.

///УПД 
ТабУПД=ПечатьУПДд(ТекСтрока.ДокументРеализация); 
ТабУПД.Автомасштаб = Ложь;
ТабУПД.МасшабПечати = 90;
7. user705522_constantin_h 37 02.06.18 15:28 Сейчас в теме
(5)
по ширине листа

http://infostart.ru/public/83627/
ТабДок.Автомасштаб=истина; //аналогично настройкам масштаба «по ширине страницы»
Оставьте свое сообщение

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