Имя: Пароль:
1C
1С v8
Пауза между командами effector saver
0 Rokstedi
 
05.11.13
14:50
Подскажите как заставить дождаться выполнение предыдущей команды?

"C:\Data\prog\common\1cestart.exe" ENTERPRISE /S "localhost\test" /N"Админ" /P"1111" /C "ЗавершитьРаботуПользователей"
"C:\Data\prog\common\1cestart.exe" DESIGNER  /S "localhost\test" /N"Админ" /P"1111" /DumpIB D:\backup\Base_%date:~-10%.dt
"C:\Data\prog\common\1cestart.exe" CONFIG /S "localhost\test" /N"Админ" /P"1111" /DisableStartupMessages /UpdateDBCfg /ConfigurationRepositoryUpdateCfg
"C:\Data\prog\common\1cestart.exe" ENTERPRISE /S "localhost\test" /N"Админ" /P"1111" /C "РазрешитьВходВсехПользователей"
1 oslokot
 
05.11.13
14:54
поставить CALL перед командами?
2 Rokstedi
 
05.11.13
15:02
(1) неизвестно сколько будет выгружаться база
3 pumbaEO
 
05.11.13
15:04
не использовать стартер 1cestart, а напрямую путь указывать.
4 fisher
 
05.11.13
15:06
Ежели через WScript.Shell выполнять методом Run, то там можно явно указывать - дожидаться выполнения команды или нет.
5 Rokstedi
 
05.11.13
15:07
(3) спс, помогло
6 pumbaEO
 
05.11.13
15:15
(4) не поможет, стартер тупо передает параметры и сам завершается.
7 vhl
 
05.11.13
15:21
КомандаСистемы("start """" /wait халямбалямэкзешник.экзе");
8 DJ Anthon
 
05.11.13
15:23
проверяй доступ к файлу dt, например, с помощью программы handle
9 DJ Anthon
 
05.11.13
15:24
вот мой пример

set lock=1Cv8tmp.1CL
if not exist %bp%\%lock% goto ready8
echo Отправка процессам 1С команду на закрытие...
handle %bp%\%lock% > pids.txt
for /F "tokens=1,2 skip=5 eol=t delims=:omt" %%i in (pids.txt) do taskkill /PID %%j /T
echo Ожидание 15 секунд для закрытия процессов 1C...
ping -n 15 127.0.0.1 > nul
if not exist %bp%\%lock% goto ready8
echo Закрытие зависших процессов 1C...
handle %bp%\%lock% > pids.txt
for /F "tokens=1,2 skip=5 eol=t delims=:omt" %%i in (pids.txt) do taskkill /F /PID %%j /T
if exist %bp%\%lock% del %bp%\%lock%
10 DJ Anthon
 
05.11.13
15:26
:ready8
if exist pids.txt del pids.txt

echo Попытка выгрузить базу %bp% в файл
echo    %ap1%\(%base%)%DATE%-%t%.dt
if DEFINED user set user=/N"%user%"
if DEFINED fuck set pass=/P"%pass%"
%path1c8% CONFIG %mode% %bp% %user% %pass% /DumpIB"%ap1%\(%base%)%DATE%-%t%.dt"
if exist %ap1%\*.txt move %ap1%\*.txt %ap1%\Logs
ping -n 15 127.0.0.1 > nul
if not exist %ap1%\(%base%)%DATE%-%t%.dt echo Не удалось выгрузить базу %base%. Возможно, не закрыты все подключения к ней.
11 Rokstedi
 
05.11.13
16:31
Подскажите еще, как обновить базу, и при этом насильно выбросить всех пользователей? (аналог завершить работу пользователей при обновлении)