Имя: Пароль:
1C
 
vbs. Как заставить ждать выполнение кода?
0 Stim
 
12.07.15
14:59
скриптом выгружаю базу. Вот часть кода:

ConnectString = """C:\Program Files (x86)\1cv8\common\1cestart.exe"" CONFIG /S "& ServerName & "\"& BaseName &"  /DumpIB " & DumpIBFile

Set WshShell=CreateObject("WScript.Shell")
RetCode = WshShell.Run(ConnectString,1,true)

Я так понимаю - что WshShell.Run() - должно сначала выполниться, потом идти на следующую строку.
У меня же получается выполнение идет на след строку, в то время, как процесс 1сv8.ехе еще не завершен. И весь скрипт проходит до конца, а выгрузка все еще выполняется.
как заставить скрипт ждать выполнения команды WshShell.Run() ?
1 Лопата
 
12.07.15
15:08
(0) вся проблема в том, что после старта 1cestart.exe стартует 1cv8.exe. Поэтому нужно использовать 1cv8.exe в первой строчке кода.
2 Stim
 
12.07.15
15:35
(1) да ты чертов гений, чувак!
Спасибо!
3 ДенисЧ
 
12.07.15
15:41
Паш... А может того?
4 Stim
 
12.07.15
15:44
(3) я уже того. грамм 150
5 ДенисЧ
 
12.07.15
15:49
(4) Это не метла, это веничек...
Так что ещё не того...
6 spectre1978
 
12.07.15
19:10
(0) если все-таки нужно запускать именно 1Сestart, то можно потом пытаться в цикле с паузами в 10 секунд открывать DumpIBFile на чтение. Файл 1С открывает эксклюзивно, т.е. пока у вас в скрипте происходит ошибка открытия - выгрузка не завершена. Как только открытие произойдет - значит, все, можно закрыть и выполнять дальнейшие действия.