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

Создал внешнюю печатную форму "Акт на списание ТМЦ" для документа "ТребованиеНакладная" бухгалтерии (редакция 3.0).

После регистрации в базе из модуля моей печатной формы вызывается внешняя процедура Печать(), которая должна вернуть табличный документ.

Но требуется перед выводом на печать дать возможность пользователю заполнить реквизиты, которых нет в самом документе (председатель и члены комиссии), то есть требуется вывести внешнюю форму с параметрами, а уже потом формировать табличный документ. А так как процедура Печать() серверная, сделать этого нельзя.

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

Буду признателен за любую помощь.
---
alexey.karmanov,
если штатно - попробуй в процедуре модуля объекта печатной формы

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

написать

```1c
    Команда.Использование = "ОткрытиеФормы";
```

***
можно даже сделать две команды -
- одну для печати без открытия формы
- другую с для печати с предварительным показом формы обработки/отчета
---
alexey.karmanov,
если штатно - попробуй в процедуре модуля объекта печатной формы

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

написать

```1c
    Команда.Использование = "ОткрытиеФормы";
```

***
можно даже сделать две команды -
- одну для печати без открытия формы
- другую с для печати с предварительным показом формы обработки/отчета
---
Up
---
вот например функция, здесь перед печатью чека сначала форма открывается:

```1c
    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.0");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "1.0";
    ПараметрыРегистрации.БезопасныйРежим = Истина;
    ПараметрыРегистрации.Назначение.Добавить("Документ.РасходнаяНакладная");
    НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
    НоваяКоманда.Представление = НСтр("ru = 'Печать товарного чека'");
    НоваяКоманда.Идентификатор = "Печать";
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
    НоваяКоманда.ПоказыватьОповещение = Истина;
    НоваяКоманда.Модификатор = "ПечатьMXL";
    Возврат ПараметрыРегистрации;
    КонецФункции
```

Главное для открытия формы указать:

```1c
    НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
```
---
leriko,

```1c
    ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
```

как раз и возвращает
```1c
    "ОткрытиеФормы"
```

....
не слишком ли длинный синоним????
:))))
---
А как из достучаться до параметра - массив объектов (ОбъектыНазначения) чтобы передать на печать?
---
Большое спасибо Rothschild и leriko! Так как Rothschild был первым - скромная награда в 10$m отдается ему.
---
alexey.karmanov,
спасибо мил человек!
;)
---
А всё таки не подскажите а как в форму передали массив объектов или ОбъектыНазначения по которым требуется произвести вечать? Вроде пишут достаточно создать в форме реквизит. Создал, но он пустой :-(
---
sansy, выяснил как?
---
alexnov,
Если кому понадобится:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Для Каждого ТС Из Параметры.ОбъектыНазначения Цикл
    // ТС - это и есть элемент массива объектов назначения
    КонецЦикла;

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