Шаблон печатной формы для вывода информации в MS Word


В публикации представлен шаблон обработки для формирования документов MS Word по данным информационной базы с комментариями и пояснениями

Конфигурация ЗУП была выбрана только из-за того, что была под рукою. Поскольку это шаблон - изменив запрос и слегка переделав обработку заполнения документа, можно получить печатную форму для любой конфигурации на платформе 1С: Предприятие 8.

 

Концепция работы с документом MS Word из 1С: Предприятие 8

 

1С при работе с офисными приложениями MS Office использует технологию OLE Automation. В принципе есть и другие варианты, но для создания полноценного офисного документа данная технология является наиболее удобной.

Технология определяет те COM интерфейсы, через которые интерпретатор языка будет общаться с объектом. Фактически можно обращаться к методам MS Word как будто вы программируете макрос на VBA внутри самого MS Word. 

 

В этом Шаблоне обработки формирования печатных форм затрагиваются наиболее часто используемые возможности MS Word - работа с форматированным текстом и таблицами.

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

К таким ситуациям относятся в первую очередь формирование приказов специфического оформления, трудовых договором, договоров материальной ответственности. В общем, такая обработка призвана автоматизировать "вбивание" в шаблонный документ данных конкретного сотрудника или документа.

Внесение в текст данных ИБ (информационной базы) происходит следующим образом:

1) Подготавливается шаблон (документ MS Word) с соответствующим форматированием. На месте где должны будут стоять данные из ИБ ставим специальные метки. Конкретного соглашения не существует, главное чтобы метки небыли похожи на обычный текст, т.е. чтобы программно нельзя было перепутать текст с меткой. Я использовал следующее соглашение: метка начинается с ш_ и пишется без пробелов.

2) У меток должно быть форматирование конечных данных.

3) Сохраняем этот документ в обработку. Добавляем макет с типом Active document и при создании макета указываем файл .doc подготовленного в п.1 шаблона.

4) При заполнении печатной формы создаем из макета OLE Automation документ и заполняем его. Заполнение текстового содержания представляет собой замену меток нужным тексом, как если бы Вы воспользовались функцией "Заменить" при ручном редактировании документа. С таблицами несколько сложнее, т.к. заранее не известно число строк, и строки приходится добавлять динамически. 

5) Показываем или сохраняем получившийся документ MS Word.

 Документ готов!!!

 

Некоторые замечания:

 Для того чтобы это было действительно внешней печатной формой в модуль объекта нужно добавит процедуру

    -   Функция Печать()    Экспорт

 Она будет вызываться при вызове печатной формы.

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

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

 

Краткое примечание добавил в обработку в качестве текстового макета.

 В качестве небольшого развлечения добавил возможность выбора из нескольких шаблонов. Возможно кому-нибудь пригодится и такой вариант.

Файлы обработки:

-