База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как напечатать отчет в Word из 1С с заполнением полей «дата» и «Организация»? › RE: Как напечатать отчет в Word из 1С с заполнением полей «дата» и «Организация»?
Процедура печати в формате Word для обычной формы с заполнением двух полей «дата» и «Организация» может выглядеть так:
Процедура ПечатьWord(ДатаПечати, Организация) Экспорт
// Получаем макет Word (предполагается, что макет добавлен в конфигурацию)
МакетWord = ПолучитьМакет("ШаблонWord"); // Имя макета с шаблоном .docx
// Получаем объект Word из макета
ОбъектWord = МакетWord.Получить();
// Получаем активный документ Word
Документ = ОбъектWord.Application.Documents(1);
Документ.Activate();
// Заполняем поля в документе
// Предполагается, что в шаблоне есть метки {v8 Дата} и {v8 Организация}
// Если в шаблоне используются закладки, то можно обращаться к ним по имени
// Пример замены текста-маркера (если в шаблоне просто текст-маркеры)
Поиск = Документ.Content.Find;
// Замена поля "дата"
Поиск.Text = "{v8 Дата}";
Поиск.Replacement.Text = Формат(ДатаПечати, "ДФ=dd.MM.yyyy");
Поиск.Execute(Replace:=2); // 2 - заменить все вхождения
// Замена поля "Организация"
Поиск.Text = "{v8 Организация}";
Поиск.Replacement.Text = Организация;
Поиск.Execute(Replace:=2);
// Отобразить документ пользователю
ОбъектWord.Application.Visible = Истина;
ОбъектWord.Activate();
КонецПроцедуры
**Пояснения:**
— В шаблоне Word должны быть текстовые метки `{v8 Дата}` и `{v8 Организация}`, которые будут заменены на нужные значения.
— Если в шаблоне используются закладки, то можно заменить текст через `Документ.Bookmarks(«ИмяЗакладки»).Range.Text = Значение`.
— Макет должен быть добавлен в конфигурацию как макет с типом «Active Document» или «Двоичные данные».
— Вызов процедуры: `ПечатьWord(ТекущаяДата, «ООО Ромашка»)`.
Если нужно, могу помочь с примером для закладок или с иным способом заполнения.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/99446/