Добавить в корзинуПозвонить
Найти в Дзене
Блог 1С программиста

Внешняя печатная форма с диалогом перед печатью (УФ)

Пример печатной формы “Справка о заработной плате и других доходах” которая запрашивает период у пользователя перед выводом на печать для конфигурации ЗУП 3.1. (скачать можно тут) Демонстрационный пример добавляется, как внешняя печатная форма и вызывается из меню “Печать” карточки “Сотрудника”. Описание кода Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода(); 2. У формы создаем 4-и ключевых параметра: 3. Создаем еще одну форму ввода 4. В модуле “Формы” &НаКлиенте прописываем процедуру Печать() которая откроет “Форму ввода” с вызовом процедуры ПечатьЗавершение() при закрытии. &НаКлиенте Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт ПараметрыФормы = Новый Структура; ОткрытьФорму("ВнешняяОбработка.СправкаОЗаработнойПлатеЗаПериод.Форма.ФормаВвода",ПараметрыФормы,,,,,Новый ОписаниеОповещения("ПечатьЗавершение", ЭтаФорма, ОбъектыНазначенияМассив), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс); КонецПроцедуры &Н

Пример печатной формы “Справка о заработной плате и других доходах” которая запрашивает период у пользователя перед выводом на печать для конфигурации ЗУП 3.1. (скачать можно тут)

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

Описание кода

  1. В сведениях о внешней обработки устанавливаем вызов клиентского метода

Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода();

2. У формы создаем 4-и ключевых параметра:

-2

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

-3

4. В модуле “Формы” &НаКлиенте прописываем процедуру Печать() которая откроет “Форму ввода” с вызовом процедуры ПечатьЗавершение() при закрытии.

&НаКлиенте

Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт

ПараметрыФормы = Новый Структура;

ОткрытьФорму("ВнешняяОбработка.СправкаОЗаработнойПлатеЗаПериод.Форма.ФормаВвода",ПараметрыФормы,,,,,Новый ОписаниеОповещения("ПечатьЗавершение", ЭтаФорма, ОбъектыНазначенияМассив), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);

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

&НаКлиенте

Процедура ПечатьЗавершение(Результат, ДополнительныеПараметры) Экспорт

Если Результат <> Неопределено Тогда

Если Результат.Печать Тогда

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

ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника");

ПараметрыОткрытия.ИсточникДанных = Параметры.ДополнительнаяОбработкаСсылка;

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

ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды;

ДополнительныеПараметры = Новый Структура();

ДополнительныеПараметры.Вставить("СтруктураПараметров", Результат);

ОбъектыНазначения = Новый Массив;

ОбъектыНазначения.Добавить(Результат);

//Ссылки на вызвавшие форму объекты

Для каждого ОбъектНазначения Из ВыполняемаяКоманда.ОбъектыНазначения Цикл

ОбъектыНазначения.Добавить(ОбъектНазначения);

КонецЦикла;

ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначения;

//Вывод сформированного табличного документа в штатную форму.

ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия);

КонецЕсли;

КонецЕсли;

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

В процедуре ПечатьЗавершение() открывается общая форма “ПечатьДокументов”.

5. В “Форме ввода” получаются нужные данные от пользователя и передаются в параметр метода Закрыть(<ПараметрЗакрытия>).

&НаКлиенте

Процедура Печать(Команда)

Структура = Новый Структура;

Структура.Вставить("ПериодОтчета", ПериодОтчета);

Структура.Вставить("Печать" , Истина);

ЭтаФорма.Закрыть(Структура);

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

Образец печатной формы для скачивания в начале описания.