Имя: Пароль:
1C
 
Работа с VBscript из 1С 7.7 (проблема при компиляции скрипта VBscript)
0 kabanoff
 
15.09.08
17:42
Добрый день, товарищи программисты!
Рассматриваю вот такой простой код для 1С 7.7. Данный код открывает "шаблон" документа из файла и заменяет в нем "специальные" строки:

//code
 ScrptCtrl = СоздатьОбъект("MSScriptControl.ScriptControl");
 ScrptCtrl.Language = "vbscript";
 code = "
 |Sub FindAndReplace()
 |Set wrd = CreateObject(""Word.Application"")
 |wrd.Documents.Open ""C:\Document.doc""
 |Set myRange = wrd.ActiveDocument.Content
 |myRange.Find.Execute FindText:=""НомерДоговора"", _
 |ReplaceWith:=""№1 от 01.01.01"", Replace:=wdReplaceAll
 |wrd.Visible = True
 |Set wrd = Nothing
 |End Sub
 |";
 
 ScrptCtrl.AddCode(code);
 ScrptCtrl.Run("FindAndReplace");

//end code

Вроде бы все интуитивно понятно. Но на операции ScrptCtrl.AddCode(code) компилятор VBScript ругается "Ошибка компиляции Microsoft VBScript: Предполагается наличие инструкции".
В чем может быть причина?

Процедура FindAndReplace, аналогично написанная в отладчике MS Visual Basic, успешно работает.
1 kitt
 
15.09.08
17:43
зафигачь этот код в редактор VBA в ворд или эксель и посмотри
2 Ork
 
15.09.08
17:47
А хиде разделители операторов?

А просто забить код в 1с?
3 kabanoff
 
15.09.08
17:54
To kitt
Процедура FindAndReplace, аналогично написанная в отладчике MS Visual Basic, успешно работает.

To Ork
Не понял вопросов.
4 kitt
 
15.09.08
17:56
попробуй это строчку записать в одну

|myRange.Find.Execute FindText:=""НомерДоговора"", _
|ReplaceWith:=""№1 от 01.01.01"", Replace:=wdReplaceAll
5 kabanoff
 
15.09.08
17:58
To kitt
Неа. Всё равно не хочет.
6 kitt
 
15.09.08
18:16
ммм.. а vbscript поддерживает именованные параметры?? это ведь не тоже самое что VBA
7 kitt
 
15.09.08
18:16
попробовал по очереди закомментировать строки, ругается именно на строку
myRange.Find.Execute FindText:=""НомерДоговора"",ReplaceWith:=""№1 от 01.01.01"", Replace:=2
8 kitt
 
15.09.08
18:17
может проще по оле прямо из 1с создавать все это дело?
9 kabanoff
 
15.09.08
18:22
Спасибо за помощь!
Да не хотелось бы создавать из 1С, поскольку перечисления типа wdReplaceAll там не поддерживаются. То что я привел - это только вырезка из моего кода, а там таких параметров - много =)
10 kitt
 
15.09.08
18:25
Replace:=2
будет тоже самое
11 kitt
 
15.09.08
18:26
все vbaшные перечисления имеют числовые аналоги.
12 kabanoff
 
15.09.08
18:27
Ага, спасиб!
А всё же этим способом возможно?