Здравствуйте. Подскажите, конфигурация полностью типовая, создал свой новый документ, создал к нему макет(внутренний, не общий), в модуле формы документа сделал кнопку печать и процедуру, которая заполняет этот макет как надо. Т.е. в результате у меня есть заполненный ТабличныйДокумент, который я пока могу Показать(). Вопрос, как послать его на печать используя стандартные средства, в стандартной есть общая форма печати, n-общих модулей и m-обработок, но что и как туда передать я не могу понять. Пробовал получить форму, передать разными вариантами ТабДок как параметр, не хочет, как структуру вида ("КоллекцияПечатныхФорм",ТабДок), тоже ругается, что нужен тип Массив, запихиваю ТабДок в массив - ругается опять... Подскажите, куда мне надо этот готовый ТабДок передать, чтобы открылась стандартная форма печати с стандартными настройками(ну там сколько копий, и т.д.) ?
---
если хочется сразу в лоб вызывать,
тогда юзай функции в общем модуле "УправлениеПечатьюБПКлиент"
это туда обработчик с конпки долбится

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

    Если ОписаниеКоманды.Свойство("ЗаголовокФормы") И ЗначениеЗаполнено(ОписаниеКоманды.ЗаголовокФормы) Тогда
    ПараметрыПечати = Новый Структура("ЗаголовокФормы", ОписаниеКоманды.ЗаголовокФормы);
    Иначе
    ПараметрыПечати = ПолучитьЗаголовокПечатнойФормы(ОписаниеКоманды.ОбъектыПечати);
    КонецЕсли;

    Если ОписаниеКоманды.Свойство("ДополнительныеПараметры") Тогда
    ПараметрыПечати.Вставить("ДополнительныеПараметры", ОписаниеКоманды.ДополнительныеПараметры);
    КонецЕсли;

    НачатьЗамерВремени(ОписаниеКоманды.Форма, ОписаниеКоманды.Идентификатор, ОписаниеКоманды.ОбъектыПечати);

    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(ОписаниеКоманды.МенеджерПечати, ОписаниеКоманды.Идентификатор, ОписаниеКоманды.ОбъектыПечати,
    ОписаниеКоманды.Форма, ПараметрыПечати);

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

ну и оно вызывает

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

    // Проверим количество объектов.
    Если НЕ ПроверитьКоличествоПереданныхОбъектов(МассивОбъектов) Тогда
    Возврат;
    КонецЕсли;

    // Получим ключ уникальности открываемой формы.
    КлючУникальности = Строка(Новый УникальныйИдентификатор);

    ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
    ПараметрыОткрытия.ИмяМенеджераПечати = ИмяМенеджераПечати;
    ПараметрыОткрытия.ИменаМакетов = ИменаМакетов;
    ПараметрыОткрытия.ПараметрКоманды = МассивОбъектов;
    ПараметрыОткрытия.ПараметрыПечати = ПараметрыПечати;

    // Откроем форму печати документов.
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);

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

в модуле "УправлениеПечатьюКлиент"
параметры расписаны, подготовь, передай и пользуй
---
Люди добрые, ну подскажите, неужели никто штатной конфой Бухгалтерии 3.0 не пользуется и не печатал ничего своего?
---
ToTMoM, так а что, не можешь посмотреть как в штатном документе сделано ?
и сделать все по аналогии.
смотрим ПКО.
В модуле формы

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

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

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

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

далее там же, в Процедуре ПриСозданииНасервере

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

далее в модуле менеджера

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

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

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

    ОбщегоНазначенияБП.ЗаполнитьДополнительныеПараметрыПечати(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);

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

и сама процедура формирующая табдок

```1c
    // Функция формирует табличный документ с печатной формой ПКО
    //
    // Возвращаемое значение:
    // Табличный документ - печатная форма
    //
    Функция ПечатьПКО(МассивОбъектов, ОбъектыПечати)
```

