Здравствуйте! Имеется печатная форма. Модуль объекта представлен ниже:

```1c
    &НаСервере
    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.СписаниеНедостачТоваров"); //Указываем документ к которому делаем внешнюю печ. форму
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов...
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "АктОСписанииСРозничнымиЦенами"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ);
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Печатная форма заказа покупателя в разных единицах измерения ");
    ТаблицаКоманд = ПолучитьТаблицуКоманд();
    ДобавитьКоманду(ТаблицаКоманд, "Акт о списании с Розничными ценами", "ПФ_MXL_АктОСписанииТоваров", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

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

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

    &НаСервере
    Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "ПечатьMXL") Экспорт

    НоваяКоманда = ТаблицаКоманд.Добавить();
    НоваяКоманда.Представление = Представление;
    НоваяКоманда.Идентификатор = Идентификатор;
    НоваяКоманда.Использование = Использование;
    НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
    НоваяКоманда.Модификатор = Модификатор;

    КонецПроцедуры

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

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

    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
    КоллекцияПечатныхФорм,
    "АктСписанияТоваров",
    НСтр("ru = 'Акт о списании товаров'"),
    СформироватьПечатнуюФормуАктСписанияТоваров(УправлениеПечатью.МакетПечатнойФормы("ПФ_MXL_АктОСписанииТоваров"),МассивОбъектов, ОбъектыПечати));

    КонецЕсли;

    КонецПроцедуры

    Функция СформироватьПечатнуюФормуАктСписанияТоваров(Макет ,МассивОбъектов, ОбъектыПечати)

    УстановитьПривилегированныйРежим(Истина);

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    ДопКолонка = ФормированиеПечатныхФорм.ИмяДополнительнойКолонки();
    ВыводитьДопКолонку = ЗначениеЗаполнено(ДопКолонка);
    Запрос.Текст =
    "ВЫБРАТЬ
    | Документ.Ссылка КАК Ссылка,
    | Документ.Номер КАК Номер,
    | Документ.Дата КАК Дата,
    | Документ.Склад КАК Склад,
    | Документ.Подразделение КАК Подразделение,
    | Документ.Организация КАК Организация,
    | ПРЕДСТАВЛЕНИЕ(Документ.Склад) КАК СкладПредставление,
    | ПРЕДСТАВЛЕНИЕ(Документ.Подразделение) КАК ПодразделениеПредставление,
    | Документ.Организация.НаименованиеСокращенное КАК ОрганизацияПредставление,
    | Документ.Организация.Префикс КАК Префикс,
    | Документ.Склад.ТекущийОтветственный КАК Кладовщик,
    | Документ.Склад.ТекущаяДолжностьОтветственного КАК КладовщикДолжность,
    | Документ.Ответственный.ФизическоеЛицо КАК Ответственный
    |ИЗ
    | Документ.СписаниеНедостачТоваров КАК Документ
    |ГДЕ
    | Документ.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    | Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | СписаниеНедостачТоваровТовары.Ссылка КАК Ссылка,
    | СписаниеНедостачТоваровТовары.НомерСтроки КАК НомерСтроки,
    | СписаниеНедостачТоваровТовары.Номенклатура КАК Номенклатура,
    | СписаниеНедостачТоваровТовары.Характеристика КАК Характеристика,
    | СписаниеНедостачТоваровТовары.Количество КАК Количество,
    | " + ?(ВыводитьДопКолонку, "СписаниеНедостачТоваровТовары.Номенклатура." + ДопКолонка +" КАК ДопКолонка,", ") + "
    | СписаниеНедостачТоваровТовары.Номенклатура.НаименованиеПолное КАК НоменклатураПредставление,
    | СписаниеНедостачТоваровТовары.Характеристика.НаименованиеПолное КАК ХарактеристикаПредставление,
    | ПРЕДСТАВЛЕНИЕ(СписаниеНедостачТоваровТовары.Серия) КАК СерияПредставление,
    | ПРЕДСТАВЛЕНИЕ(СписаниеНедостачТоваровТовары.Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаИзмеренияПредставление
    |ИЗ
    | Документ.СписаниеНедостачТоваров.Товары КАК СписаниеНедостачТоваровТовары
    |ГДЕ
    | СписаниеНедостачТоваровТовары.Ссылка В(&МассивОбъектов)
    |УПОРЯДОЧИТЬ ПО
    | Ссылка,
    | НомерСтроки
    |ИТОГИ ПО
    | Ссылка";

    Результаты = Запрос.ВыполнитьПакет();
    ВыборкаПоДокументам = Результаты[0].Выбрать();
    ВыборкаПоТоварам = Результаты[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

    РеквизитыДокумента = Новый Структура("Номер, Дата, Префикс");
    СинонимДокумента = НСтр("ru='Акт о списании товаров'");

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СписаниеНедостачТоваров_АктОСписанииТоваро­в";

    Макет = УправлениеПечатью.МакетПечатнойФормы("ПФ_MXL_АктОСписанииТоваров");

    Если ПолучитьФункциональнуюОпцию("ИспользоватьПодразделения") Тогда
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Иначе
    ОбластьЗаголовок = Макет.ПолучитьОбласть("ЗаголовокБезПодразделения");
    КонецЕсли;

    ОбластьОснование = Макет.ПолучитьОбласть("Основание");

    ОбластьНомераШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
    ОбластьКодовШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|КолонкаКодов");
    ОбластьТоварШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|Товар");
    ОбластьДанныеШапка = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
    Если Не ВыводитьДопКолонку Тогда
    Макет.Область("Товар").ШиринаКолонки = Макет.Область("Товар").ШиринаКолонки
    + Макет.Область("КолонкаКодов").ШиринаКолонки;
    КонецЕсли;
    ОбластьНомераСтрока = Макет.ПолучитьОбласть("Строка|НомерСтроки");
    ОбластьКодовСтрока = Макет.ПолучитьОбласть("Строка|КолонкаКодов");
    ОбластьТоварСтрока = Макет.ПолучитьОбласть("Строка|Товар");
    ОбластьДанныхСтрока = Макет.ПолучитьОбласть("Строка|Данные");

    ОбластьНомераПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы|НомерСтроки");
    ОбластьКодовПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы|КолонкаКодов");
    ОбластьТоварПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы|Товар");
    ОбластьДанныхПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы|Данные");

    ОбластьПодписи = Макет.ПолучитьОбласть("Подписи");
    ОбластьКоличествоВсего = Макет.ПолучитьОбласть("КоличествоВсего");

    ПервыйДокумент = Истина;
    Пока ВыборкаПоДокументам.Следующий() Цикл

    Если Не ПервыйДокумент Тогда
    ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
    КонецЕсли;

    ПервыйДокумент = Ложь;

    НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;

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

    // Вывод строк.
    Если НЕ ВыборкаПоТоварам.НайтиСледующий(Новый Структура("Ссылка",ВыборкаПоДокументам.Ссылка)) Тогда
    Продолжить;
    КонецЕсли;

    // Вывод шапки.
    ТабДокумент.Вывести(ОбластьНомераШапка);

    Если ВыводитьДопКолонку Тогда
    ОбластьКодовШапка.Параметры.ДопКолонка = ДопКолонка;
    ТабДокумент.Присоединить(ОбластьКодовШапка);
    КонецЕсли;

    ТабДокумент.Присоединить(ОбластьТоварШапка);
    ТабДокумент.Присоединить(ОбластьДанныеШапка);

    ВсегоНаименований = 0;

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

    // Номенклатура.
    ОбластьТоварСтрока.Параметры.Номенклатура = ВыборкаПоСтрокам.Номенклатура;
    ОбластьТоварСтрока.Параметры.НоменклатураПредставление = НоменклатураКлиентСервер.ПредставлениеНоменклатурыДляПечати(
    ВыборкаПоСтрокам.НоменклатураПредставление,
    ВыборкаПоСтрокам.ХарактеристикаПредставление,
    ВыборкаПоСтрокам.СерияПредставление);
    ТабДокумент.Присоединить(ОбластьТоварСтрока);
    // Данные количестве.
    ОбластьДанныхСтрока.Параметры.Заполнить(ВыборкаПоСтрокам);
    ТабДокумент.Присоединить(ОбластьДанныхСтрока);
    ВсегоНаименований = ВсегоНаименований + 1;
    КонецЦикла;

    // Вывод итогов.
    ТабДокумент.Вывести(ОбластьНомераПодвалТаблицы);
    Если ВыводитьДопКолонку Тогда
    ТабДокумент.Присоединить(ОбластьКодовПодвалТаблицы);
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьТоварПодвалТаблицы);
    ТабДокумент.Присоединить(ОбластьДанныхПодвалТаблицы);
    ТекстИтоговойСтроки = НСтр("ru = 'Всего наименований %ВсегоНаименований%'");
    ТекстИтоговойСтроки = СтрЗаменить(ТекстИтоговойСтроки,"%ВсегоНаименований%", ВсегоНаименований);
    ОбластьКоличествоВсего.Параметры.ИтоговаяСтрока = ТекстИтоговойСтроки;
    ТабДокумент.Вывести(ОбластьКоличествоВсего);

    // Вывод подписей.
    ОбластьПодписи.Параметры.Ответственный = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ВыборкаПоДокументам.Ответственный, ВыборкаПоДокументам.Дата);
    ОбластьПодписи.Параметры.Кладовщик = ФизическиеЛицаУТ.ФамилияИнициалыФизЛица(ВыборкаПоДокументам.Кладовщик, ВыборкаПоДокументам.Дата);
    ОбластьПодписи.Параметры.КладовщикДолжность = СкладыСервер.ДолжностьОтветственногоЛицаСклада(ВыборкаПоДокументам.КладовщикДолжность);
    ТабДокумент.Вывести(ОбластьПодписи);

    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, ВыборкаПоДокументам.Ссылка);

    КонецЦикла;

    Если ПривилегированныйРежим() Тогда
    УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли;

    Возврат ТабДокумент;

    КонецФункции
```

