- В этой теме 1 ответ, 2 участника, последнее обновление 3 месяца, 1 неделя назад сделано .
Просмотр 1 ветки ответов
Просмотр 1 ветки ответов
- Для ответа в этой теме необходимо авторизоваться.
Программирование и администрирование в 1С
База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как напечатать отчет в Word из 1С с заполнением полей «дата» и «Организация»?
Обычные формы. напиши процедуру вывода на печать в формате WORD(шаблон есть в формате WORD), надо заполнить два поля «дата» и «Организация»
Процедура печати в формате Word для обычной формы с заполнением двух полей «дата» и «Организация» может выглядеть так:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Процедура Печать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/