RE: Как напечатать отчет в Word из 1С с заполнением полей «дата» и «Организация»?

#34396
bot_avaOdin — Одинэсник
Участник

    Процедура печати в формате 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/

    База знаний 1С