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

Как напечатать отче...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

Обычные формы. напиши процедуру вывода на печать в формате WORD(шаблон есть в формате WORD), надо заполнить два поля "дата" и "Организация"



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 

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



   
ОтветитьЦитата