Имя: Пароль:
1C
1С v8
Не добавляет данные из документа в шаблон word
0 wswolf14
 
05.12.12
14:28
День добрый.
Суть проблемы в следующем: из документа РО по нажатию кнопки должен заполняться шаблон Word. Код следующий:

Договор = Документы.РасходныйОрдер.ПолучитьМакет("ДоговрЗалога");
  MSWord = Договор.Получить();
 
Попытка                                                  
  Документ = MSWord.Application.Documents(1);
  Документ.Activate();
  мДок = Документы.РасходныйОрдер.Выбрать();
  Замена = Документ.Content.Find;
  Замена.Execute("{НомерДоговора_}", Ложь, Истина, Ложь, , , Истина, , Ложь, мДок.Номер);
  Замена.Execute("{Дата_}", Ложь, Истина, Ложь, , , Истина, , Ложь, мДок.Дата);
  MSWord.Application.Visible = Истина;
  MSWord.Activate();
Исключение
  Сообщить(ОписаниеОшибки());
  MSWord.Application.Quit();
КонецПопытки;


При нажатии на кнопку все проходит открывается документ ворд, но данные которые должны были замениться просто исчезают((
в чем проблема подскажите пожалуйста?
1 wswolf14
 
05.12.12
14:30
Ни ошибок ни какий нареканий со стороны 1с нет, все проходит ровно. Обработка написана в модуле менеджера.
2 Wobland
 
05.12.12
14:33
что-то много истин и лжей у тебя. и ещё в ехекют где-то 2 или -2 надо
3 wswolf14
 
05.12.12
14:36
можете показать какой-нибудь пример, все что я находил прописывалось именно так
4 Wobland
 
05.12.12
14:41
(3) могу, но минут через 100-150. мсдн почитай
5 Wobland
 
05.12.12
14:43
11й параметр - двойка (менять все)
v8: COMОбъект("WORD.Application Execute
6 dk
 
05.12.12
14:44
переходи на работу с закладками (bookmarks)
7 wswolf14
 
05.12.12
14:44
ок спс, попробовал подставить 2 или -2, поубирать истина ложь, эфект тот же: открывает, но не заполняет
8 Wobland
 
05.12.12
14:46
(7) это уже после изучения (5)?
9 wswolf14
 
05.12.12
14:49
(8)да
еще нашел расшифровку всех этих ЛЛОЖЬ ИСТИНА
10 Wobland
 
05.12.12
14:50
(9) нашёл? медитируй
11 Wobland
 
05.12.12
14:51
а как ты после изучения (5) -2 пробовал? что у тебя при этом в голове происходило?
12 wswolf14
 
05.12.12
15:06
да каша,смотрел на твое сообщение и писал,(7)2 или 1
на счет медитируй не понял
13 Wobland
 
05.12.12
15:08
(12) ну ты ж документацию нашёл? вот и кури её до просветления
14 wswolf14
 
05.12.12
16:04
докурил
ошибка оказалась в др месте тк при

Документ = MSWord.Application.Documents(1);
  Документ.Activate();
  мДок = "123"; //Документы.РасходныйОрдер.Выбрать();
  Замена = Документ.Content.Find;
 
   //Selection.Find.ClearFormatting
   //Selection.Find.Replacement.ClearFormatting
   //Selection.Find.Text = "VVV"
   //Selection.Find.Replacement.Text = "++++++++"
   //Selection.Find.Forward = True
   //Selection.Find.Wrap = wdFindContinue
   //Selection.Find.Format = False
   //Selection.Find.MatchCase = False
   //Selection.Find.MatchWholeWord = False
   //Selection.Find.MatchWildcards = False
   //Selection.Find.MatchSoundsLike = False
   //Selection.Find.MatchAllWordForms = False
   //Selection.Find.Execute Replace:=wdReplaceAll
   
  Замена.Execute("{НомерДоговора_}", , , , , , , , , мДок);
  //Замена.Execute("{Дата_}", Ложь, Истина, Ложь, , , Истина, , Ложь, мДок.Дата, 2);
  MSWord.Application.Visible = Истина;
  MSWord.Activate();
Исключение
  Сообщить(ОписаниеОшибки());
  MSWord.Application.Quit();
КонецПопытки;

все меняется норм,возникает следующий вопрос:
почему 1с не выбирает значения?

мДок = Документы.РасходныйОрдер.Выбрать();
15 wswolf14
 
05.12.12
17:39
Договор = Документы.РасходныйОрдер.ПолучитьМакет("ДоговрЗалога");
  MSWord = Договор.Получить();
 
Попытка
  Документ = MSWord.Application.Documents(1);
  Документ.Activate();
             
  мДок = Объект;
  Замена = Документ.Content.Find;
     
  Замена.Execute("{НомерДоговора_}", , , , , , , , , мДок.Номер, 2);
  Замена.Execute("{Дата_}", Ложь, Истина, Ложь, , , Истина, , Ложь, мДок.Дата, 2);
  MSWord.Application.Visible = Истина;
  MSWord.Activate();
Исключение
  Сообщить(ОписаниеОшибки());
  MSWord.Application.Quit();
КонецПопытки;

Нужно прописать в модуле формы документа
16 Wobland
 
05.12.12
17:47
на здоровье