Внешняя печатная форма word

Понадобилась однажды срочно внешняя печатная форма на основе word-шаблона для типовой БП 3.0. Я себе примерно представлял как можно сделать такую внешнюю обработку с обычным макетом и встроить её в справочник ‘Дополнительные отчеты и обработки’, но как проделать то же самое с word я не представлял. Но все оказалось довольно-таки просто, правда и пришлось убить на это полдня.

Итак, для начала создаем наш печатный макет word:

Макет в формате word.
Макет в формате word.

Параметры в этом файле я оформлял как <Параметр>, но вы можете оформлять их по любому другому шаблону, просто в коде будете заменять текст аналогично своему формату.

Далее создаем новый макет ‘МакетWORD’ с типом ‘Двоичные данные’:

Макет с типом "Двоичные данные".
Макет с типом “Двоичные данные”.

После чего щелкаем по нему два раза и загружаем туда наш файл-шаблон ‘word’:

Наш печатный макет в формате 'word'.
Наш печатный макет в формате ‘word’.

Переходим теперь к реквизитам и форме нашей внешней печатной обработки. Добавляем реквизит ‘СсылкаНаОбъект‘ с типом объекта, для которого мы делаем нашу печатную форму:

Реквизит обработки 'СсылкаНаОбъект'.
Реквизит обработки ‘СсылкаНаОбъект’.

Добавляем реквизит формы ‘ОбъектыНазначения’ – для печати из дополнительных отчетов и обработок. На форму выводим наш реквизит ‘СсылкаНаОбъект’ и созданную нами команду ‘ПечатьСФормы’:

Реквизиты формы.
Реквизиты формы.

Итак, теперь приступаем к 1 этапу – делаем печать из формы обработки:

Результат выполнения данного кода будет следующий:

Внешняя печатная форма WORD.
Внешняя печатная форма WORD.

Супер, но есть проблема, как сделать так что бы это все печаталось через внешние отчеты и обработки? Это то с чем мне пришлось провозиться полдня, и решение на мой взгляд не самое оптимальное, но по крайней мере рабочее!

Для начала в модуле обработки добавляем функцию ‘СведенияОВнешнейОбработке‘:

Затем в модуле формы обработки создаем 2 процедуры и прописываем алгоритм печати из дополнительных отчетов и обработок:

Алгоритм придумал сам, проанализировав типовой механизм работы с внешними печатными формами. Он далеко не идеален, я думаю можно было сделать и более грамотно. Но меня устраивает и так.

Теперь заходим в справочник ‘Дополнительные отчеты и обработки’:

Справочник 'Дополнительные отчеты и обработки'.
Справочник ‘Дополнительные отчеты и обработки’.

И подключаем нашу обработку:

Внешняя печатная обработка 'craft1c_ВнешняяПечатнаяФормаWord'.
Внешняя печатная обработка ‘craft1c_ВнешняяПечатнаяФормаWord’.

Все! Готово! Заходим в сотрудника и тестируем:

Печатная форма из справочника 'Сотрудники'.
Печатная форма из справочника ‘Сотрудники’.

Открывается наш заполненные макет word-файла. Единственный минус что при первой печати программа может запросить разрешение на выполнение не безопасных действий. И придется второй раз выводить на печать. Но это будет только 1 раз в рамках одного сеанса.

Без изменения типовой конфигурации мы сделали внешнюю печатную форму word. Этот механизм работает на БП 3.0 версии ‘3.0.67.63’. Думаю будет работать и на других типовых конфигурациях.

Ну и как всегда готовый бесплатный файл для Вас! Удачи!

Скачать файлы ‘craft1c_ВнешняяПечатнаяФормаWord.epf’

Оставить комментарий

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