Образец печатной формы:
Пример печатной формы “Справка о заработной плате и других доходах” которая запрашивает период у пользователя перед выводом на печать.
Описание:
Демонстрационный пример добавляется, как внешняя печатная форма и вызывается из меню “Печать” карточки “Сотрудника”.

- В сведениях о внешней обработки устанавливаем вызов клиентского метода
1 |
Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода(); |
2. У формы создаем 4-и ключевых параметра:

3. Создаем еще одну форму ввода

4. В модуле “Формы” &НаКлиенте прописываем процедуру Печать() которая откроет “Форму ввода” с вызовом процедуры ПечатьЗавершение() при закрытии.
1 2 3 4 5 |
&НаКлиенте Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт ПараметрыФормы = Новый Структура; ОткрытьФорму("ВнешняяОбработка.СправкаОЗаработнойПлатеЗаПериод.Форма.ФормаВвода",ПараметрыФормы,,,,,Новый ОписаниеОповещения("ПечатьЗавершение", ЭтаФорма, ОбъектыНазначенияМассив), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); КонецПроцедуры |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
&НаКлиенте Процедура ПечатьЗавершение(Результат, ДополнительныеПараметры) Экспорт Если Результат <> Неопределено Тогда Если Результат.Печать Тогда ВыполняемаяКоманда = Параметры; ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника"); ПараметрыОткрытия.ИсточникДанных = Параметры.ДополнительнаяОбработкаСсылка; ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения"); ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды; ДополнительныеПараметры = Новый Структура(); ДополнительныеПараметры.Вставить("СтруктураПараметров", Результат); ОбъектыНазначения = Новый Массив; ОбъектыНазначения.Добавить(Результат); //Ссылки на вызвавшие форму объекты Для каждого ОбъектНазначения Из ВыполняемаяКоманда.ОбъектыНазначения Цикл ОбъектыНазначения.Добавить(ОбъектНазначения); КонецЦикла; ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначения; //Вывод сформированного табличного документа в штатную форму. ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия); КонецЕсли; КонецЕсли; КонецПроцедуры |
В процедуре ПечатьЗавершение() открывается общая форма “ПечатьДокументов”.
5. В “Форме ввода” получаются нужные данные от пользователя и передаются в параметр метода Закрыть(<ПараметрЗакрытия>).
1 2 3 4 5 6 7 |
&НаКлиенте Процедура Печать(Команда) Структура = Новый Структура; Структура.Вставить("ПериодОтчета", ПериодОтчета); Структура.Вставить("Печать" , Истина); ЭтаФорма.Закрыть(Структура); КонецПроцедуры |
Образец печатной формы для скачивания в начале описания.
Дяденька, дай тебе Бог здоровья!
Сутки мучаюсь c внешней формой, которая интерактивно запрашивает данные перед печатью, перечитал все неработающие варианты из статей по всему рунету, и только твоя статья работает прямо на моей типовой конфигурации методом копипаста.
Теперь буду разбираться с кодом, потому что этот точно работает.
приложеныый файл работает, но то что тут написано нихрена не понятно, придется лезть в код
В описании обозначены ключевые моменты, основное это файл
За ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода() – конкретное спасибо!