Два способа выгрузить данные из программы 1С 8.3 в Word

Источник: http://programmist1s.ru/pechatnaya-forma-v-formate-word-iz-1s-8-3-i-8-2/

Выгрузка данных из 1C в шаблон Word (Active document)

Чтобы сформировать документ в формате Word, нужно сначала подготовить шаблон. А точнее, создадим макет с типом «Active document» для примера во внешней обработке:

Затем выбираем объект, например, Microsoft Office Word 97-2003:

Откроется чистый документ Word (причем в конфигураторе). А в документе Word будем расставлять закладки. С закладками работать приятней и быстрей. Выбираем режим закладок и расставляем:

Прописываем такую процедуру:

//получаем макет из объекта обработки

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");

СсылкаМакет = ОбработкаОбъект.ПолучитьМакет("Тест");

Word = СсылкаМакет.Получить();

//открываем и активируем документ

СсылкаМакет = Word.Application.Documents(1);

СсылкаМакет.Activate();

// в метод Bookmarks передаем название "закладки"

Word.Bookmarks("Тест").Select();

//устанавливаем новое значение текста

Word.Application.Selection.TypeText("Привет, 1С 8.3! :)");

//включаем видимость приложения

СсылкаМакет.Application.Visible = Истина;

После вызова процедуры мы получим открытый документ с таким вот сообщением:

Создание документа Word сразу (Word.Application)

Документ Word можно создать в 1C без использования макета. Напрямую, с помощью COM объекта. Делается это не сложнее. Пример кода:

// Создание COM

Word1C = Новый COMОбъект("Word.Application");

// Установим видимости объекта

Word1C.Visible = Истина;

// Добавим документ в приложение

Word1C.Documents.Add();

// Придаем объекту статус активности

ТекущийДокумент = Word1C.ActiveDocument();

//выводим в первый абзац наш текст, выделяем его и делаем шрифт 30 размера

ТекущийДокумент.Paragraphs(1).Range.InsertAfter("Этот файл ворд я создал из программы 1С 8.3!"); ТекущийДокумент.Paragraphs(1).Range.Font.Size = 30;

ТекущийДокумент.Paragraphs(1).Range.Font.Bold = -1;

//активируем документ Word1C.Activate();