Добрый день!
Есть бухгалтерия 3.0. В одном из нетиповых документов есть 4 печатные формы, не внешние. Подскажите, пожалуйста, что надо сделать, чтобы они печатались в комплекте при нажатии только 1 кнопки печати. Пример на скриншоте http://prntscr.com/8kxb4e
Никак не могу разобраться.
---
Проверено на базе УТ11.1. Но поскольку БП3.0 - тоже на БСП, то и для нее сработает.

1. Нужно в менюшку добавить кнопку печати комплекта:

```1c
    // Заполняет список команд печати.
    //
    // Параметры:
    // КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
    //
    Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    Если Пользователи.РолиДоступны("ДобавлениеИзменениеНоменклатуры,ОтчетыИОбработкиКладовщика,ОтчетыИОбработкиМенеджераПоРозничнойТорговле,ОтчетыМаркетолога") Тогда
    // Этикетки
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Обработчик = "УправлениеПечатьюУТКлиент.ПечатьЭтикетокИЦенников";
    КомандаПечати.МенеджерПечати = ";
    КомандаПечати.Идентификатор = "Этикетки";
    КомандаПечати.Представление = НСтр("ru = 'Этикетки'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
    КонецЕсли;
    КонецПроцедуры
```

Делается это в модуле менеджера документа.
В качестве обработчика печати укажете свой.
чтобы эта шляпа вызвалась и добавилась в менюшку "Печать" нужно обязательно и в форме списка и в форме документа вызвать обработчик:

```1c
    // СтандартныеПодсистемы.Печать
    УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма);
    // Конец СтандартныеПодсистемы.Печать
```

Разместив его, естесственно, в событии ПриСозданииНаСервере

Кроме того в модуль формы добавляется процедура:

```1c
    // СтандартныеПодсистемы.Печать
    &НаКлиенте
    Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)

    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Элементы.Список);

    КонецПроцедуры
    // Конец СтандартныеПодсистемы.Печать
```

Ну а собственно печать в модуле менеджера:

```1c
    // Сформировать печатные формы объектов
    //
    // ВХОДЯЩИЕ:
    // ИменаМакетов - Строка - Имена макетов, перечисленные через запятую
    // МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
    // ПараметрыПечати - Структура - Структура дополнительных параметров печати
    //
    // ИСХОДЯЩИЕ:
    // КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
    // ПараметрыВывода - Структура - Параметры сформированных табличных документов
    //
    Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

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

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

Формирование печатной формы осуществляется в функции СформироватьПечатнуюФормуВозвратОтКлиента()
чтобы напечатать несколько форм - тупо делаете несколько вызовов с нужными параметрами. И все. Разделители добавятся автоматически.
PS: Извиняюсь за то, что нет цельного примера, но думаю, что подобрать параметры вызовов функций не является проблемой.
---
Не скажу насчет 8.3, а в 7.7 я бы эту задачу решал так: разместил на форме список значений с четырьмя нужными пунктами, макеты всех печатных форм объединил бы в один, разделив его на вертикальные секции, соответствующие пунктам списка, а при печати выводил бы только те секции, которые отмечены галкой в списке.
---
Забыл добавить вознаграждение:)
---
Проверено на базе УТ11.1. Но поскольку БП3.0 - тоже на БСП, то и для нее сработает.

1. Нужно в менюшку добавить кнопку печати комплекта:

```1c
    // Заполняет список команд печати.
    //
    // Параметры:
    // КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
    //
    Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
    Если Пользователи.РолиДоступны("ДобавлениеИзменениеНоменклатуры,ОтчетыИОбработкиКладовщика,ОтчетыИОбработкиМенеджераПоРозничнойТорговле,ОтчетыМаркетолога") Тогда
    // Этикетки
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Обработчик = "УправлениеПечатьюУТКлиент.ПечатьЭтикетокИЦенников";
    КомандаПечати.МенеджерПечати = ";
    КомандаПечати.Идентификатор = "Этикетки";
    КомандаПечати.Представление = НСтр("ru = 'Этикетки'");
    КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
    КонецЕсли;
    КонецПроцедуры
```

Делается это в модуле менеджера документа.
В качестве обработчика печати укажете свой.
чтобы эта шляпа вызвалась и добавилась в менюшку "Печать" нужно обязательно и в форме списка и в форме документа вызвать обработчик:

```1c
    // СтандартныеПодсистемы.Печать
    УправлениеПечатью.ПриСозданииНаСервере(ЭтаФорма);
    // Конец СтандартныеПодсистемы.Печать
```

Разместив его, естесственно, в событии ПриСозданииНаСервере

Кроме того в модуль формы добавляется процедура:

```1c
    // СтандартныеПодсистемы.Печать
    &НаКлиенте
    Процедура Подключаемый_ВыполнитьКомандуПечати(Команда)

    УправлениеПечатьюКлиент.ВыполнитьПодключаемуюКомандуПечати(Команда, ЭтаФорма, Элементы.Список);

    КонецПроцедуры
    // Конец СтандартныеПодсистемы.Печать
```

Ну а собственно печать в модуле менеджера:

```1c
    // Сформировать печатные формы объектов
    //
    // ВХОДЯЩИЕ:
    // ИменаМакетов - Строка - Имена макетов, перечисленные через запятую
    // МассивОбъектов - Массив - Массив ссылок на объекты которые нужно распечатать
    // ПараметрыПечати - Структура - Структура дополнительных параметров печати
    //
    // ИСХОДЯЩИЕ:
    // КоллекцияПечатныхФорм - Таблица значений - Сформированные табличные документы
    // ПараметрыВывода - Структура - Параметры сформированных табличных документов
    //
    Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;

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

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

Формирование печатной формы осуществляется в функции СформироватьПечатнуюФормуВозвратОтКлиента()
чтобы напечатать несколько форм - тупо делаете несколько вызовов с нужными параметрами. И все. Разделители добавятся автоматически.
PS: Извиняюсь за то, что нет цельного примера, но думаю, что подобрать параметры вызовов функций не является проблемой.
---
Уже разобрался. Забыл тут отписаться :)
(4) VyacheslavKuznetsov, все правильно написали. Единственное, чтобы выводился сращу комплект печатных форм, то необходимо их перечислить в процедуре "ДобавитьКомандыПечати" в идентификаторе.
КомандаПечати.Идентификатор = "Этикетки,ТОРГ12,Заказ"; // Вот в этом случае распечатается сразу 3 печатные формы, как в первом посте на скрине.