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

В идеале хотелось бы узнать как должен выглядеть кусок кода в который можно будет просто обернуть функцию формирования табдока. Что то вроде цикла для всех элементов.
Заранее спасибо.
---
Примерно так:

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

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

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

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

    ТД = Новый ТабличныйДокумент;

    ПоляОтбораПериодическихДанных = Неопределено;
    ТолькоРазрешенные = Истина;

    Макет = ЭтотОбъект.ПолучитьМакет("ИмяМакета");
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ТД.Вывести(ОбластьМакета);

    Для Каждого ВыбрДок из МассивОбъектов Цикл

    сотр = ВыбрДок.Сотрудник;

    КадровыеДанные = "Должность, Подразделение";
    ТабСотр = КадровыйУчет.КадровыеДанныеСотрудников(ТолькоРазрешенные, сотр, КадровыеДанные, ВыбрДок.Дата, ПоляОтбораПериодическихДанных, Истина);

    ДанныеСотр = ТабСотр[0];
    должн = ДанныеСотр.Должность;
    подр = ДанныеСотр.Подразделение;

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

    ОбластьМакета.Параметры.ФИОПолные = строка(сотр);
    ОбластьМакета.Параметры.ТабельныйНомер = сотр.код;
    ОбластьМакета.Параметры.Подразделение = подр;
    ОбластьМакета.Параметры.Должность = должн;
    //
    ОбластьМакета.Параметры.ДатаНачала = ВыбрДок.ДатаНачала;
    ОбластьМакета.Параметры.ДатаОкончания = ВыбрДок.ДатаОкончания;
    ОбластьМакета.Параметры.КоличествоДней = (КонецДня(ВыбрДок.ДатаОкончания)+1 - ВыбрДок.ДатаНачала)/60/60/24;

    ТД.Вывести(ОбластьМакета);

    КонецЦикла;

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

    ТД.Вывести(ОбластьМакета);

    ТД.Защита = Ложь;
    ТД.Автомасштаб = Истина;

    Возврат ТД;

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

данный код помещается в модуль внешней обработки
---
В параметры печатной формы передается массив объектов. В зависимости от версии Бсп и разработчика на выходе получается либо коллекция печатных форм по каждому обьекту отдельно либо табличный документ по всем объектам.
---
Примерно так:

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

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

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

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

    ТД = Новый ТабличныйДокумент;

    ПоляОтбораПериодическихДанных = Неопределено;
    ТолькоРазрешенные = Истина;

    Макет = ЭтотОбъект.ПолучитьМакет("ИмяМакета");
    ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
    ТД.Вывести(ОбластьМакета);

    Для Каждого ВыбрДок из МассивОбъектов Цикл

    сотр = ВыбрДок.Сотрудник;

    КадровыеДанные = "Должность, Подразделение";
    ТабСотр = КадровыйУчет.КадровыеДанныеСотрудников(ТолькоРазрешенные, сотр, КадровыеДанные, ВыбрДок.Дата, ПоляОтбораПериодическихДанных, Истина);

    ДанныеСотр = ТабСотр[0];
    должн = ДанныеСотр.Должность;
    подр = ДанныеСотр.Подразделение;

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

    ОбластьМакета.Параметры.ФИОПолные = строка(сотр);
    ОбластьМакета.Параметры.ТабельныйНомер = сотр.код;
    ОбластьМакета.Параметры.Подразделение = подр;
    ОбластьМакета.Параметры.Должность = должн;
    //
    ОбластьМакета.Параметры.ДатаНачала = ВыбрДок.ДатаНачала;
    ОбластьМакета.Параметры.ДатаОкончания = ВыбрДок.ДатаОкончания;
    ОбластьМакета.Параметры.КоличествоДней = (КонецДня(ВыбрДок.ДатаОкончания)+1 - ВыбрДок.ДатаНачала)/60/60/24;

    ТД.Вывести(ОбластьМакета);

    КонецЦикла;

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

    ТД.Вывести(ОбластьМакета);

    ТД.Защита = Ложь;
    ТД.Автомасштаб = Истина;

    Возврат ТД;

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

данный код помещается в модуль внешней обработки
---
Спасибо!
Именно, что просто циклом формирование макета обернуть нужно было.