Для механизма пакетной печати внешней печатной формы реализован функционал работы с кастомными печатными формами с вариантом вызова ОткрытиеФормы.
По наблюдениям, такой вариант запуска используется для выбора пользователем перед формированием документа каких-либо дополнительных параметров, а также в случае формирования офисного документа, используя механизм replace, замещающего параметры в шаблоне на значения, полученные из базы 1с.
Основная идея: выбранные клиентские печатные формы вызываются из формы пакетной печати HR-Link последовательно, ожидая закрытия предыдущей открытой клиентской формы. Также клиентской форме в параметрах открытия передается стандартный параметр ОбъектыНазначения (Массив, содержащий элементы, для которых выполняется формирование документов). После завершения формирования документа следует сформировать определенную структуру данных и передать ее в качестве параметра закрытия формы методу ЭтаФорма.Закрыть(). Таким образом эти данные будут возвращена обработчику формы-владельца (ОписаниеОповещенияОЗакрытии).
Возвращаемые данные представляют собой Массив, элементами которого являются Структуры с набором из трех перечисленных полей:
СсылкаНаОбъект – ссылка на объект базы 1с, Справочник или Документ, к которому будет присоединен сформированный кастомной печатной формой документ;
ИмяФайла – имя файла, которое будет использовано для присоединения к объекту;
АдресВХ / ДвоичныеДанные / ПутьКФайлу – можно использовать любой из этих ключей:
АдресВХ – адрес временного хранилища, содержащего двоичные данные сформированного файла. Следует иметь в виду, что если адрес временного хранилища связан с уникальным идентификатором формы обработки, то он будет очищен при закрытии этой формы.
ДвоичныеДанные – двоичные данные сформированного файла
ПутьКФайлу – полный путь к сформированному файлу на клиенте
Все перечисленные значения в том или ином виде присутствуют в кастомной печатной форме в процессе ее выполнения на разных этапах формирования документа, поэтому собрать из них такой набор данных не должно составить особых сложностей.
Далее пакетная печать печатной формы HR-Link обработает полученные данные, отработает ранее реализованный механизм формирования печатных форм с вариантом исполнения ВызовСерверногоМетода, если они были выбраны пользователем, и присоединит все полученные данные к соответствующим объектам.
Для лучшего понимания предлагаемого решения реализован тестовый пример внешней печатной формы с обоими вариантами команд печати (ВызовСерверногоМетода, ОткрытиеФормы), реализующий формирование word-документа на сервере без установленного там Microsoft Word, а при вызове его клиентской командой открытия формы – собирающий описанный ранее набор возвращаемых данных в клиентской форме методом формы Закрыть().
Пример функционала ВПФ можно скачать здесь