Первое с чего необходимо начать — для запускаемой команды указать вариант запуска внешней обработки «ОткрытиеФормы».
Все, это практически половина дела, теперь добавляем саму форму, в форме должно быть обязательно 3 реквизита и 3 параметра (параметры не обязательно):
ДополнительнаяОбработкаСсылка ИдентификаторКоманды ОбъектыНазначения
Данные реквизиты необходимо инициализировать в процедуре: «ПриСозданииНаСервере»
Примерно так:
ДополнительнаяОбработкаСсылка = Параметры.ДополнительнаяОбработкаСсылка; ИдентификаторКоманды = Параметры.ИдентификаторКоманды; ОбъектыНазначения.ЗагрузитьЗначения(Параметры.ОбъектыНазначения);
Выносить эти реквизиты на форму не обязательно и даже не желательно, чтобы пользователи их не попортили, они условно «Системные».
А вот на форму необходимо добавить и вынести все остальные необходимые вам реквизиты (параметры печати).
Добавляем на форму команду печать с следующим обработчиком:
ДополнительныеПараметрыПечати = Новый Структура; ДополнительныеПараметрыПечати.Вставить("Получил",Получил); ОбъектыНазначенияПараметр = Новый Структура; ОбъектыНазначенияПараметр.Вставить("ОбъектыНазначения",ОбъектыНазначения.ВыгрузитьЗначения()); ОбъектыНазначенияПараметр.Вставить("ДополнительныеПараметрыПечати",ДополнительныеПараметрыПечати); ПараметрыИсточника = Новый Структура; ПараметрыИсточника.Вставить("ИдентификаторКоманды", ИдентификаторКоманды); ПараметрыИсточника.Вставить("ОбъектыНазначения", ОбъектыНазначенияПараметр); ПараметрыИсточника.Вставить("БезопасныйРежим", Ложь); ПараметрыОткрытия = Новый Структура("ИсточникДанных,ПараметрыИсточника"); ПараметрыОткрытия.ИсточникДанных = ДополнительнаяОбработкаСсылка; ПараметрыОткрытия.ПараметрыИсточника = ПараметрыИсточника; Если УправлениеПечатьюКлиент.ПроверитьДокументыПроведены(ОбъектыНазначения.ВыгрузитьЗначения()) Тогда ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия); Иначе Отказ = Истина; КонецЕсли;
Код вызова общей формы «ПечатьДокументов» возможно зависит от версии БСП, но в моем случае он выглядел именно так. Подсмотреть его можно в общем модуле «ДополнительныеОтчетыИОбработкиКлиент» процедура «ВыполнитьСерверныйМетодОбработки».
Как видно из текста команды, вместо параметра «ОбъектыНазначения» мы подсовываем структуру с непосредственно самими объектами и с дополнительными параметрами печати и единственное, что нам остается в нашей процедуре «Печать» разобрать этот параметр обратно на составляющие:
Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ИмяМакетаВнешнейФормы") Тогда МассивОбъектов = МассивОбъектовНазначения.ОбъектыНазначения; ДополнительныеПараметрыПечати = МассивОбъектовНазначения.ДополнительныеПараметрыПечати;
Вот и вся хитрость.
Для примера во вложении разместил форму «Приходная накладная» для «УТ 11» с указанием ответственного принявшего товар.
Если это твоя 2-ая печатная форма на УФ, пока не нашел статью, это был не «Вот и вся хитрость.» а маленький пушной зверек.. гигантских размеров.
кажется, у Поручка на эту тему весьма развернутая статья.
В ту же тему :
https://infostart.ru/public/502742/