Добрый день.
Задача. Есть внешняя печатная форма. Метод "ОткрытиеФормы" код ниже

```1c
    #Region Регистрация_внешней_печатной_формы

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

    // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
    ПараметрыРегистрации = Новый Структура;

    // Объявим еще одну переменную, которая нам потребуется ниже
    МассивНазначений = Новый Массив;

    // Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
    // Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");

    // Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ
    // Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе,
    // которые поддерживают механизм ВПФ
    МассивНазначений.Добавить("Документ.ПриемНаРаботу");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

    // Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
    ПараметрыРегистрации.Вставить("Наименование", "Приказ о приёме");

    // Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);

    // Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("Информация", "Приказ о приёме");

    // Создадим таблицу команд (подробнее смотрим ниже)
    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    // Добавим команду в таблицу //кгм-кгм
    ДобавитьКоманду(ТаблицаКоманд, "Приказ о приёме", "ПриказНаПрием", "ОткрытиеФормы", Ложь, "ПечатьMXL");

    // Сохраним таблицу команд в параметры регистрации обработки
    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    // Теперь вернем системе наши параметры
    Возврат ПараметрыРегистрации;

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

    Функция ПолучитьТаблицуКоманд()

    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;

    // Как будет выглядеть описание печатной формы для пользователя
    Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));

    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

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

    // Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
    Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));

    // Для печатной формы должен содержать строку ПечатьMXL
    Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));

    Возврат Команды;

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

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

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

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

    #EndRegion
```

В форме документа устанавливаются необходимые дополнительные параметры, взависимости от нужд и формируется печатная форма для документа, вызвашего эту ВПФку

Вопрос, как осуществляется передача Массива объектов для печати???
Никак не могу сообразить
---
читай документацию по функционалу. При методе открыть форму нет массива объектов.
Нужен массив создай его сам!
---
Вчера тут скачал обработку пример, там как то это передавалось и работало.
Я пытался разобраться, но видимо еще туповат((((
---
читай документацию по функционалу. При методе открыть форму нет массива объектов.
Нужен массив создай его сам!
---
Вчера тут скачал обработку пример, там как то это передавалось и работало.
Я пытался разобраться, но видимо еще туповат((((
---
внимательно читай какие методы ты используешь от этого зависят параметры которые ты получишь!
Плюс открой конфигуратор и посмотри справку по функциям там довольно понятно расписано что и куда идет!
---
Если нужно с использованием метода ОткрытиеФормы, то нужно создать 3 параметра формы

```1c
    ДополнительнаяОбработкаСсылка, тип СправочникСсылка.ДополнительныеОтчетыИОбработки
    ИдентификаторКоманды, тип строка
    ОбъектыНазначения, тип произвольный
```

и далее в процедуре

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    МассивОбъектов=Новый Массив;
    Для каждого ЭлементОбъектНазначения из Параметры.ОбъектыНазначения Цикл
    МассивОбъектов.Добавить(ЭлементОбъектНазначения);
    КонецЦикла;
    КонецПроцедуры
```
---
Я честно пробовал, но у меня ничего не получилось.

В текущий момент решил проблему через вызов клиентского метода
---
(4) может кто то знает как открыв другую форму сделать так что бы она поставила выполнение кода на паузу, пока в ней не укажешь все нужные параметры?
Модальные окна в управляемых формах не разрешены конфигурацией
---
Надо создать
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
...
---
Мне нужен МассивОбъектов не в модуле обработки, а в модуле формы обработки
---
В модуле объекта все равно надо указать процедуру Печать(МассивДокументов, ОбъектыПечати) в моем случае 2 параметра

В модуле формы:
// Код процедур и функций
&НаКлиенте
Процедура Печать(Команда)
    ТабДок = ПечатьСерверная();
    ТабДок.Показать();
 Закрыть();
КонецПроцедуры

#КонецОбласти

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

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