и еще

```1c
    // Заполняет список команд печати.
    //
    // Параметры:
    // КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати
    //
    Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт

    // Приходный кассовый ордер (КО-1)
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "ПКО";
    КомандаПечати.Представление = НСтр("ru = 'Приходный кассовый ордер (КО-1)'");
    КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечати";

    // Реестр документов
    КомандаПечати = КомандыПечати.Добавить();
    КомандаПечати.Идентификатор = "Реестр";
    КомандаПечати.Представление = НСтр("ru = 'Реестр документов'");
    КомандаПечати.ЗаголовокФормы = НСтр("ru = 'Реестр документов "Поступление наличных"'");
    КомандаПечати.Обработчик = "УправлениеПечатьюБПКлиент.ВыполнитьКомандуПечатиРеестраДокументов";
    КомандаПечати.СписокФорм = "ФормаСписка";
    КомандаПечати.Порядок = 100;

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

собственно, делаешь все по аналогии и все взлетит
---
если хочется сразу в лоб вызывать,
тогда юзай функции в общем модуле "УправлениеПечатьюБПКлиент"
это туда обработчик с конпки долбится

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

    Если ОписаниеКоманды.Свойство("ЗаголовокФормы") И ЗначениеЗаполнено(ОписаниеКоманды.ЗаголовокФормы) Тогда
    ПараметрыПечати = Новый Структура("ЗаголовокФормы", ОписаниеКоманды.ЗаголовокФормы);
    Иначе
    ПараметрыПечати = ПолучитьЗаголовокПечатнойФормы(ОписаниеКоманды.ОбъектыПечати);
    КонецЕсли;

    Если ОписаниеКоманды.Свойство("ДополнительныеПараметры") Тогда
    ПараметрыПечати.Вставить("ДополнительныеПараметры", ОписаниеКоманды.ДополнительныеПараметры);
    КонецЕсли;

    НачатьЗамерВремени(ОписаниеКоманды.Форма, ОписаниеКоманды.Идентификатор, ОписаниеКоманды.ОбъектыПечати);

    УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(ОписаниеКоманды.МенеджерПечати, ОписаниеКоманды.Идентификатор, ОписаниеКоманды.ОбъектыПечати,
    ОписаниеКоманды.Форма, ПараметрыПечати);

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

ну и оно вызывает

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

    // Проверим количество объектов.
    Если НЕ ПроверитьКоличествоПереданныхОбъектов(МассивОбъектов) Тогда
    Возврат;
    КонецЕсли;

    // Получим ключ уникальности открываемой формы.
    КлючУникальности = Строка(Новый УникальныйИдентификатор);

    ПараметрыОткрытия = Новый Структура("ИмяМенеджераПечати,ИменаМакетов,ПараметрКоманды,ПараметрыПечати");
    ПараметрыОткрытия.ИмяМенеджераПечати = ИмяМенеджераПечати;
    ПараметрыОткрытия.ИменаМакетов = ИменаМакетов;
    ПараметрыОткрытия.ПараметрКоманды = МассивОбъектов;
    ПараметрыОткрытия.ПараметрыПечати = ПараметрыПечати;

    // Откроем форму печати документов.
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия, ВладелецФормы, КлючУникальности);

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

в модуле "УправлениеПечатьюКлиент"
параметры расписаны, подготовь, передай и пользуй
---
Благодарю ) Да что-то затупил, не подумал посмотреть по аналогии, хотя всегда так делаю... Просто конфа по размерам приличная, а я только начинаю, т.е. ничего в ней еще не знаю, не видел, не делал ) Непривычно )
---
ToTMoM, если все по стандартному делать, то там еще хитрость есть
желательно макету печатной формы имя давать начиная с ПФ_MXL_имя :))
Но до этого сам потом дойдешь, когда будешь с отладчиком по конфе ползать ))
---
Ок, спасибо за дополнение ))