ПОСТАНОВКА ЗАДАЧИ
Итак, перейдем сразу к делу. ТЗ: нам нужна печатная форма для документа «Реализация товаров услуг», которая выводит на печать список номенклатуры, цены, менеджера и дату документа (задание упрощено для наглядности примера).
РЕАЛИЗАЦИЯ ЗАДАЧИ
С заданием покончено, переходим к реализации. Для начала нам нужно определить контейнер, где будут храниться макеты печатных форм, ну и исполняемый код. Итак, создадим пустую обработку (мы ее будем подключать как внешнюю обработку к конфигурации), заполним код модуля объекта для подключения к конфигурации, определим экспортную функцию Печать, нарисуем макет нашей печатной формы. Весь код немножко громоздок, поэтому не буду приводить его здесь, кому интересно может скачать файл, прикрепленный к статье и посмотреть.
Заполним алгоритм построения и вывода печатной формы. Приводить сам алгоритм не стану (он очень банален). После окончания написания процедуры Печать необходимо подключить нашу обработку как внешнюю обработку к конфигурации. Во время подключения при выборе пользователя выберите себя, а раздел командного интерфейса – Администрирование (хотя принципиальной разницы нету).
Хорошо, с контейнером все готово. Теперь перейдем к конфигурированию. Создадим обработку в конфигурации и дадим ей имя ПечатьВнешнихФорм.
После создания обработки определим в ней команду ПечатьРеализацияТоваровУслуг, и внесем в команду следующий код:
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Если УправлениеПечатьюКлиент.ПроверитьДокументыПроведены(ПараметрКоманды, ПараметрыВыполненияКоманды.Источник) Тогда
ПараметрыИсточника = Новый Структура("ИдентификаторКоманды, БезопасныйРежим, ОбъектыНазначения", "РеализацияТоваровУслуг", Ложь, Новый Структура("МассивДокументов", ПараметрКоманды));
ОткрытьФорму("ОбщаяФорма.ПечатьДокументов", Новый Структура("ИсточникДанных, ПараметрыИсточника", ПолучитьСсылкуНаВншнююОбработку(), ПараметрыИсточника));
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьСсылкуНаВншнююОбработку()
// 6ca58296-6d4b-11e2-8c2f-14dae9dfbe72 - идентификатор внешней обработки «Печать внешних форм»
Возврат Справочники.ДополнительныеОтчетыИОбработки.ПолучитьСсылку(Новый УникальныйИдентификатор("6ca58296-6d4b-11e2-8c2f-14dae9dfbe72"));
КонецФункции
Теперь, после написания кода, необходимо определить некоторые параметры нашей команды. Перейдем в палитру свойств и установим следующие значения:
Группа | Командная панель формы.Печать |
Тип параметра команды | ДокументСсылка.РеализацияТоваровУслуг |
Режим использования команды | Множественный |
Создание команды завершено. Далее нужно определить роль, которая открывает доступ к команде (в статье писать не стану, кому интересно сделает самостоятельно).
РЕЗУЛЬТАТЫ
Обновим конфигурацию и посмотрим, что у нас получилось.
В меню Печать документа «Реализация товаров и услуг» появился пункт «Печать списка номенклатуры», с помощью которого мы и печатаем.
Метод очень удобен, поскольку:
- Не вызывает проблем с обновление конфигурации.
- Меню печати очень удобное для пользователей.
- Вносить изменения в печатную форму можно «на лету», без остановки работы базы.
Конфигурация: Управление торговлей для Украины, редакция 3.0 (3.0.1.7)