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

Внутри в ПриСозданииНаСервере

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

    ............................................
```
---
Здравствуйте, конфигурация на базе бсп?
---
Да
---
А в форму, где вводятся некоторые данные, вы ссылку передали?
---
нНет, в этом и вопрос, как передать ссылку? На форме есть ревизит ссылка на документ
как задать ему значение того объекта из котрого она открывается?
---
в БСП ссылка на объект печати в обработку передается в МассивОбъектов
---
Да, но как получить этот массив объектов в модуле формы?
---
здесь https://infostart.ru/public/86853/ как передать
---
Мне не надо параметры в форму передавать, мне надо параметры в функцию передавать.
 Есть документ, к нему привязана внешняя обработка, если просто делать сразу печать, то это все делается в модуле объекта, а у меня сначала открываестя форма обработки, и из нее уже делается печать. В Модуле обработки есть процедура печать, там есть массив объектов, и его можно передавать в функцию, но мне надо получить этот массив объектов из модуля формы, а не из модуля объекта
---
Если в модуле объекта есть СведенияОВнешнейОбработке то пришлите его содержание. Если нету, пришлите всю обработку
---
```1c
    Функция СведенияОВнешнейОбработке() ЭКСПОРТ

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ПередачаСырьяПереработчику");

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

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

в прикрепе обработка
---
Та форма, которая открывается. У нее есть (или сделай) событие ПриСозданииНаСервере

Внутри в ПриСозданииНаСервере

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

    ............................................
```
---
А как потом передать это в функцию?

```1c
    Функция ПечатьУЛ()
    Об = РеквизитФормыВЗначение("Объект");
    Печать = Об.СформироватьПечатнуюФорму(МассивОбъектов[0], ЭтаФорма);
    Возврат Печать;
    КонецФункции
```
---
Например на форме сделать реквизит с типом Документа который печатаете.

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если параметры.Свойство("ОбъектыНазначения") Тогда
    МассивОбъектов = Параметры.ОбъектыНазначения;
    МойРеквизитКоторыйЯСоздалНаФорме = МассивОбъектов[0];
    КонецЕсли;

    ..................................

    Функция ПечатьУЛ()
    Об = РеквизитФормыВЗначение("Объект");
    Печать = Об.СформироватьПечатнуюФорму(МойРеквизитКоторыйЯСоздалНаФорме ,ЭтаФорма);
    Возврат Печать;
    КонецФункции

    ..........
```
---
Да, реквизит был, я так и сделал, в (15)
---
Все получилось, спасибо!
МассивОбъектов = Параметры.ОбъектыНазначения[0];
---
В модуле Внешней обработки у вас есть функция "СведенияОВнешнейОбработке()".
Там заполняется "ТаблицаКоманд". Что вы заполняете в колонке "Использование" этой таблицы("ВызовКлиентскогоМетода"/"ВызовСерверногоМетода"/"Заполнение­Формы"/"ОткрытиеФормы"/"СценарийВБезопасномРежиме")?
Вам, по идее, должно подойти "ОткрытиеФормы".

Далее смотрите общий модуль "ДополнительныеОтчетыИобработкиКлиент"
Процедура: "ВыполнитьНазначаемуюКомандуПечати".
Из этой процедуры поймете, как в форму передается массив ваших объектов.