1с word шаблон — Заполнение таблиц в шаблоне Word
1с word шаблон — Заполнение таблиц в шаблоне Word
В предыдущей заметке «Использование шаблонов Word в 1С» был показан простой способ, как используя механизмы 1С и документа Word в качестве шаблона, можно создать печатную форму для вывода данных. В текущей заметке «1с word шаблон» будет показан один из способов, как можно реализовать заполнение таблиц в шаблоне Word.
Для примера использовался шаблон Word следующего вида:
Как видно из шаблона, закладка «Таблица1» является указателем на начало таблицы и служит для позиционирования выделения.
Теперь непосредственно сам способ, для его реализации использовалась внешняя обработка, в модуле формы которой, описана лишь одна процедура «ПриОткрытии(Отказ)»:
&НаКлиенте Процедура ПриОткрытии(Отказ) //Попытка создать COM объект Попытка ОбъектВорд = Новый COMОбъект("Word.Application"); Исключение Сообщить("Ошибка при запуске Microsoft Word: " + ОписаниеОшибки(), СтатусСообщения.Внимание); КонецПопытки; //Путь к шаблону ОбъектВорд.Documents.Add("C:\Users\Константин\Desktop\Шаблон.docx"); ШаблонВорд = ОбъектВорд.ActiveDocument; //Заполняем первую таблицу Если ШаблонВорд.Bookmarks.Exists("Таблица1") Тогда //Выделяем обязательную закладку начала таблицы ШаблонВорд.Bookmarks("Таблица1").Select(); //Перемещаемся вниз, выделяем строку таблицы и копируем ее в буфер обмена ШаблонВорд.Application.Selection.MoveDown(); ШаблонВорд.Application.Selection.SelectRow(); ШаблонВорд.Application.Selection.Copy(); Для Счетчик = 1 По 10 Цикл //Заменяем значения ШаблонВорд.Application.Selection.Find.Execute("Номер" ,,,,,,,,,Счетчик,2); ШаблонВорд.Application.Selection.Find.Execute("ЗначениеКолонки1" ,,,,,,,,,Счетчик+10,2); //Последний параметр поиска пустой ШаблонВорд.Application.Selection.Find.Execute("ЗначениеКолонки2" ,,,,,,,,,Счетчик+100,); //Перемещаемся вниз, вставляем из буфера обмена строку ШаблонВорд.Application.Selection.MoveDown(); ШаблонВорд.Application.Selection.Paste(); //Перемещаемся вверх и выделяем строку для замены значений ШаблонВорд.Application.Selection.MoveUp(); ШаблонВорд.Application.Selection.SelectRow(); КонецЦикла; //Вырезаем лишнюю строку ШаблонВорд.Application.Selection.Cut(); //Скрываем обязательную закладку начала таблицы ШаблонВорд.Bookmarks("Таблица1").Select(); ШаблонВорд.Application.Selection.TypeText(" "); КонецЕсли; ОбъектВорд.Application.Visible = Истина; ОбъектВорд.Activate(); //Закрытие документа //ОбъектВорд.Application.Quit(); КонецПроцедуры
Как видно из кода процедуры, сначала находим закладку, выделяем и копируем строку таблицы находящуюся ниже, после заменяем текст на значения и вставляем скопированную строку. Результат работы внешней обработки 1С «Заполнение таблиц в шаблоне Word»: