Остановка агента сервера 1С:Предприятия без потери данных и зависаний
Содержание
Чтобы остановить службу 1С сервера, откройте services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3» (в английской локали — 1C:Enterprise 8.3 Server Agent) и нажмите «Остановить». Из командной строки то же самое делает net stop или sc stop с именем службы, в PowerShell — Stop-Service. Вместе с агентом (ragent.exe) штатно завершаются менеджер кластера (rmngr.exe) и все рабочие процессы (rphost.exe).
Остановка службы обрывает все сеансы пользователей на этом сервере. Несохранённые документы пропадут, а незавершённые транзакции откатятся. Поэтому сначала предупредите людей и закройте вход в базы, а уже потом гасите службу. Порядок и способы — ниже, от штатного к принудительному.
Что сделать перед остановкой сервера 1С
Служба агента — сердце клиент-серверной 1С. Клиент обращается к агенту на порт 1540, затем к менеджеру кластера на 1541 и к рабочим процессам из диапазона портов рабочего сервера. Нет агента — нет ни одного подключения.
Перед остановкой пройдите короткий список:
- 👥 Кто сейчас работает. Откройте консоль «Администрирование серверов 1С Предприятия» и посмотрите узел «Сеансы» у каждой базы.
- 📢 Предупреждение. Напишите пользователям время отключения хотя бы за 10–15 минут.
- 🔒 Блокировка новых входов. Включите блокировку начала сеансов в свойствах базы (как — в разделе про консоль и
rac). - ⏸ Регламентные задания. Если идёт обмен или закрытие месяца , дождитесь окончания. Обрыв посреди обмена даёт повторную выгрузку и «зависшие» сообщения.
- 💾 Копия. Если после остановки планируете обновление платформы или работу с файлами кластера, сделайте резервную копию баз средствами СУБД.
Если на сервере несколько версий платформы, служб тоже несколько: у каждой свой агент со своим портом. Убедитесь, что останавливаете нужную, по пути к ragent.exe в свойствах службы.
Остановка службы 1С через оснастку «Службы» Windows
Самый наглядный способ. Подходит, когда вы зашли на сервер по RDP и нужно разовое действие.
- Нажмите
Win + R, введитеservices.msc, нажмите Enter. - Отсортируйте список по имени и найдите службу агента. Для 64-битного сервера в названии есть пометка
(x86-64). - Откройте двойным щелчком. На вкладке «Общие» в поле «Исполняемый файл» видно путь, например
C:\Program Files\1cv8\8.3.24.1548\bin\ragent.exe. По номеру в пути поймёте, какая это версия. - Нажмите «Остановить». Состояние сменится на «Остановлена» за несколько секунд — до минуты при большом числе сеансов.
- Если сервер нужно оставить выключенным надолго (перенос, замена платформы), смените «Тип запуска» на «Вручную» или «Отключена». Иначе служба поднимется после перезагрузки Windows.
Рядом может быть вторая служба — сервер администрирования ras.exe (в названии обычно есть слово Remote Server или «сервер администрирования»). Её останавливать не обязательно. Но если её не остановить, она будет пытаться достучаться до агента и писать ошибки в журнал.
Кнопка «Перезапустить» — это остановка и запуск подряд. Для пользователей она так же разрывает сеансы, как и обычная остановка.
Как остановить службу 1С сервера из командной строки и PowerShell
Командная строка нужна, когда сервер администрируют удалённо или остановку надо встроить в скрипт. Сначала узнайте точное имя службы — оно не всегда совпадает с отображаемым.
sc query state= all | findstr /i "1C"
Команда покажет строки SERVICE_NAME и DISPLAY_NAME. Для команд нужно именно SERVICE_NAME. Пробел после state= обязателен — такой синтаксис у sc.
Дальше три равноценных варианта. Командную строку запускайте от имени администратора.
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
sc stop "1C:Enterprise 8.3 Server Agent (x86-64)"
Get-Service *1C* | Format-Table Name, DisplayName, Status
Stop-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
Имя в примерах — типовое для 64-битной установки. Подставьте своё из вывода sc query.
| Команда | Ждёт остановки | Особенность |
|---|---|---|
net stop | Да | Пишет понятное «Служба успешно остановлена», удобна в bat-файлах |
sc stop | Нет | Отправляет сигнал и сразу возвращает управление; статус проверяйте через sc query |
Stop-Service | Да | Удобно для удалённой работы через PowerShell Remoting |
Для удалённого сервера без входа по RDP подойдёт sc \\SRV-1C stop "имя службы", если у вашей учётной записи есть права администратора на том сервере.
Готовый bat-файл с ожиданием и проверкой результата:
@echo off
set SVC=1C:Enterprise 8.3 Server Agent (x86-64)
net stop "%SVC%"
sc query "%SVC%" | findstr /i "STOPPED" >nul
if errorlevel 1 (
echo Служба не остановилась, проверьте процессы ragent/rmngr/rphost
exit /b 1
)
echo Служба 1С остановлена
Сеансы и блокировка: консоль кластера и утилита rac
Сама консоль «Администрирование серверов 1С Предприятия» службу не останавливает. Зато в ней готовят мягкую остановку: выгоняют пользователей и закрывают вход.
Блокировка через консоль
- Откройте консоль, разверните сервер, затем кластер и узел «Информационные базы».
- Правой кнопкой по базе → «Свойства». Нужны логин и пароль администратора этой базы.
- Отметьте «Блокировка начала сеансов включена», задайте «Начало» и «Конец» блокировки, текст сообщения и «Код разрешения».
- Отдельно включите «Блокировка регламентных заданий включена», чтобы фоновые задания не стартовали заново.
- В узле «Сеансы» выделите оставшиеся сеансы и удалите их через контекстное меню.
Код разрешения позволяет администратору зайти в заблокированную базу: в строке запуска добавляют параметр /UC с этим кодом.
То же самое через rac
Утилита rac лежит в папке bin платформы и работает не напрямую с агентом, а через сервер администрирования ras. Если службы ras нет, её запускают вручную:
"C:\Program Files\1cv8\8.3.24.1548\bin\ras.exe" cluster --port=1545 localhost:1540
Дальше получаем идентификатор кластера, список баз и сеансов:
rac cluster list
rac infobase summary list --cluster=<uuid-кластера>
rac session list --cluster=<uuid-кластера>
Завершение одного сеанса:
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если на кластере задан администратор, к каждой команде добавьте --cluster-user и --cluster-pwd. Блокировку входа в базу ставит rac infobase update с параметрами --sessions-deny=on и --scheduled-jobs-deny=on — точный список ключей для вашей версии смотрите в rac help infobase.
На Linux та же утилита rac работает одинаково. Отличается только способ остановки самой службы — через systemctl. Имя юнита содержит номер версии платформы, поэтому найдите его командой systemctl list-units | grep 1cv8.
Принудительное завершение ragent, rmngr и rphost
Иногда служба висит в состоянии «Остановка» минутами. Обычно это рабочий процесс, который ждёт ответа СУБД или дописывает большой журнал. Сначала подождите 3–5 минут. Принудительное завершение — только когда ждать бессмысленно.
Принудительное убийство rphost посреди записи может оставить незавершённую транзакцию на стороне СУБД. Делайте это только после того, как все пользователи вышли.
Через Диспетчер задач:
- Откройте Диспетчер задач → вкладка «Подробности».
- Отсортируйте по имени. Найдите
ragent.exe,rmngr.exeи всеrphost.exe. - Завершайте в порядке:
rphost.exe→rmngr.exe→ragent.exe. Кнопка «Снять задачу». - Проверьте в
services.msc, что служба перешла в «Остановлена».
Через командную строку, если служба зависла в остановке:
sc queryex "1C:Enterprise 8.3 Server Agent (x86-64)"
taskkill /PID 4312 /F
taskkill /IM rphost.exe /F
taskkill /IM rmngr.exe /F
sc queryex покажет PID процесса службы — его и передайте в taskkill. Число 4312 в примере условное.
Если на сервере стоят две версии платформы, taskkill /IM rphost.exe завершит рабочие процессы обеих. В таком случае убивайте по PID, сверяя путь к файлу в Диспетчере задач (столбец «Путь к образу» включается правой кнопкой по заголовку).
Остановка службы 1С по расписанию
Регулярное окно обслуживания — например, ночная перезагрузка для очистки памяти рабочих процессов или перед резервным копированием файлов — удобно собрать из двух частей.
1. Блокировка входа заранее. В свойствах базы задайте «Начало» и «Конец» блокировки начала сеансов. Пользователи увидят сообщение, а новые входы закроются сами. Блокировка включается флажком и действует в заданном интервале, поэтому её можно поставить один раз на конкретную дату.
2. Задание Планировщика Windows. Положите bat-файл из раздела выше, например, в C:\Scripts\stop1c.bat и создайте задание:
schtasks /create /tn "Stop 1C Server" /tr "C:\Scripts\stop1c.bat" /sc daily /st 03:00 /ru SYSTEM
Для обратного запуска сделайте парный start1c.bat с net start и отдельное задание на 03:30.
Пример ночного окна:
| Время | Действие |
|---|---|
| 02:45 | Начало блокировки сеансов и регламентных заданий |
| 03:00 | net stop службы агента |
| 03:05–03:25 | Резервное копирование, обслуживание СУБД |
| 03:30 | net start службы, снятие блокировки по сроку «Конец» |
Для ежедневной профилактики полностью гасить службу не обязательно. В свойствах рабочего сервера есть ограничение памяти рабочих процессов: при его превышении кластер сам перезапускает процесс без ручной остановки.
Почему служба 1С не останавливается или не запускается снова
Большая часть проблем видна в журнале Windows: eventvwr.msc → «Журналы Windows» → «Приложение», фильтр по источнику с «1C». Ниже — типичные симптомы и что проверить.
Кэш сеансов в srvinfo
После аварийной остановки в папке кластера иногда остаются повреждённые служебные данные. Типовой путь — C:\Program Files\1cv8\srvinfo\reg_1541. Внутри лежат папки snccntx… с сеансовыми данными. При полностью остановленной службе их удаляют, после чего агент создаёт их заново.
Остальное в reg_1541 не трогайте: там файл 1CV8Clst.lst с реестром кластера — списком баз и настроек. Перед любыми действиями скопируйте папку srvinfo целиком в сторону.
Если служба не стартует из-за прав, откройте её свойства → вкладка «Вход в систему». Учётная запись (по умолчанию USR1CV8) должна иметь полный доступ к srvinfo и право «Вход в качестве службы».
Как проверить, что сервер поднялся после запуска
После net start убедитесь, что всё работает, до того как снимать блокировку:
- В
services.mscслужба в состоянии «Выполняется». - В Диспетчере задач есть
ragent.exe,rmngr.exeи хотя бы одинrphost.exe. - Команда
netstat -ano | findstr :1540показывает порт в состоянииLISTENING. - В консоли кластера открываются список баз и узел «Рабочие процессы».
- Тестовый вход в одну базу проходит без ошибок.
Если пункт 4 не проходит, а служба запущена — проверьте, не закрыт ли в брандмауэре порт 1541 и диапазон портов рабочих процессов.
Частые вопросы
Потеряются ли данные базы при остановке службы 1С?
Нужно ли останавливать SQL Server вместе с 1С?
Что делать, если пароль администратора кластера забыт?
1CV8Clst.lst из резервной копии или обратитесь к администратору сервера, который настраивал кластер. Пересоздавать кластер не нужно.