Допустим, для автоматизации процесса заполнения документов, был взят договор в формате Word. Затем его «пересохранили» в «Шаблон Word 97-2003 (*.dot)».
Изменяемые программно данные: [Предприятие], [ДиректорФИО], [Заказчик], и [ДиректорФИОЗаказчика] установили в шаблоне параметрами.
Параметры указали доступными способами, используя любой из них:
- []
- {}
- <>
Затем, этот шаблон подгрузили в конфигурацию в виде макета с типом — Active document.
После написали следующий код:
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 35 36 37 38 39 40 |
Процедура РаспечататьДоговорСПоставщиком() Договор = ПолучитьМакет("МакетШаблонаWord"); // Получить объект из макета. MSWord = Договор.Получить(); Попытка Документ = MSWord.Application.Documents(1); Документ.Activate(); //Определим имена Предприятие = "ООО Добродей" ДиректорФИО = "Столбов Александр Алексеевич"; Заказчик = СокрЛП(Поставщик.НаименованиеПолное); ДиректорФИОЗаказчика = "Еремеев Пётр Степанович"; //Получить объект, который будем использовать для поиска и замены. Замена = Документ.Content.Find; //Заменить заранее определенные ключевые конструкции на требуемый текст. Замена.Execute("[Предприятие ]", Ложь, Истина, Ложь, , , Истина, , Ложь, Заказчик, 2); Замена.Execute("[ДиректорФИО]", Ложь, Истина, Ложь, , , Истина, , Ложь, ДиректорФИО, 2); Замена.Execute("[Заказчик]", Ложь, Истина, Ложь, , , Истина, , Ложь, Заказчик, 2); Замена.Execute("[ДиректорФИОЗаказчика ]", Ложь, Истина, Ложь, , , Истина, , Ложь, ДиректорФИОЗаказчика, 2); MSWord.Application.Visible = Истина; MSWord.Activate(); Исключение // Если произойдет ошибка, выводятся данные об ошибке и объект закрывается. Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки; КонецПроцедуры |