Два способа выгрузить данные из программы 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();