Печать из источника данных, УТ 3 для Украины





Думаю для многих уже не секрет как сделать внешнюю печатную форму для конфигурации УТ 11, похожие правила создания печатных форм действуют и для пользователей конфигурации Управление торговлей 3 для Украины. Для программиста механизм ВПФ очень удобен, поскольку позволяет исполнять «хотелки» пользователей без изменения основной конфигурации. Но, исходя из своей практики, могу сказать, что иногда для пользователей бывает затруднительным делать лишние движения для печати документа. В этой статье речь пойдет о решении данной проблемы с помощью печати из источников данных.

ПОСТАНОВКА ЗАДАЧИ

Итак, перейдем сразу к делу. ТЗ: нам нужна печатная форма для документа «Реализация товаров услуг», которая выводит на печать список номенклатуры, цены, менеджера и дату документа (задание упрощено для наглядности примера).

РЕАЛИЗАЦИЯ ЗАДАЧИ

С заданием покончено, переходим к реализации. Для начала нам нужно определить контейнер, где будут храниться макеты печатных форм, ну и исполняемый код. Итак, создадим пустую обработку (мы ее будем подключать как внешнюю обработку к конфигурации), заполним код модуля объекта для подключения к конфигурации, определим экспортную функцию Печать, нарисуем макет нашей печатной формы. Весь код немножко громоздок, поэтому не буду приводить его здесь, кому интересно может скачать файл, прикрепленный к статье и посмотреть.

Внешняя обработка «Печать внешних форм»

Заполним алгоритм построения и вывода печатной формы. Приводить сам алгоритм не стану (он очень банален). После окончания написания процедуры Печать необходимо подключить нашу обработку как внешнюю обработку к конфигурации. Во время подключения при выборе пользователя выберите себя, а раздел командного интерфейса – Администрирование (хотя принципиальной разницы нету).

Подключение внешней обработки

Хорошо, с контейнером все готово. Теперь перейдем к конфигурированию. Создадим обработку в конфигурации и дадим ей имя ПечатьВнешнихФорм.

Создание обработки «Печать внешних форм»

После создания обработки определим в ней команду ПечатьРеализацияТоваровУслуг, и внесем в команду следующий код:

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

&НаСервере
Функция ПолучитьСсылкуНаВншнююОбработку()
// 6ca58296-6d4b-11e2-8c2f-14dae9dfbe72 - идентификатор внешней обработки «Печать внешних форм»
Возврат Справочники.ДополнительныеОтчетыИОбработки.ПолучитьСсылку(Новый УникальныйИдентификатор("6ca58296-6d4b-11e2-8c2f-14dae9dfbe72"));
КонецФункции

Теперь, после написания кода, необходимо определить некоторые параметры нашей команды. Перейдем в палитру свойств и установим следующие значения:

Группа Командная панель формы.Печать
Тип параметра команды ДокументСсылка.РеализацияТоваровУслуг
Режим использования команды Множественный

Палитра свойств команды

Создание команды завершено. Далее нужно определить роль, которая открывает доступ к команде (в статье писать не стану, кому интересно сделает самостоятельно).


РЕЗУЛЬТАТЫ

Обновим конфигурацию и посмотрим, что у нас получилось.

Документ «Реализация товаров и услуг»

В меню Печать документа «Реализация товаров и услуг» появился пункт «Печать списка номенклатуры», с помощью которого мы и печатаем.

Метод очень удобен, поскольку:

  1. Не вызывает проблем с обновление конфигурации.
  2. Меню печати очень удобное для пользователей.
  3. Вносить изменения в печатную форму можно «на лету», без остановки работы базы.
Платформа: 8.2.17.153
Конфигурация: Управление торговлей для Украины, редакция 3.0 (3.0.1.7)

Хочу еще добавить что ко подойдет и для конфигурации УТ 11.

Статья по материалам сайта avtomat.biz


2 Comments

  1. AnryMc

    Что то я не понял…

    1) А почему не зарегистрировать сразу как «внешнюю печатную форму» и она тоже появиться в меню печать (указанного) документа, и при этом вообще без включения «возможности редактирования конфигурации»?

    2) А откуда у вашей обработки взялся идентификатор — 6ca58296-6d4b-11e2-8c2f-14dae9dfbe72? Где это видно в статье?

    Reply
  2. akomar

    1) Если Вы подключите печатную форму как внешнюю, она появится в меню печать, но, для того чтобы ее запустить нужно будет выполнить следующие действия: Печать — Внешние печатные формы — Имя нашей печатной формы. В организации где я работаю, менеджеры не хотят так печатать ибо в день человек печатает 100 — 150 накладных. Поэтому поставили хотелку сделать чтобы печатало быстро и прямо из меню Печать (без дополнительных действий). В конфигурацию мы только добавляем обработку, что не должно сказаться на обновлении. Зато у нас появиться дополнительная гибкость — мы сможем менять содержимое печатной формы «на лету», что критично для нас, поскольку руководство запрещает останавливать базу с 8 утра до 10 вечера.

    2. Уникальный идентификатор получен из ссылки на внешнюю обработку, при написании статьи в коде указан комментарий откуда идентификатор, а как его получить все знают сами.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *