Печать документов Word из 1С.

Печать документов Word из 1С.

Доброго времени суток!

Для большинства организаций стандартная печатная форма какого-либо договора в программах 1С не подходит. Поэтому фирма 1С предоставила возможность добавлять дополнительные печатные формы для документов и других объектов. В этой статье я хочу рассказать, как  создать и подключить внешнюю печатную форму договора, которая будет открываться в Microsoft Word.

Подключение дополнительных внешних печатных форм

Запускаем 1С:Предприятие. Открываем  справочник «Дополнительные внешние печатные формы» через меню «Сервис» - «Дополнительные отчеты и обработки».
Нажмем кнопку «Добавить», затем зарегистрируем новую печатную форму, нажав «Заменить файл внешней обработки». Автоматически заполнится принадлежность печатной формы документу «Реализация товаров и услуг». Выбираем «Договор» в колонке «Заменяемая печатная форма», чтобы стандартная печатная форма более не использовалась.

2016_02_13-15_05_50-upravlenie-torgovley-_-redaktsiya-10.3-fedorov-boris-mikhaylovich.png

Запускаем 1С:Предприятие, открываем справочник "Контрагенты", выбираем контрагента, для которого будет печататься наш договор и по кнопке "Файлы" переходим в справочник "Хранилище дополнительной информации", загружаем в него шаблон для договора и ,обязательно, называем его "Договор", как показано на рисунке ниже, иначе программа не сможет найти макет для печатной формы.

2016_02_09-11_25_23-upravlenie-torgovley-_-redaktsiya-10.3-fedorov-boris-mikhaylovich.png

2016_02_13-18_57_06-upravlenie-torgovley-_-redaktsiya-10.3-fedorov-boris-mikhaylovich.png

Теперь открываем любой документ "Реализация товаров и услуг" и нажимаем кнопку «Печать» - «Договор». Откроется документ Microsoft Word с договором.

2016_02_08-11_20_37-dokument1-_-word.png
Внешнюю печатную форму "Договор" и макет к ней  можно скачать по ссылкам ниже.
Макет трудового договора в формате Microsoft Word

Существует, по меньшей мере, три способа создания шаблона:

1. В документе Word создаются опорные фразы, например, "[НомерДоговора]", затем, в модуле обработки производится поиск и замена значений.

2. В документе Word создаются закладки, к которым потом можно обращаться по имени. Минус этого способа в том, что метка должна быть уникальна, т.е., если нужно вставить фамилию сотрудника в каждый абзац текста, то придется сделать несколько закладок с разными именами.

3. В документе Word добавляются служебные поля, например, «DocVariable» или «Author». Используя DocVariable можно обращаться к переменной по имени, например, «ДокументВорд.Variables.Add(ИмяПеременной, ЗначениеПеременной);», но ее не видно в шаблоне. Поле «Author» отображается в шаблоне, но обращаться к нему придется в цикле по индексу: «ДокументВорд.Fields.item(Индекс).Result.Text = Значение;».

На мой взгляд, первый способ является самым оптимальным. Шаблон документа легко редактируется, опорные фразы видны в тексте. Поэтому  шаблон создаём этим способом.

Открываем программу Microsoft Office. Для примера добавляем пару строк, как показано на рисунке ниже и сохраняем шаблон.
2016_02_05-10_36_01-dogovor_test-_-word.png
Создание внешней печатной формы "Договор"

Запускаем 1С:Предприятие в режиме «Конфигуратор» и через меню «Файл» - «Новый» создаём внешнюю обработку. Добавляем реквизит "Ссылка на объект" и  макет "Параметры_Авторегистрации" с типом "Табличный документ". Тип реквизита "Ссылка на объект" зависит от того, для каких объектов будет использоваться печатная форма, в нашем случае печатная форма будет использовать для документа "Реализация товаров и услуг", поэтому указываем тип "ДокументСсылка.РеализацияТоваровУслуг".

2016_02_13-18_52_40-konfigurator-_-upravlenie-torgovley_-redaktsiya-10.3.png


Разработка процедуры печати

2016_02_09-11_12_09-konfigurator-_-upravlenie-torgovley_-redaktsiya-10.3.png

2016_02_09-11_12_46-konfigurator-_-upravlenie-torgovley_-redaktsiya-10.3.png

2016_02_09-11_13_44-konfigurator-_-upravlenie-torgovley_-redaktsiya-10.3.png
Параметры авторегистрации

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

2016_02_05-12_44_42-tsrv2-obmen-kobzar-klienty-orus-pf_testdogovor-dogovor_test.epf-parametry_avtoregistratsii-_-konfigu.png













Фото:
Файлы:
Договор.epf (9.29 КБ)
Договор.docx (11.67 КБ)