Хочу разобраться с механизмом внешних печатных форм, но...
Для начала создал обработку в которую прописал код инициализации таковой при загрузке в 1с8 УФ:

```1c
    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации=ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид="ПечатнаяФорма";
    ПараметрыРегистрации.Версия=ЭтотОбъект.Метаданные().Комментарий;

    МассивНазначений=Новый Массив;
    МассивНазначений.Добавить("Документ.ЗаказКлиента");
    ПараметрыРегистрации.Назначение=МассивНазначений;

    ПараметрыРегистрации.Наименование="МояОбработкаСВнешнейПечатнойФормой";
    ПараметрыРегистрации.БезопасныйРежим=Ложь;
    ПараметрыРегистрации.Информация="Краткая информация...(тра-ла-ла)";

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

    Возврат ПараметрыРегистрации;
    КонецФункции
```

Потом прописал в обработке код функции печати и заполнения макета:

```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ОткрытьТестовуюПечатнуюФорму",
    НСтр("ru='ОткрытьТестовуюПечатнуюФорму';uk='ОткрытьТестовуюПечатнуюФорму'"),
    ФормированиеПечатнойФормы(МассивОбъектов, ОбъектыПечати, ПараметрыВывода),
    ,
    ,
    ,
    Ложь //Это многоязычная печатная форма - нет
    );
    КонецПроцедуры

    Функция ФормированиеПечатнойФормы(МассивОбъектов, ОбъектыПечати, ПараметрыВывода)
    КодЯзыкаПечать = ПараметрыВывода.КодЯзыкаДляМногоязычныхПечатныхФорм;
    ТабДокумент = Новый ТабличныйДокумент;
    Макет = УправлениеПечатью.МакетПечатнойФормы("МакетОбработки");
    ОбластьШапка = Макет.ПолучитьОбласть("Область");
    ТабДокумент.Вывести(ОбластьШапка);
    Возврат ТабДокумент;
    КонецФункции
```

Так же создал макет во внешней обработки, назвав его "МакетОбработки".

Далее добавил обработку в БД 1с8 и зашел в документ "ЗаказКлиента", в результате чего увидел в подменю печати свою команду, но при нажатии на нее открывается пустая форма... Подскажите пожалуйста почему я вижу пустую печатную форму? Что не так?
---
попробуйте вот так получить макет
```1c
    Макет = ПолучитьМакет("МакетОбработки");
```
---
НоваяСтрока.Использование = "ОткрытиеФормы"; - для обработок
для печ форм ВызовСерверногоМетода
---
НоваяСтрока.Использование = "ОткрытиеФормы"; - для обработок
для печ форм ВызовСерверногоМетода
---
Спасибо. В комплексе с советом (1) помогло.
---
Спасибо. В комплексе с советом (2) помогло.
Подскажите ещё одно пожалуйста. Документ "ЗаказКлиента" типовой и он появляется в списке выбора вот здесь(скрин), но у меня ещё есть документ не типовой и он не появляется в этом списке. Не подскажете в чём может быть дело?
---
смотрите в отладке заполнение этой формы
---
ООО....это нужно доработать конфигурацию, лучше через расширение.
https://infostart.ru/public/674880/
---
конфигурация перепахана в доль и впоперек, по этому можно и без расширений. Направленип понял, буду разбираться. Спасибо.
Еще такой вопрос. Могу ли я сохранить макет в файл и сложить его в папке на HD, после чего при получении макета оьратиться к файлу? Есть пример строки обращения?
---
Макет как табличный документ можно сохранить в файл, но сохранятся ли при этом имена областей, я не знаю, проверьте. Если макет будет без именованных областей - вообще без проблем.
---
Час просидел в конфигураторе разбирая цепочку заполнения данной формы. В итоге выяснил что все сходится в функции "ПриОпределенииОбъектовСКомандамиПечати(СписокОбъектов)" из общего модуля "УправлениеПечатьюПредопределяемый"
Данная функция заполняет массив списка объектов и достаточно просто свой не стандартный документ добавить в этот массив, например, строкой:

```1c
    СписокОбъектов.Добавить(Документы.МойНеТиповойДокумент);
```

Дальше уже без проблем в окне выбора размещения появляется добавленный не типовой документ, в результате выбора которого в форме одноименного документа в группе печати добавляется описанная в обработке команда печати, вызвав которую получается желаемый результат.
---
Буквально несколько минут назад выложил статью на эту тему.
https://infostart.ru/public/1261956/
---
Не нашел связи темы со своим вопросом.
---
Да, извиняюсь, Не совсем внимательно прочитал вопрос. Вам уже ответили правильно в (3) про ВызовСерверногоМетода
---
Если использовать БСП так весь функционал

```1c
    Функция СведенияОВнешнейОбработке() Экспорт

    Название = "Название печатной формы";

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Назначение = "Документ.ЗаказКлиента";
    ПараметрыРегистрации.Наименование = Название;
    ПараметрыРегистрации.БезопасныйРежим = ЛОЖЬ;
    ПараметрыРегистрации.Версия = "1.1.1";
    ПараметрыРегистрации.Информация = "Дополнительная печатная форма";

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

    Возврат ПараметрыРегистрации;

    КонецФункции
```
---
попробуйте вот так получить макет
```1c
    Макет = ПолучитьМакет("МакетОбработки");
```