Образец печатной формы:
внесены корректировки с учетом изменений БСП 3.1.9
Пример печатной формы “Справка о заработной плате и других доходах” которая запрашивает период у пользователя перед выводом на печать.
Описание:
Демонстрационный пример добавляется, как внешняя печатная форма и вызывается из меню “Печать” карточки “Сотрудника”.
- В сведениях о внешней обработки устанавливаем вызов клиентского метода
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
&НаКлиенте Процедура ПечатьЗавершение(Результат, ДополнительныеПараметры) Экспорт Если Результат <> Неопределено Тогда Если Результат.Печать Тогда ВыполняемаяКоманда = Параметры; // {{ изменения версии БСП 3.1.9 //ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника"); ПараметрыОткрытия = Новый Структура("ИсточникДанных, ПараметрыИсточника, КоллекцияПечатныхФорм"); // }} ПараметрыОткрытия.ИсточникДанных = Параметры.ДополнительнаяОбработкаСсылка; ПараметрыОткрытия.ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, ОбъектыНазначения"); ПараметрыОткрытия.ПараметрыИсточника.ИдентификаторКоманды = ВыполняемаяКоманда.ИдентификаторКоманды; ДополнительныеПараметры = Новый Структура(); ДополнительныеПараметры.Вставить("СтруктураПараметров", Результат); ОбъектыНазначения = Новый Массив; ОбъектыНазначения.Добавить(Результат); //Ссылки на вызвавшие форму объекты Для каждого ОбъектНазначения Из ВыполняемаяКоманда.ОбъектыНазначения Цикл ОбъектыНазначения.Добавить(ОбъектНазначения); КонецЦикла; ПараметрыОткрытия.ПараметрыИсточника.ОбъектыНазначения = ОбъектыНазначения; // {{ изменения версии БСП 3.1.9 СформироватьПечатныеФормы(ПараметрыОткрытия); // }} //Вывод сформированного табличного документа в штатную форму. ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", ПараметрыОткрытия); КонецЕсли; КонецЕсли; КонецПроцедуры // {{ изменения версии БСП 3.1.9 &НаСервереБезКонтекста Процедура СформироватьПечатныеФормы(ПараметрыОткрытия) Результат = Неопределено; ОбъектыПечати = Новый СписокЗначений; ПараметрыВывода = Неопределено; УправлениеПечатью.ПечатьПоВнешнемуИсточнику( ПараметрыОткрытия.ИсточникДанных, ПараметрыОткрытия.ПараметрыИсточника, Результат, ОбъектыПечати, ПараметрыВывода); ПараметрыОткрытия.КоллекцияПечатныхФорм = Общегоназначения.ТаблицаЗначенийВМассив(Результат); КонецПроцедуры // }} |
внесены корректировки с учетом изменений БСП 3.1.9
В процедуре ПечатьЗавершение() открывается общая форма “ПечатьДокументов”.
5. В “Форме ввода” получаются нужные данные от пользователя и передаются в параметр метода Закрыть(<ПараметрЗакрытия>).
1 2 3 4 5 6 7 |
&НаКлиенте Процедура Печать(Команда) Структура = Новый Структура; Структура.Вставить("ПериодОтчета", ПериодОтчета); Структура.Вставить("Печать" , Истина); ЭтаФорма.Закрыть(Структура); КонецПроцедуры |
Образец печатной формы для скачивания в начале описания.
Дяденька, дай тебе Бог здоровья!
Сутки мучаюсь c внешней формой, которая интерактивно запрашивает данные перед печатью, перечитал все неработающие варианты из статей по всему рунету, и только твоя статья работает прямо на моей типовой конфигурации методом копипаста.
Теперь буду разбираться с кодом, потому что этот точно работает.
приложеныый файл работает, но то что тут написано нихрена не понятно, придется лезть в код
В описании обозначены ключевые моменты, основное это файл
За ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода() – конкретное спасибо!
в новой БСП (по крайней мере ЗУП) нет там параметра KоллекцииПечатныхФорм при открытии ОткрытьФорму(“ОбщаяФорма.ПечатьДокументов”, ПараметрыОткрытия) поэтому больше не работает
Да, согласен с Вами. Столкнулся с такой же проблемой.
Спасибо за подсказку, в обработку внесены корректировки с учетом изменений БСП 3.1.9
https://infostart.ru/1c/articles/804832/
Спасибо за ссылку, в обработку внесены корректировки с учетом изменений БСП 3.1.9
Спасибо, актуальный материал!
Спасибо за статью. Долго мучился исправляя внешнюю печатную форму после обновления БСП. Всё заработало!
Спасибо большое! Все по делу. То что нужно!
Спасибо.
Здравствуйте.
Ваша обработка работает.
Сделал свой отчёт. Тест работает, но при печати из формы сотрудников
даёт ошибку. Похоже массив объектов в форме настройки не заполняется автоматом из текущего сотрудника формы.
Спасибо, вам, светлая голова. На БСП 3.1.9.199 работает!