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

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как напечатать отчет в Word из 1С с заполнением полей «дата» и «Организация»?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #34395
      Телеграм группа https://t.me/odineskiOdineski
      Участник

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

      • #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 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С