|
Запуск 1С в пекетном режиме через планировщик | ☑ | ||
---|---|---|---|---|
0
vcv
04.06.04
✎
10:57
|
Есть два батничка на одном сервере с запуском 1С в пакетном режиме. Один для ночной проверки/загрузки/выгрузки в монопольном режиме, другой, для ежечасной загрузки/выгрузки УРБД. Оба, если просто запустить из, например, ФАРА или проводника, успешно отрабатывают. Если-же запускать через планировщий (стандартный Windows2000Server), с первым батником все нормально, а из второго 1С не запускается, возвращая errorlevel 128.
Что это может быть? Где-нибудь можно раздобыть информацию о 1Сных errorlevel? Ключ и сетевой менеджер стоят на этом-же сервере. |
|||
1
lexa
04.06.04
✎
10:59
|
приведи батник и файл параметров, у меня автообмен запускается каждые полчаса без проблем
|
|||
2
vcv
04.06.04
✎
13:01
|
[General]
Output=C:\backups\AutoExchange.~mlg Quit=1 CheckAndRepair=0 UnloadData=0 SaveData=0 AutoExchange=1 [AutoExchange] SharedMode=Yes ReceiveFrom= ReadFrom=* WriteTo=* SendTo= Батничек приводить не буду, там много лишнего, только глаза будет путать, но и просто такая строчка в планировщике не пускается: "C:\Program Files\1Cv77\BIN\1cv7.exe" config /D"C:\Baza.1C\МПК 2004\" /NАдминистратор /@C:\backups\AutoExchange.prm Ту же строчку запуска скармливаю "Пуск / Выполнить" - все идеально. |
|||
3
Killgur
04.06.04
✎
13:26
|
В задании обязательно укажи пользователя от чьего имени будет запускаться задание и введи его пароль (задать пароль)
|
|||
4
lexa
04.06.04
✎
13:36
|
переименовал бы ты МПК 2004 в МПК_2004 и убрал бы кавычки и
Output=C:\backups\AutoExchange.~mlg сделай попроще например Output=C:\backups\AutoEx.mlg я как то в Output неправильно путь прописал так конфигуратор вообще зависал попробуй cd "C:\Program Files\1Cv77\BIN\" start 1cv7.exe" config /DC:\Baza.1C\МПК_2004\ /NАдминистратор /@C:\backups\AutoExchange.prm |
|||
5
vcv
07.06.04
✎
08:17
|
Не помогает. Самое что интересное, рядом второй батник, который запускается ночью для проверки базы и загрузки/выгрузки в монопольном режиме. Так он запускается. И от *.prm файла это не зависит, пробовал подменять. Какой-то глюк с неустоячивым запуском.
Тот батник, из которого 1С-ка не запускается так и висит на регулярном запуске каждый час и по логам где-то раз в день, он таки умудряется запуститься. |
|||
6
427
07.06.04
✎
08:25
|
запусти первый раз батник руками... И ответь на все сообщения - которые вываливаются... Типа там всяких подсказок ежедневных...
Она не висит - просто ждет ответа... |
|||
7
lexa
07.06.04
✎
10:29
|
(2) попробуй упростить батничек до (4) и (3) прав на задание надо прописать пароль пользователя . Вообще если ОС 2000/ХР, то не .bat, а .cmd. И приведи все-таки батничек. Я сам долгл геморроился с батником: надо было обмен через дискету сделать, а уриб на ЦБ не дает это сделать. Пришломь, проверять наличе файлов, переписывать с дискеты на винт, а после обмена с винта на дискету
|
|||
8
vcv
07.06.04
✎
13:43
|
To 427: "Висит на регулярном запуске" не в смысле 1С запускается и висит, а в смысле запуск указан в шедулере. Сама 1С пытается запуститься и мгновенно завершается с кодом возврата (errorlevel) 128.
To lexa: Упрощение батничка эффекта не дает. Пароль на задание есть. Как же без него на корпоративном серваке? А батничек.... Ну ты сам попросил.... :-) :-) Сначала первый, который запускается раз в день ночью и нормально отрабатывает: @echo off setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION set TS=%date:~9,4%%date:~6,2%%date:~3,2% set RAR=rar.exe a -m5 -av- -idp -k -mdG -y -dh set ONEC="C:\Program Files\1Cv77\BIN\1cv7.exe" config /M echo.>>%~dpn0.log echo ------------------------------------------------------------------------------->>%~dpn0.log echo %TS% %TIME% Обслуживание ИБ 1С>>%~dpn0.log rem *** rem *** Архивирование информационных баз rem *** pushd C:\Baza.1C for /F "tokens=*" %%i in ('dir /b /s *.md ^| findstr /V "NEW_STRU"') do ( if not exist "%~dp0%%~pi" mkdir "%~dp0%%~pi" echo %TS% Архивирование ИБ %%~dpi>>%~dpn0.log pushd "%%~dpi" %RAR% -ilog"%~dp0%%~pi%TS%.log" "%~dp0%%~pi%TS%.tmp" @%~dpn0.lst if exist "%~dp0%%~pi%TS%.log" ( echo %TS% : Протокол ошибок в файле %~dp0%%~pi%TS%.log>>%~dpn0.log ) popd pushd "%~dp0%%~pi" if exist %TS%.tmp ( for /F %%i in ('%~dp0cksum.exe %TS%.tmp') do set sum1=%%i for /F %%i in ('dir /OD /B *.rar 2^>nul') do set oldname=%%i for /F %%i in ('%~dp0cksum.exe !oldname!') do set sum2=%%i if "!sum1!"=="!sum2!" ( echo %TS% : Изменений в ИБ не обнаружено, архив не сохранен>>%~dpn0.log del %TS%.tmp ) ) if exist %TS%.tmp move %TS%.tmp %TS%.rar popd ) popd rem *** rem *** Тестирование и автообмен ИБ rem *** echo %TS% Тестирование и автообмен ИБ C:\1C\МПК2004\>>%~dpn0.log del "%BASE%\Exchange\CP\" /Y 2>nul del "%BASE%\Exchange\PC\" /Y 2>nul if exist C:\Home\Exchange\U~2C.ZIP move /Y C:\Home\Exchange\U~2C.ZIP "%BASE%\Exchange\CP" %ONEC% /D"C:\Baza.1C\МПК 2004\" /NАдминистратор /@%~dpn0.prm if exist %~dpn0.~mlg ( type %~dpn0.~mlg>>%~dpn0.mlg %~dp0recode.exe -wd %~dpn0.~mlg findstr "Err" %~dpn0.~mlg>>%~dpn0.log del %~dpn0.~mlg ) move /Y "%BASE%\Exchange\PC\U~?D.ZIP" C:\Home\Exchange >nul endlocal и пакетный файл к нему: [General] Output=C:\backups\maintenance.~mlg Quit=1 CheckAndRepair=1 UnloadData=0 SaveData=0 AutoExchange=1 [CheckAndRepair] Repair=0 PhysicalIntegrity=1 Reindex=1 LogicalIntegrity=1 RecalcSecondaries=1 RecalcTotals=1 Pack=0 [AutoExchange] SharedMode=No ReceiveFrom= ReadFrom=* WriteTo=* SendTo= Второй батничек, который не работает, гораздо проще, он только выгружает данные, забираются они по FTP с другого сервера @echo off setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION pushd %~dp0 set ONEC="C:\Program Files\1Cv77\BIN\1cv7.exe" config set BASE=C:\Baza.1C\МПК 2004 set TS=%date:~9,4%%date:~6,2%%date:~3,2% %time:~0,5% echo %TS% Автообмен ИБ %BASE%>>%~dpn0.log del "%BASE%\Exchange\CP\" /Y 2>nul del "%BASE%\Exchange\PC\" /Y 2>nul if exist C:\Home\Exchange\U~2C.ZIP move /Y C:\Home\Exchange\U~2C.ZIP "%BASE%\Exchange\CP" rem %ONEC% /D"%BASE%\" /NАдминистратор /@%~dpn0.prm cd "C:\Program Files\1Cv77\BIN\" %ONEC% /D"C:\Baza.1C\МПК 2004\" /NАдминистратор /@%~dpn0.prm if not %errorlevel%==0 echo %TS% Запуск 1С не удался >>%~dpn0.log del "%BASE%\Exchange\CP\" /Y 2>nul if exist %~dpn0.~mlg ( type %~dpn0.~mlg>>%~dpn0.mlg %~dp0recode.exe -wd %~dpn0.~mlg >nul findstr "Err" %~dpn0.~mlg>>%~dpn0.log del %~dpn0.~mlg ) move /Y "%BASE%\Exchange\PC\U~2D.ZIP" C:\Home\Exchange 2>nul popd endlocal и пакетный файл к нему: [General] Output=C:\backups\AutoExchange.~mlg Quit=1 CheckAndRepair=0 UnloadData=0 SaveData=0 AutoExchange=1 [AutoExchange] SharedMode=Yes ReceiveFrom= ReadFrom=* WriteTo=* SendTo= Кстати, если кому-то мои батнички приглянутся - берите на здоровье. :-) :-) |
|||
9
lexa
07.06.04
✎
13:47
|
cd "C:\Program Files\1Cv77\BIN\"
start /wait %ONEC% /D"C:\Baza.1C\МПК 2004\" /NАдминистратор /@%~dpn0.prm |
|||
10
vcv
07.06.04
✎
14:48
|
Нулевой эффект :-(
Может дело в хаспе? Когда пускаю с с командной строки или из фара 1Ска еще секунды две ищет хасп. А при запуске через шедул задача завершается мгновенно. Обновление дров хаспа тоже не помогло. |
|||
11
Akim
07.06.04
✎
15:08
|
У меня была подобная проблема с пакетным режимом . Победил тем что исключил кирилицу в паролях и именах юзеров (ну не любит 1С русских ^:)) ). И все пути в формат 8.3. Попробуй.
|
|||
12
Akim
07.06.04
✎
15:09
|
ЗЫЖ И каталоги тоже по английски. :-)
|
|||
13
lexa
07.06.04
✎
15:11
|
Да, батники у тебя навороченные, даже завидно
У меня все просто: @echo off cd "g:\Program Files\1Cv77\BIN\" start /min 1cv7.exe CONFIG /DD:\1C\db /NAutoExchange /P132 /@D:\1C\CMD\Autoexchange.txt а Autoexchange.txt : [General] Output=d:\1C\CMD\Log.txt Quit=Y AutoExchange=Y [AutoExchange] SharedMode=Y ReceiveFrom=* ReadFrom=* WriteTo=* SendTo=* все работает без геморроя (через e-mail) |
|||
14
lexa
07.06.04
✎
15:20
|
ты перезаписываешь файлы автообмена и не дожидаясь завершения перезаписи запускаешь конфигуратор, а потом недожидаясь завершения его работы опять перезаписываешь файлы, я тут заморачивался с автообменом через дискету и делал примерно так:
xcopy /wait a:\db21.zip c:\cmd\* cd "g:\Program Files\1Cv77\BIN\" start /wait 1cv7.exe CONFIG /DD:\1C\db /NAutoExchange /P132 /@D:\1C\CMD\Autoexchange.txt xcopy c:\cmd\db20.zip a:\* |
|||
15
vcv
07.06.04
✎
15:21
|
Вопрос кажется решен. Как только юзера ушли домой батник сразу заработал. По предварительным экспериментам, что бы все заработало, надо для пользователя, от которого пускается 1С в пакетном режиме задать свой личный каталог. С пустым каталогом не прокатывает. Точно проверю завтра, когда юзера опять на базу насядут. Непонятно только кочему это важно при запуске из шедула и безразлично при запуске батника вручную.
|
|||
16
lexa
07.06.04
✎
15:27
|
(15) у меня, когда автобмен франч настраивал тоже пользователь, под которым производился автообмен был без каталога, мне эта дискриминация не понравилась и я ему сам прописал
если SharedMode=Y , то как без личного каталога? |
|||
17
vcv
08.06.04
✎
09:01
|
(14) Консольные команды не умеют работать в асинхронном режиме. И у XCOPY ключа WAIT нет. Ты случаем с каким-нибудь новелем не перепутал? Единственный, кажется, способ устроить асинхронное выполнение батничка, это команда start /B.
(15) Вопрос этим не решился, но несколько прояснился при экспериментах. Корень проблемы оказался в том, что из-за бедности одного нашего участка, сервер там используется как рабочая станция и проблема с запуском начинается, когда на сервере уже запущена 1с от пользователя. К сожалению избавиться от этой проблемы (в смысле пользователя) нельзя, поэтому придется искать решение. Дальше пошли странности. Описываю ситуацию: удаленный сервак вынь2К, к которому я подключаюсь штатным терминалом администратором (ADMIN). На серваке сидит пользователь (USER) с запущенной 1С. Если я запускаю свой батничек в своей терминальной сессии (от пользователя ADMIN), он нормально работает. Если, же запускаю задание в шедуле от того-же пользователя (ADMIN), 1С не запускается. Если запускаю задание от имени пользователя (USER), 1С нормально запускается, но не может записать выходной файл УРБД не смотря на полные права на каталог ИБ, в подкаталог которого делается выгрузка (бардака с правами нет, права на подкаталог пользователю тоже полные). Фууууу... Ну и проблемы на ровном месте.... Но, кажется, все решилось. Батник упростил, запуск сделал от пользователя (USER), каталоги загрузки-выгрузки подобрал, что бы ошибка "нет доступа" не возникала, батник. |
|||
18
lexa
08.06.04
✎
11:24
|
(17) насчет xcopy /wait a:\db21.zip c:\cmd\* наверное ошибся ( сегодня с утра был, но не посмотрел) , а насчет юзеров это точно, у меня в одной точке, автообмен происходит на машине, где попеременно работают разные юзеры, и шедулер от админа не запускается, самое смешное, что когда я создал вначале для одного юзера с его паролем, а потом вошел под другим и стал создавать новое задание с тем же именем, то был послан - задание с таким именем уже есть.
Я сам хотел через ftp сделать, но руки не дошли. Все работает через e-mail. Проблема одна, если у почтового клиента ошибка, то конфигуратор зависает. Кстати может тебе твой батник разбить на 2. Первый будет получать файлы и запускатся за 5 минут до второго, а второй запускать автообмен и отсылать файлы. Но start /wait точно нужен для корректной работы. |
|||
19
Пока никто
03.11.04
✎
02:17
|
Если вы используете юзера для пакетного задания, например, Попов_Андрей а не Popov_Andrey, не забудьте перекодировать свой .bat файл в ASCII кодировку, иначе DOS не поймёт :)
|
Форум | Правила | Описание | Реклама | Секции | Поиск | Книга знаний | Вики-миста |