Цель: поделиться способом передачи параметров в процедуру печати ВПФ без создания дополнительных форм, а путем выбора нужной команды из меню печати документа. Т.е. в одной ВПФ не одна а несколько команд вызова процедуры печати выводимых в интерфейсе, определяющих внешний вид макета выводимой ПФ.
Встала недавно мелкая задачка вывести в ПФ приходной накладной в шапке магазин и склад куда приход был, там только фирма по умолчанию.
Конфигурация Розница 2.2.5.27 (Платформа 8.3.10)
Все вроде просто, чтоб базу не корежить да тем более там РИБ, решил сделать ВПФ. Примеров куча в сети — это не сложно, НО. Все примеры что удалось нарыть с выводом одной единственной ПФ в обработке ВПФ, а по-умолчанию в конфигурации макет у ПФ документа «Постпления товарв» один, а видов вывода три в зависимости от входных параметров процедуры печати (с закупочными ценами, с розничнами и с теми и другими сразу).
И вот тут вопрос у ленивого (меня) человека возник, как бы сделать так чтоб в создаваемой обработке ВПФ и макеты не плодить и процедуру печати накладной родную с небольшими вкраплениями кода (для магазина и склада) оставить и параметры ей при печати от пользователя передавать, так что б она как надо один из трех вариантов выводила. В стандартной конфе сделано именно так. А именно в модуле менеджера документа Поступление товаров
Функция ПечатьНакладная(МассивОбъектов, ОбъектыПечати, ВыводитьЦены = Ложь, ТолькоПоРозничнымЦенам = Ложь)
Последние два параметра и определяют как будет строится шаблон макета печати. Получается надо в процедуру печати ВПФ как-то параметры передать.
Порывшись нашел вариант (//infostart.ru/public/191796/) передачи параметров путем предварительного вывода на экран дополнительной формы через которую можно уже творить что захочется, но ИМХО для моей простенькой задачи где кроме двух булевых переменных ничего передавать не нужно, этот вариант кажется не удобным. Да и не совсем это красиво нажимать кнопку печать, выбирать команду печатной формы, а потом в открывшейся форме снова галочки нажимать и ещё раз нажимать кнопку печати (да-да я очень ленивый человек).
И поэкспериментировав пришел к более элегантному ИМХО решению. Добавить в функцию «СведенияОВнешнейОбработке()» модуля объекта ВПФ не одну а три разных команды (в примерах что попадются везде только по одной), а в стандартной процедуре «Печать(…)» модуля объекта ВПФ их отлавливать и вызывать чуток модифицированную (под задачу вывода магазина и склада в шапке или кому как нужно) функцию печати накладной с нужными параметрами, где она уже и выводит как надо одну из трех вариантов требуемую ПФ на основании своего макета из обработки ВПФ и переданных ей параметров.
В обработку ВПФ кроме стандартных процедур и функций портированы (практически скопированы) из документа «ПоступлениеТоваров» конфигурации «1С:Розница» макет ПФ накладной и функция печати накладной из модуля менеджера с минимальными изменениями под задачу.
В итоге имеем в интерфейсе программы при нажатии на печать из конкретного документа поступления товаров или их списка три разных строчки подменю (они со звездочками на картинке) вместо одной, каждая из которых отвечает за нужный вариант вывода ПФ (с закупочными ценами, розничными или обоими сразу) без вывода каких либо доп. форм в которых надо что либо отмечать/нажимать.