Содержание:
1. Использование шаблонов Word в системе программ 1С
2. Как заполнить шаблон
Использование шаблонов Word в системе программ 1С
Формирование документов из шаблонов является очень распространённой задачей, и одним из наиболее гибких инструментов её решения является использование шаблонов Word.
Шаблон представляет собой обычный документ Microsoft Word, который может включать в себя картинки, таблицы, формулы и прочее. Текст шаблона можно разделить на две категории: статический и динамический.
Статический текст – это текст, который будет оставаться неизменным, независимо от данных, переданных в шаблон при формировании документа. На статический текст применяется выбранное форматирование, шрифт, цвет и прочее.
Динамический текст – это текст, который изменяется в зависимости от данных, переданных в шаблон при формировании документа. На динамический текст также распространяются все свойства форматирования, как и на статический текст. Динамический текст указывается в виде параметра, заключенного в угловые скобки: <ПараметрЗаполнения>
С точки зрения алгоритма механизм формирования договора из шаблона Word выглядит следующим образом:
- Инициализируем COM-объект
- В цикле заполняем все необходимые параметры
- Уничтожаем инстанцию COM-объекта
Как заполнить шаблон
Для наглядного примера создадим документ следующего содержания:
«Сегодня <ДеньНедели>, <Дата>, число дня – <ЧислоДня>».

Сегодня <ДеньНедели>, <Дата>, число дня – <ЧислоДня>
Шаг 1. Инициализация COM-объекта.
ВАЖНО!!! COM-объект изначально нужно инициализировать как числовую переменную с нулевым значением, после чего уже можно переопределять как новый COM-объект.
КомОбъект = 0;
Попытка
КомОбъект = Новый COMОбъект(“Word.Application”);
Исключение
Возврат ОписаниеОшибки();
КонецПопытки;
Данный нюанс важен для последующего корректного закрытия инстанции Word при закрытии документа методом Quit() COM-объекта.
Шаг 2. Заполнение параметров.
Для нашего примера нужно получить 3 значения: текущий день недели, текущая дата и случайное число. Для этого напишем функцию, возвращающую структуру, ключом которой будет являться наименование параметра, а значением – необходимые нам данные.
Функция ПолучитьЗначенияПараметровЗаполнения()
ГСЧ = Новый ГенераторСлучайныхЧисел(ДеньНедели(ТекущаяДата()));
ПараметрыЗаполнения = Новый Структура;
ПараметрыЗаполнения.Вставить(“ДеньНедели”,Формат(ТекущаяДата(),”ДФ=””дддд”””));
ПараметрыЗаполнения.Вставить(“Дата”,Формат(ТекущаяДата(),”ДФ=dd.MM.yyyy”));
ПараметрыЗаполнения.Вставить(“ЧислоДня”, ГСЧ.СлучайноеЧисло(0,100));
Возврат ПараметрыЗаполнения;
КонецФункции
Данную функцию будем вызывать в функции заполнения текста документа. Заполнение происходит следующим образом:
ЗначенияПараметров = ПолучитьЗначенияПараметровЗаполнения();
Для Каждого Элемент из ЗначенияПараметров Цикл
Документ.Content.Find.Execute(“<“+Элемент.Ключ+”>”, Ложь, Истина, Ложь, , , Истина, , Ложь, “” + Элемент.Значение + “”,2);
КонецЦикла;
Шаг 3. Уничтожение инстанции COM-объекта.
Для корректного выхода из Word и его закрытия необходимо прописать следующие строки:
КомОбъект.Quit(0);
КомОбъект = 0;
В итоге формируется документ с подставленными в параметры значениями:

Сегодня ПЯТНИЦА, 25.10.2024, число дня – 35
Специалист компании ООО “Кодерлайн”,
Астанов Артём
Добавить комментарий