Рейтинг:  0 / 5

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна
 

Добрый день.

Сегодня будет некое дополнение к статье Создание внешней печатной формы в управляемом приложении на примере конфигурации Зарплата и управление персоналом 3.0. В той статье в модуле обработки формировался табличный документ, который потом отправлялся в стандартную подсистему печати.

Проблема в том, что перед печатью бывает нужно спросить пользователя дополнительную информацию, которой нет в БД. Конечно, можно в БД напихать дополнительных реквизитов, задействовать доп.свойства или еще чего... но иногда проще бывает - просто спросить пользователя перед выводом макета.

 

Итак начнем:

1. Создаем внешнюю обработку и задаем ей имя и синоним.

2. В модуле обработки пишем функции "ПолучитьТаблицуКоманд" и "ДобавитьКоманду" как в предыдущей статье.

3. Пишем функцию "СведенияОВнешнейОбработке". Она почти таже самая, за исключением строки:
 ДобавитьКоманду(ТаблицаКоманд, "Привет мир", "Макет", "ОткрытиеФормы", Ложь, "ПечатьMXL");
где в качестве четвертого параметра передаем строку "ОткрытиеФормы".

4. Добавляем основную форму в обработку.

Собственно все.

Теперь при добавлении нашей обработки в базу, она добавит команду печати, нажав на которую, у нас откроется наша форма.

Далее дело за Вами, и все зависит от конкретной задачи.

Вы можете отобразить макет на своей форме, можете отослать его в стандратные подсистемы, на принтер, или вообще не формировать макета!

Еще напомню, что в форме у Вас доступен массив объектов назначения:

Параметры.ОбъектыНазначения

Так же в форме мы имеем владельца формы, что тоже удобно, если данные надо брать из не записанного объекта.

Про то как к ним обращаться я писал в статье Создание внешней обработки заполнения табличных частей в управляемом приложении на примере конфигурации 1С Бухгалтерия предприятия 3.0

Спасибо за внимание, пока!

 

Авторизуйтесь пожалуйста

Комментарии   

0 # Евгений 11.02.2015 05:16
Полезно, спасибо. Единственная проблема - замороченная отладка.