Заполняет Вордовский шаблон из СпискаЗначений
Вставляется в виде обрабтки. При открытии передается СЗ первым значением идет 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 35 36 37 38 39 40 41 |
Процедура ПриОткрытии() Перем Закладка, ТектВывода, сз; СтатусВозврата(0); сз = Форма.Параметр; ФайлШаблон = ""; ОЛЕ_Объект = ""; Если ТипЗначенияСтр(сз)<>"СписокЗначений" Тогда Сообщить("Для формирования документа передайте подготовленный список значений", "!!!"); Возврат; ИначеЕсли сз.РазмерСписка()=0 Тогда Сообщить("Для формирования документа передайте подготовленный список значений", "!!!"); Возврат; Иначе ФайлШаблон = сз.ПолучитьЗначение(1, ОЛЕ_Объект); Если ВРег(ОЛЕ_Объект) <> "WORD" Тогда Сообщить("OLE объект "+ОЛЕ_Объект+" не поддерживается", "!!!"); Возврат; КонецЕсли; Если ФС.СуществуетФайл(КаталогИБ()+"Шаблоны" + ФайлШаблон) = 0 Тогда Сообщить("Нет файла - шаблона " + ФайлШаблон, "!!!"); Возврат; КонецЕсли КонецЕсли; OLE = СоздатьОбъект(ОЛЕ_Объект+".Application"); OLE.Documents.Add(""""+КаталогИБ()+"Шаблоны" + ФайлШаблон + """"); Для Индекс = 2 по сз.РазмерСписка() цикл ТекстВывода = сз.ПолучитьЗначение(Индекс, Закладка); //Если OLE.ActiveDocument.Bookmarks(СокрЛП(Закладка)).Exists()=0 Тогда // Проверяем - существует ли закладка // Сообщить("Не найдена закладка "+Закладка,"!!!" ); Продолжить; //КонецЕсли; Попытка OLE.ActiveDocument.Bookmarks(СокрЛП(Закладка)).Select(); //выделим выбранную закладку OLE.Selection.TypeText(СокрЛП(ТекстВывода)); // выведем на место выделения текст Исключение Сообщить("Не найдена закладка "+Закладка,"!!!" ); КонецПопытки; КонецЦикла; OLE.Visible=1; /// видимость - True OLE.ActiveDocument.Activate(); /// активизировать!!! OLE=""; /// ссылочку прибить КонецПроцедуры |
Автор: GrayT