Всем привет.
Внешняя печатная форма должна выводить документ в ворд. Все прекрасно работает, но при нажатии "печать" в 1С вылетает ошибка:
{ОбщийМодуль.УправлениеПечатью.Модуль(1119)}: В обработчике печати не был сформирован табличный документ для: ДСТДСаратов
   ВызватьИсключение(ТекстСообщенияОбОшибке);

Понятно, что у меня не формируется табличный документ, он мне и не нужен. Как обойти это? Конфа типовая, изменять нельзя. Заранее спасибо.

Процедура печати:

```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | КадровыйПеревод.Ссылка КАК Ссылка,
    | КадровыйПеревод.Сотрудник КАК Сотрудник,
    | КадровыйПеревод.ДатаНачала КАК ДатаНачала,
    | КадровыйПеревод.ОбособленноеПодразделение КАК Организация,
    | КадровыйПеревод.Подразделение КАК Подразделение,
    | ЕСТЬNULL(Надбавки.Размер, 0) КАК РазмерНадбавки,
    | ЕСТЬNULL(Оклады.Размер, 0) КАК РазмерОклада,
    | КадровыйПеревод.Дата КАК Дата,
    | КадровыйПеревод.Должность КАК Должность
    |ИЗ
    | Документ.КадровыйПеревод КАК КадровыйПеревод
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | КадровыйПереводНачисления.Начисление КАК Начисление,
    | КадровыйПереводНачисления.Ссылка.Сотрудник КАК Сотрудник,
    | КадровыйПереводНачисления.Размер КАК Размер
    | ИЗ
    | Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
    | ГДЕ
    | КадровыйПереводНачисления.Ссылка В(&Ссылка)
    | И КадровыйПереводНачисления.Начисление = &Оклад) КАК Оклады
    | ПО КадровыйПеревод.Сотрудник = Оклады.Сотрудник
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | КадровыйПереводНачисления.Ссылка.Сотрудник КАК Сотрудник,
    | КадровыйПереводНачисления.Начисление КАК Начисление,
    | КадровыйПереводНачисления.Размер КАК Размер
    | ИЗ
    | Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
    | ГДЕ
    | КадровыйПереводНачисления.Ссылка В(&Ссылка)
    | И КадровыйПереводНачисления.Начисление = &Надбавка) КАК Надбавки
    | ПО КадровыйПеревод.Сотрудник = Надбавки.Сотрудник
    |ГДЕ
    | КадровыйПеревод.Ссылка В(&Ссылка)";

    Запрос.УстановитьПараметр("Ссылка", МассивОбъектов);
    Запрос.УстановитьПараметр("Оклад", ПланыВидовРасчета.Начисления.НайтиПоКоду("ОКЛГР"));
    Запрос.УстановитьПараметр("Надбавка", ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Персональная надбавка", Истина));

    РезультатЗапроса = Запрос.Выполнить();

    Выборка = РезультатЗапроса.Выбрать();

    Пока Выборка.Следующий() Цикл
    ПараметрыЗаполнения = Новый Структура;
    ПараметрыЗаполнения.Вставить("Сотрудник", Выборка.Сотрудник);
    ПараметрыЗаполнения.Вставить("ДатаПеревода", Выборка.ДатаНачала);
    ПараметрыЗаполнения.Вставить("НовоеПодразделениеОрганизации", Выборка.Подразделение);
    ПараметрыЗаполнения.Вставить("НоваяДолжностьОрганизации", Выборка.Должность);
    ПараметрыЗаполнения.Вставить("ТарифнаяСтавка", Выборка.РазмерОклада);
    ПараметрыЗаполнения.Вставить("Надбавка", Выборка.РазмерНадбавки);
    ПараметрыЗаполнения.Вставить("ДатаПриказа", Выборка.Дата);
    ПечатьТД(ПараметрыЗаполнения);
    КонецЦикла;

    КонецПроцедуры //Печать
```

Документ ворд формируется в процедуре ПечатьТД(ПараметрыЗаполнения).
---
В общем получилось все сделать. Оказалось все очень просто через "ВызовКлиентскогоМетода" в СведенияОВнешнейОбработке. Переделал обработку, перетащив все в форму объекта и все взлетело. Помогли "ковыряния" в типовом функционале печати в Word в ЗУП 3.1, а так же данная статья https://forum.infostart.ru/forum15/topic83004/
---
что у меня не формируется табличный документ, - я бы возвращал пустой табличный документ
---
С пустым тоже пробовал. Ошибка не вываливается, но открывается окно с пустым табличным документом (печатная форма недоступна). А это тоже самое, что ошибка в данном случае, т.к. постоянно нужно закрывать лишнее окно. Или возможно как-то не открывать пустой таб док?
---
может как-то так написать в теле процедуры "Печать()" :

```1c
    Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ДСТДСаратов") Тогда

    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
    "ДСТДСаратов",
    ",
    Новый ТабличныйДокумент,
    ,
    );
    КонецЕсли;
```
---
выводит пустой табличный документ, но нужно чтобы вообще ничего не открывалось кроме Word.
---
Честно говоря не "игрался" с этим механизмом - а если просто "тупо" удалить строку ТЗ "КоллекцияПечатныхФорм" с реквизитом "Имя" = "ДСТДСаратов"? Вместо "УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию" строку ТЗ удалить
---
немного не понял где именно удалять, примером можете написать?
---
Наверное вот так:

```1c
    ОписаниеПечатнойФормы = КоллекцияПечатныхФорм.Найти(ВРег("ДСТДСаратов"), "ИмяВРЕГ");
    Если ОписаниеПечатнойФормы <> Неопределено Тогда
    КоллекцияПечатныхФорм.Удалить(ОписаниеПечатнойФормы)
    КонецЕсли;
```
---
к сожалению, тоже не работает. Документ выводится и при этом еще ошибка вываливается. Существует ли в 8.3 прерывание выполнения всех процедур и функций после определенного условия?
---
Идея у Вас хорошая, надо разобраться как подобную задачу выполнить. Как вариант можно не "мучаться" с внешними печ. формами, так как требуется обязательное наличие макета mxl на выходе процедуры. Переделайте Вашу обработку в "обработку заполнения формы объекта": недавно переписывался https://forum.infostart.ru/forum9/topic182133/ - там различные варианты вызова внешних методов с клиента или сервера, но при этом расположение будет не в меню формирования печатных форм, а в другом подменю - "Обработка заполнения"
---
Да, я думал о том, чтобы сделать не внешнюю печатную форму, а обработку. Но Заказчику нужно вызывать именно из меню "Печать". По сути что тут мелочь, что с выводом пустого таб дока мелочь, но Заказчик просит...

(10) требуется обязательное наличие макета mxl на выходе процедуры
Это точно? Как тогда вообще пользоваться макетов Active, если требуется вывод mxl? Или вордовский макет на выходе будет как mxl шаблон, если документ выводить на печать в саму 1С (как обычные печатные формы)?
---
В общем получилось все сделать. Оказалось все очень просто через "ВызовКлиентскогоМетода" в СведенияОВнешнейОбработке. Переделал обработку, перетащив все в форму объекта и все взлетело. Помогли "ковыряния" в типовом функционале печати в Word в ЗУП 3.1, а так же данная статья https://forum.infostart.ru/forum15/topic83004/
---
Спасибо за полезную статью!