Имя: Пароль:
1C
 
Заполнение документа Word
0 Alf006
 
04.12.07
19:23
Заполняю значениями поля Договора.

Код следующий:
Процедура ЗаполнитьШаблон_(ПараметрыЗаполнения,Каталог,ОбъектШаблон,ИмяДоговора="Договор",Открыть=Истина,Сохранить=Истина) Экспорт
   Перем ТекДок;
   objWord = Новый COMObject("Word.Application.11");
   objWord.Documents.Add(ОбъектШаблон);//, Ложь,, Истина);

   Для Каждого Параметр Из ПараметрыЗаполнения Цикл
       ИмяПараметра = Параметр.Ключ;
       ЗначениеПараметра = Параметр.Значение;
       objWord.Application.Selection.Find.Execute("<"+ИмяПараметра+">", Ложь, Истина, Ложь,,,Истина,,Ложь,ЗначениеПараметра);
       
  Сообщить(ИмяПараметра+" "+ЗначениеПараметра);
КонецЦикла;

objWord.Application.ActiveDocument.SaveAS(Каталог+"\"+ИмяДоговора+".doc");
objWord.Visible = Истина;
objWord.Activate();
objWord.Quit();
КонецПроцедуры//ЗаполнитьШаблон_

//----------------------
Так вот, -  
Процедура находит заполняет лишь первое в цикле значение.

В чем может быть дело, кто подскажет?
Заранее благодарен!
1 ТелепатБот
 
гуру
04.12.07
19:23
2 Alf006
 
04.12.07
19:24
В том то вся и фишка, что шаблон Договора не в Макете!
3 Alf006
 
04.12.07
23:49
По другому говоря, проблема такая:
Если не размещать шаблон в макете, как в Книге Знаний, а хранить в виде документа Word, то приходится использоватьдругие методы. И, соответственно ошибки и все такое...
4 Garkin
 
05.12.07
00:55
Попробуй
objWord.Selection.Find.Execute("<"+ИмяПараметра+">",,,,,,,1,,ЗначениеПараметра,2)
5 smaharbA
 
05.12.07
01:02
за селект надо отстреливать...
6 Garkin
 
05.12.07
01:29
(5) предложи альтернативу.
7 Ковычки
 
05.12.07
01:30
(6) нафига ? уже устал порукамбить
8 Ковычки
 
05.12.07
01:32
да, еще забыл, за активедок надо и анафеме придавать...
9 Alf006
 
05.12.07
15:46
В конце концов заработал такой код:

Функция ЗаполнитьШаблон(ПараметрыЗаполнения,Каталог,ОбъектШаблон,ИмяДоговора="Договор",Открыть=Истина,Сохранить=Истина) Экспорт
   Перем ТекДок,ИмяПараметра,ЗначениеПараметра;
   objWord = Новый COMObject("Word.Application.11");
   objWord.Documents.Add(ОбъектШаблон);
   Для Каждого Параметр Из ПараметрыЗаполнения Цикл
       ИмяПараметра = Параметр.Ключ;
       ЗначениеПараметра = Параметр.Значение;
       objWord.ActiveDocument.Content.Find.Execute("<"+ИмяПараметра+">", Ложь, Истина, Ложь,,,Истина,,Ложь,ЗначениеПараметра);
   КонецЦикла;
   objWord.Application.ActiveDocument.SaveAS(Каталог+"\"+ИмяДоговора+".doc");
   objWord.Visible = Истина;
   objWord.Activate();
   objWord.Quit();

КонецФункции//ЗаполнитьШаблон()

Спасибо всем, кто откликнулся!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший