![]() |
![]() |
|
v8: Работа по Com (Word) | ☑ | ||
---|---|---|---|---|
0
SIS72
19.01.10
✎
09:58
|
Пишу внешнюю обработку - печатает по шаблону DOC договор контрагента (договор время от времени может меняться).
Использую такой упрощенный код: Word = Новый ComОбъект("Word.Application"); Word.Documents.Add(ШаблонДоговорПуть); Word.Visible = 1; Doc = Word.ActiveDocument; Для сч=1 По Doc.Variables.Count Цикл Имя = Doc.Variables(сч).Name; Сообщить(" переменная "+Имя); КонецЦикла; Doc.Fields.Update(); Doc.Fields.UnLink(); Вставляю в шаблон DocVariables через Вставить\Поле\DocVariable. В отладке Doc.Variables.Count = 0, что я сделал не так? Сам документ выводится. И еще DocVariables после вставки не как себя не проявляет - после вставки должно что-то появиться в DOC или нет? Может вопрос и тупой - но сам не чего найти немогу.... Благодарю за советы заранее! Удачи ВАМ!!! |
|||
4
asady
19.01.10
✎
10:02
|
(0) ты ком от оле отличаешь?
|
|||
6
i-rek
19.01.10
✎
10:21
|
(4) в случае ворда разницы нет
вот кстати через поля документа в ворде у меня никогда так не получалось сделать. И все кто делал, то что я видел - делали через поиск и замену строк шаблона |
|||
7
lxs
19.01.10
✎
10:21
|
Кусок из книги Габца и Гончарова "Простые примеры разработки".
Как сформировать новый договор на основании файла Microsoft Word? Договор = ПолучитьМакет("Договор"); // Получить объект из макета. MSWord = Договор.Получить(); НаименованиеКонтрагента = "ООО Торгуем всем"; Попытка Документ = MSWord.Application.Documents(1); Документ.Activate(); // Получить объект, который будем использовать для поиска и замены. Замена = Документ.Content.Find; // Заменить заранее определенные ключевые конструкции на требуемый текст. Замена.Execute("<НазваниеКомпании>", Ложь, Истина, Ложь, , , Истина, , Ложь, НаименованиеКонтрагента); // Далее аналогично для остальных ключевых конструкций. // Делаем видимым приложение и активизируем его. MSWord.Application.Visible = Истина; MSWord.Activate(); Исключение // Если произойдет ошибка выводятся данные об ошибке и объект закрывается. Сообщить(ОписаниеОшибки()); MSWord.Application.Quit(); КонецПопытки; |
|||
8
i-rek
19.01.10
✎
10:25
|
(7) что тоже только подтверждает, что объектная модель ворда в этом вопросе на столько мутная, что даже Габец и Гончаров ею правильно воспользоваться не могут
|
|||
9
lxs
19.01.10
✎
10:32
|
(8) +1
|
|||
10
SIS72
19.01.10
✎
13:32
|
Вот только в нешней обработке на
Договор = ПолучитьМакет("Договор"); сразу ругается - пишет типа не знаю что такое "ПолучитьМакет" |
|||
11
anatoly
19.01.10
✎
13:35
|
зачем изобретать велосипед?
посмотри: http://infostart.ru/public/22326/ http://infostart.ru/public/22353/ |
|||
12
lxs
19.01.10
✎
13:39
|
(10) точно "не знаю что такое" ??? уверен? У тебя макет есть в обработке? тип его Active Document?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |