Здравствуйте!

в УТ 11 делаю ВПФ для Возвратов поставщику. Через команду Файл - Открыть эта обработка работает.

Не могу настроить, чтобы при добавлении ее в 1С, она работала.
Пишет Печатная форма недоступна.

Еще делал основываясь на статье http://infostart.me/public/656149/
в этом случае просто открывает пустую форму.

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

    ИмяМакета = "ПФ_MXL_ВозвратПоставщику";
    ПараметрыВывода.Вставить("ИмяМакета", ИмяМакета);

    ссылкаДок = МассивОбъектов[0];
    //управляем именем сохранения файла
    имяФСохр = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(ссылкаДок.Номер) + " " + СокрЛП(ссылкаДок.Метаданные().Синоним) + " " + СокрЛП(ссылкаДок.Контрагент);

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

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

Подскажите, пожалуйста, с решением проблемы.

Заранее спасибо!
---
в модуле формы поменяй процедуру на эту :

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

а в модуле объекта переименуй все "СсылкаНаОбъект" на "СсылкаНаОбъект2" чтоб не путать параметры, и добавь эту строку

```1c
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВозвратТоваровПоставщику_Накладная";

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

    Запрос = Новый Запрос(
```

ну и в конце закрой цикл

```1c
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);

    КонецЦикла;
    КонецЦикла;

    Возврат ТабличныйДокумент;
```

зы: подчеркнул только те строки что надо добавить
---
Делал так:
1.Добавить форму, в модуле формы добавить процедуру Печать:

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

    ВыполняемаяКоманда = Параметры;

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

    ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ВыполняемаяКоманда.ОбъектыНазначения;
    ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);

    КонецПроцедуры // Печать()
```

2.В модуле обработки в функции СведенияОВнешнейОбработке() в параметрах вызова функции ДобавитьКоманду указать "ВызовКлиентскогоМетода":

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

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;

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

    // Администратор 07.08.2015
    //ДобавитьКоманду(ТаблицаКоманд, "ЗаказКлиента_СчетНаОплату", "ЗаказКлиента_СчетНаОплату", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
    // Печать непроведенного документа
    ДобавитьКоманду(ТаблицаКоманд, "ЗаказКлиента_СчетНаОплату", "ЗаказКлиента_СчетНаОплату", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL");
    // Администратор

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

    Возврат ПараметрыРегистрации;

    КонецФункции
```
---
пишет
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(398)}: Метод объекта не обнаружен (Печать)
  ФормаОбработки.Печать(ВыполняемаяКоманда.Идентификатор, ОбъектыНазначения);
---
Забыл параметры добавить на форме.

Теперь пишет Печатная форма не доступна
---
в модуле формы поменяй процедуру на эту :

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

а в модуле объекта переименуй все "СсылкаНаОбъект" на "СсылкаНаОбъект2" чтоб не путать параметры, и добавь эту строку

```1c
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ВозвратТоваровПоставщику_Накладная";

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

    Запрос = Новый Запрос(
```

ну и в конце закрой цикл

```1c
    УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ДанныеПечати.Ссылка);

    КонецЦикла;
    КонецЦикла;

    Возврат ТабличныйДокумент;
```

зы: подчеркнул только те строки что надо добавить
---
Получилось !!!
Спасибо большое!!!