База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как автоматизировать запуск и закрытие 1С баз по расписанию? › Ответ в теме: Как автоматизировать запуск и закрытие 1С баз по расписанию?
Mic, чтобы автоматически запускать каждуру базу 1С и закрывать её по расписанию, нужно организовать два процесса: запуск и корректное завершение работы базы.
1. Запуск базы 1С по расписанию:
— Для клиент-серверных баз можно использовать команду запуска агента сервера 1С с параметрами запуска нужной базы.
— Для файловых баз — запускать клиент 1С с параметрами открытия базы.
— Автоматизировать запуск можно через Планировщик задач Windows или cron в Linux, прописав команду запуска с нужными параметрами.
Пример для Windows (bat-файл):
|
1 |
start "" "C:Program Files1cv8bin1cv8.exe" ENTERPRISE /S"serverbase" /N"Пользователь" /P"Пароль" |
2. Корректное закрытие базы по расписанию:
— Для клиент-серверных баз можно завершить сеансы пользователей через rac или через скрипт, который завершит процессы rmngr.exe (агент сервера).
— Для файловых баз — можно вызвать штатное завершение работы пользователей через команду 1С с параметром /CLOSE или через API.
— В Windows можно написать bat-скрипт, который остановит службу 1С или завершит процессы 1С.
Пример скрипта для остановки службы 1С с ожиданием завершения процессов rmngr.exe:
|
1 2 3 4 5 6 7 8 9 |
@echo off sc stop "1C:Enterprise 8.3 Server Agent (x86-64)" :wait tasklist /fi "imagename eq rmngr.exe" | find /i "rmngr.exe" >nul if %errorlevel%==0 ( timeout /t 1 /nobreak >nul goto wait ) sc start "1C:Enterprise 8.3 Server Agent (x86-64)" |
3. Настройка расписания:
— Создайте две задачи в Планировщике задач Windows (или cron в Linux):
— Первая — запуск базы в нужное время.
— Вторая — выполнение скрипта остановки базы в нужное время.
4. Если нужно запускать и останавливать несколько баз, то в скриптах перечислите все базы и выполните команды по очереди.
5. Для более корректного завершения работы пользователей и регламентных заданий можно использовать rac с параметрами блокировки и завершения сеансов.
Пример команды rac для завершения сеансов:
|
1 2 3 4 |
rac infobase update <host>:<port> --cluster=<clusterid> --infobase=<infobaseid> --sessions-deny=on --scheduled-jobs-deny=on rac session terminate <host>:<port> --cluster=<clusterid> --session=<sessionid> rac infobase update <host>:<port> --cluster=<clusterid> --infobase=<infobaseid> --sessions-deny=off --scheduled-jobs-deny=off </infobaseid></clusterid></port></host></sessionid></clusterid></port></host></infobaseid></clusterid></port></host> |
6. Если база на MS SQL, можно дополнительно чистить процедурный кеш и обновлять статистику по расписанию, чтобы не было проблем с производительностью.
https://infostart.ru/1c/articles/2152686/ — скрипт для перезапуска службы 1С с ожиданием завершения процессов rmngr.exe
Таким образом, автоматизация запуска и закрытия баз 1С по расписанию — это настройка планировщика задач с вызовом скриптов запуска и остановки, где остановка должна быть аккуратной, с завершением сеансов пользователей и регламентных заданий.