Имя: Пароль:
1C
1С v8
Одновременный запуск
0 maestro-72
 
30.03.14
08:49
'Пробуем запустить восьмерку с параметром
Set WshShell    = CreateObject("WScript.Shell")
RetCode = WshShell.Run("""c:\Program Files (x86)\1cv82\8.2.18.102\bin\1cv8s.exe"" ENTERPRISE /F D:\1cBase\АВК /N analitik /Pads /C ZagruzkaIzDBF",1,vbtrue)
RetCode = WshShell.Run("""c:\Program Files (x86)\1cv82\8.2.18.102\bin\1cv8s.exe"" ENTERPRISE /F D:\1cBase\АВК /N analitik /Pads /C VipolnitObmen",1,vbtrue)

эти две строки в vbs отрабатывают одновременно, а должны по очереди. Что не так делаю?
1 arsik
 
гуру
30.03.14
09:01
1cv8s.exe
2 Мимохожий Однако
 
30.03.14
09:18
Запусти вторую изнутри
3 Jump
 
30.03.14
09:18
(0)А с чего ты взял что они выполняются одновременно?
Они выполняются по очереди, это факт.
4 shuhard
 
30.03.14
09:20
(3)[Они выполняются по очереди, это факт.]
факт, что они выполняются асинхронно
и вторая может стартовать раньше окончания первой
5 Jump
 
30.03.14
09:26
(4)
-факт, что они выполняются асинхронно
С чего бы это они выполнялись асинхронно? Разве VBскрипт поддерживает асинхронное программирование?

-вторая может стартовать раньше окончания первой
Почему это может? Она должна стартовать сразу же после запуска первой, а сколько там первая выполнятся будет, это не ее забота.
6 Jump
 
30.03.14
09:27
Поэтому одновременно они никак не могут стартануть.
Сначала будет стартовать первая, через доли секунды вторая.
7 rphosts
 
30.03.14
09:33
(5) вторая действительно может стартовать раньше первой, но ооочень редко... винды они такие винды...
8 Jump
 
30.03.14
09:35
(7)Ну скажем так команды на запуск будут идти по очереди, а кому удастся быстрее очухаться и стартануть, тут дело случая.
Все таки не риалтайм система чтобы за этим следить.
9 shuhard
 
30.03.14
09:36
(5)[а сколько там первая выполнятся будет, это не ее забота.]
ZagruzkaIzDBF + VipolnitObmen
ху..евенький обмен будет до загрузки
10 arsik
 
гуру
30.03.14
09:37
Сначала узнайте, за что отвечает файл "1cv8s.exe" а потом уже постите всякий бред.
11 Wobland
 
30.03.14
09:38
а зачем бы не сделать один запуск?
12 Jump
 
30.03.14
09:42
(10)А при чем тут файл "1cv8s.exe" ? Никак не пойму.
13 maestro-72
 
30.03.14
09:46
Ну во-первых обработки разные и запускаются последовательно, т.к. это тонкий клиент и не мой, изменить не могу.
Во вторых я не знаю почему было 1cv8s.exe. Раньше был батник, запускался с 2003 шедуллера, все работало как часы. сейчас 2008 сервер 64x не запускается все свел к одному vbs а эти две обработки не хотят запускаться последовательно, хотя вроде бы и должны. Сначала должен был быть выполнен обмен, потом выгрузка, а сейчас в диспетчере задач смотрю обе они запускаются одновременно, или почти одновременно, что не суть важно. vbTrue для чего стоит?
14 Jump
 
30.03.14
09:52
(13)Что ты понимаешь под словом "последовательно"?
В моем понимании последовательно это когда запускается первая, и тут же после нее вторая. Поскольку запуск программный вторая должна запустится через долю секунды после первой.
Это называется последовательно. И я уверен что они так и запускаются.

Другое дело, если ты хочешь запускать вторую, дождавшись исполнения первой...
15 maestro-72
 
30.03.14
09:54
Почитал ветки форума, странное дело, по ходу дело в 64 битной системе. В батнике рекомендуют запускать start /w
А как это в vbs реализовать.
(14) именно(дождавшись завершения первой).
16 Jump
 
30.03.14
09:59
/wait
17 Jump
 
30.03.14
10:04
а, хотя не попутал.
18 maestro-72
 
30.03.14
10:05
(16) что /wait?
Короче, батник что ли делать и из vbs этот батник запускать? Криво как то
19 Jump
 
30.03.14
10:10
А попробуй вместо vbTrue просто True
20 maestro-72
 
30.03.14
10:10
Пробовал. Та же песня
21 arsik
 
гуру
30.03.14
11:35
(12) В скрипте запускается 1cv8s.exe - а это маленькая програмка которая отображает окно выбора баз, и запускает уже 1cv8.exe.
Читаем в мануале про 3й параметр: "необязательный, булево (число). True - сценарий возобновит работу только после завершения ВЫЗВАННОГО ПРОЦЕССА. False (по умолчанию) - управление передаётся сразу обратно в сценарий."

Итого в остатке. Скрипт запускает 1cv8s.exe, он в свою очередь запускает 1cv8.exe и закрывается. vbs считает что процесс завершен (а это именно так). Вызывает следующий.

Поменяйте в скрипте вызов 1cv8s.exe на 1cv8.exe
22 Torquader
 
30.03.14
12:10
(21) Можно exec использовать, а в него вставить запуск командной строки - тогда точно можно будет знать, что происходит, и когда что завершится.
23 Torquader
 
30.03.14
12:11
Ещё можно посмотреть в сторону WMI, чтобы отследить появление процесса 1С и ждать уже его завершения, не обращая внимания вообще на то, кого мы реально запустили.
24 Aleksey
 
30.03.14
12:28
(21) +100
25 maestro-72
 
01.04.14
13:44
(21) Усё получилось. Большое спасибо.