Когда я её загружаю в доп отчеты и обработки и пытаюсь вывести на печать у меня появляется ошибка:

```1c
    {ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(247)}: В обработчике печати не был сформирован табличный документ для: ПФ_MXL_АктОСписанииТоваров
    ВызватьИсключение(ТекстСообщенияОбОшибке);
```

как это исправить?
---
Разные имена макетов, а нужно указать одинаковые

ДобавитьКоманду(ТаблицаКоманд, "Акт о списании с Розничными ценами", "ПФ_MXL_АктОСписанииТоваров", "ВызовСерверногоМетода", Истина, "ПечатьMXL");

УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСписанияТоваров")
---
Разные имена макетов, а нужно указать одинаковые

ДобавитьКоманду(ТаблицаКоманд, "Акт о списании с Розничными ценами", "ПФ_MXL_АктОСписанииТоваров", "ВызовСерверногоМетода", Истина, "ПечатьMXL");

УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "АктСписанияТоваров")
---
теперь он пишет макет не найден.....
---
разобрался, спасибо.
---
СформироватьПечатнуюФормуАктСписанияТоваров(УправлениеПечатью.МакетПечатнойФормы("ПФ_MXL_АктОСписанииТоваров"),МассивОбъектов, ОбъектыПечати)); тут ошибка))