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

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

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

 КонецЦикла;
 ЭлементыФормы.ОсновныеДействияФормы.Кнопки.Разослать.Доступность=Истина;
КонецПроцедуры
---
Как мне его перехватить?

Что его перехватывать, его нужно использовать:

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

    ///УПД
    ТабУПД=ПечатьУПДд(ТекСтрока.ДокументРеализация);
    ИмяФайлаУПД=Каталог+"\УПД"+ТекСтрока.ДокументРеализация.Номер+".xls";
    ТабУПД.Записать(ИмяФайлаУПД, , ТипФайлаТабличногоДокумента.XLSX);
```
---
У Вас функция ПечатьУПД(Док) что возвращает? Ничего! Посмотрите что возвращает
ПечатьСчетаЗаказа и сделайте по аналогии
---
Я понимаю, что нужно возврат сделать.
ПечатьУПДоб.Печать(); этой строкой я обращаюсь в экспортную функцию другой обработки, где уже есть возврат. Как мне его перехватить?

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

КонецФункции
---
Как мне его перехватить?

Что его перехватывать, его нужно использовать:

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

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

```1c
    ///УПД
    ТабУПД=ПечатьУПДд(ТекСтрока.ДокументРеализация);
    ТабУПД.Автомасштаб = Ложь;
    ТабУПД.МасшабПечати = 90;
```
---
по ширине листа
http://infostart.ru/public/83627/
ТабДок.Автомасштаб=истина; //аналогично настройкам масштаба «по ширине страницы»