Остановка сервера 1С:Предприятия без потерь: от блокировки сеансов до taskkill
Содержание
Чтобы остановить службу 1С сервер, откройте Win + R → services.msc, найдите службу «Агент сервера 1С:Предприятия 8.3» (в английской версии — 1C:Enterprise 8.3 Server Agent (x86-64)) и нажмите «Остановить». То же из командной строки: net stop с именем службы. Вместе с агентом ragent.exe завершатся менеджер кластера rmngr.exe и все рабочие процессы rphost.exe.
Сама команда занимает секунды. Основное время уходит на подготовку: выгнать пользователей, придержать регламентные задания и убедиться, что не идёт закрытие месяца или обмен. Ниже три способа — через консоль кластера, через службы Windows и принудительно через Диспетчер задач — плюс скрипты и разбор случаев, когда служба не останавливается.
Остановка службы обрывает все сеансы на этом сервере. Пользователи потеряют несохранённые документы, идущие транзакции откатятся. Останавливайте сервер вне рабочего времени или после предупреждения пользователей.
Что сделать перед остановкой службы сервера 1С
Сервер 1С обслуживает сразу все базы кластера. Остановили службу ради одной базы — отключили всех. Поэтому сначала выясните, кто сейчас работает и что выполняется.
📌 Что проверить:
- 👥 Активные сеансы. Список — в консоли кластера, ветка
Информационные базы → <база> → Сеансы. Колонки показывают пользователя, компьютер и приложение (тонкий клиент, фоновое задание, Конфигуратор, веб-клиент). - ⏱ Фоновые и регламентные задания. Обмены, загрузка банковских выписок, обновление курсов. Задание, оборванное посреди обмена, может оставить пакет непринятым.
- 🔒 Длинные операции. Закрытие месяца, перепроведение, загрузка
.dt, обновление конфигурации . Их лучше дождаться. - 🗄 СУБД. Если после остановки 1С вы собираетесь перезапускать SQL Server или PostgreSQL, убедитесь, что резервное копирование базы не идёт прямо сейчас.
Блокировка начала сеансов
Чтобы за время ожидания никто не зашёл заново, включите блокировку в свойствах информационной базы (в консоли — правой кнопкой по базе → Свойства):
- Отметьте флажок «Блокировка начала сеансов включена».
- Укажите время начала и окончания блокировки.
- Впишите сообщение — его увидит пользователь при попытке входа, например: «Профилактика сервера до 21:30».
- Задайте код разрешения. С ним администратор сможет войти, добавив к строке запуска параметр
/UC<код>. - Отметьте «Блокировка регламентных заданий включена», чтобы новые задания не стартовали.
Для изменения свойств консоль попросит логин и пароль администратора этой информационной базы (пользователь 1С с правами администратора), а не только администратора кластера.
Если баз много, блокируйте те, где работают люди. Базы без активных сеансов остановка службы не повредит.
Способ 1. Остановка через консоль администрирования кластера
Консоль «Администрирование серверов 1С Предприятия» — это оснастка MMC. Сама служба из неё не останавливается, но вся «мягкая» часть работы делается здесь: завершить сеансы, убедиться, что рабочие процессы освободились.
Если консоль не открывается
Типичная ситуация — оснастка пишет, что не может создать объект, или открывается пустой. Причина: не зарегистрирована библиотека radmin.dll той версии платформы, которая стоит на сервере. Регистрация из командной строки, запущенной от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1342\bin\radmin.dll"
Номер версии подставьте свой — он совпадает с папкой в C:\Program Files\1cv8\. Версия консоли должна совпадать с версией сервера: разные релизы между собой не работают.
Порядок действий в консоли
- Откройте
Central 1C:Enterprise 8.3 servers → <имя сервера> → Кластеры → <кластер>. - Если кластер защищён паролем, введите логин администратора кластера.
- Перейдите в ветку
Сеансыкластера — там видны сеансы всех баз сразу. - Выделите сеансы (Ctrl+A для всех) → правая кнопка →
Удалить. Это и есть принудительное завершение сеанса. - Откройте ветку
Рабочие процессыи проверьте, что у процессов не осталось соединений. - После этого переходите к остановке службы (способ 2).
«Удалить» в ветке «Сеансы» удаляет только сеанс, а не базу и не пользователя. Не путайте с удалением информационной базы из кластера — эта команда находится в контекстном меню самой базы, и её нажимать не нужно.
Консоль и клиенты подключаются к агенту сервера по порту 1540. Менеджер кластера слушает 1541, рабочие процессы используют диапазон портов, заданный в свойствах рабочего сервера (по умолчанию 1560–1591). Если консоль не видит сервер с другой машины, проверьте именно эти порты в брандмауэре.
Способ 2. Как остановить службу 1С через службы Windows, net stop и PowerShell
Основной способ. Агент сервера при остановке сам гасит rmngr.exe и все rphost.exe.
Через оснастку «Службы»
Win + R→services.msc→ Enter.- Найдите «Агент сервера 1С:Предприятия 8.3 (x86-64)». Если на сервере стоит несколько версий платформы, служб тоже несколько — смотрите на путь к исполняемому файлу в свойствах службы.
- Правой кнопкой →
Остановить. - Дождитесь статуса «Остановлена». Если висит «Остановка» дольше 2–3 минут — смотрите раздел про зависание ниже.
Если служба после остановки не должна стартовать сама при перезагрузке, в её свойствах поменяйте «Тип запуска» на «Вручную» или «Отключена». Не забудьте вернуть «Автоматически» после работ.
Узнать точное имя службы
Имя службы (внутреннее) и отображаемое имя различаются. Для команд нужно внутреннее. Узнать его можно так:
sc query state= all | findstr /i "1C"
или в PowerShell:
Get-Service | Where-Object { $_.DisplayName -like "*1C*" } | Format-Table Name, DisplayName, Status
Остановка из командной строки
Командная строка — от имени администратора:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net stop ждёт завершения и пишет результат. Альтернатива — sc stop "<имя>": она отправляет команду и сразу возвращается, поэтому статус потом проверяют через sc query "<имя>".
PowerShell:
Stop-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
Get-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"
Запуск обратно — net start или Start-Service с тем же именем.
Остановка на Linux
На Linux сервер 1С работает как сервис systemd. С 8.3.21 имя юнита содержит номер версии, в более старых установках использовался сервис srv1cv83. Найдите своё имя и остановите:
systemctl list-units --type=service | grep -i 1c
sudo systemctl stop <имя юнита>
systemctl status <имя юнита>
ps aux | grep -E "ragent|rmngr|rphost"
Последняя команда должна вернуть пустой результат (кроме самой строки grep).
Сравнение способов
| Способ | Когда подходит | Что учесть |
|---|---|---|
| Консоль кластера | Нужно аккуратно завершить сеансы перед остановкой | Сама службу не останавливает |
services.msc | Разовая остановка на сервере, есть RDP | Нужны права локального администратора |
net stop, Stop-Service | Скрипты, удалённая работа, регламент | Нужно внутреннее имя службы |
taskkill | Служба зависла в статусе «Остановка» | Транзакции рвутся, риск потери данных |
Способ 3. Принудительное завершение процессов в Диспетчере задач
Крайняя мера, когда служба не реагирует. Процессы сервера:
- 🟢
ragent.exe— агент сервера, это и есть процесс службы; - 🟡
rmngr.exe— менеджер кластера; - 🔵
rphost.exe— рабочие процессы, их может быть несколько; - ⚪
ras.exe— сервер администрирования, если он установлен отдельной службой.
Принудительное завершение рвёт транзакции посреди записи. В файловой базе это прямой путь к повреждению. В клиент-серверной транзакцию откатит СУБД, но документы, которые пользователь не успел записать, пропадут. Перед taskkill убедитесь, что сеансов нет или их потеря допустима.
Через Диспетчер задач
Ctrl + Shift + Esc→ вкладка «Подробности».- Отсортируйте по имени, найдите
rphost.exe. - Правой кнопкой → «Снять задачу» для каждого рабочего процесса.
- Затем снимите
rmngr.exeи последнимragent.exe.
Порядок «от рабочих процессов к агенту» нужен потому, что живой агент может перезапустить убитый рабочий процесс — кластер для этого и сделан.
Через командную строку
Сначала узнайте PID службы, которая зависла:
sc queryex "1C:Enterprise 8.3 Server Agent (x86-64)"
В выводе есть строка PID. Завершение по номеру и затем всех оставшихся процессов сервера:
taskkill /F /PID 4120
taskkill /F /IM rphost.exe
taskkill /F /IM rmngr.exe
/F — принудительно, /IM — по имени образа. Номер 4120 здесь пример, подставьте свой.
Скрипт остановки сервера 1С: rac и bat
Для ночных регламентов (бэкап, обновление платформы
) остановку удобно оформить скриптом. Мягкая часть — блокировка и завершение сеансов — делается через rac, консольную утилиту администрирования.
Подготовка: служба ras
rac работает не напрямую с агентом, а через сервер администрирования ras.exe. По умолчанию он слушает порт 1545. Регистрация ras как службы Windows (командная строка от администратора, путь к своей версии):
sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\8.3.24.1342\bin\ras.exe\" cluster --service --port=1545 localhost:1540" DisplayName= "Сервер администрирования 1С" start= auto
sc start "1C:Enterprise 8.3 Remote Server"
Пробел после binPath=, DisplayName= и start= обязателен — такой синтаксис у sc.
Основные команды rac
rem список кластеров и их идентификаторы
rac localhost:1545 cluster list
rem список сеансов кластера
rac localhost:1545 session list --cluster=<uuid кластера>
rem завершить один сеанс
rac localhost:1545 session terminate --cluster=<uuid кластера> --session=<uuid сеанса>
Блокировка начала сеансов и регламентных заданий базы выставляется командой rac infobase update с параметрами --sessions-deny=on и --scheduled-jobs-deny=on. Ей нужны логин и пароль администратора базы. Полный список параметров для вашей версии платформы — в rac help infobase.
Пример bat-файла
Сценарий: завершить все сеансы кластера и остановить службу.
@echo off
set RAC="C:\Program Files\1cv8\8.3.24.1342\bin\rac.exe"
set SRV=localhost:1545
set SVC="1C:Enterprise 8.3 Server Agent (x86-64)"
for /f "tokens=2 delims=: " %%C in ('%RAC% %SRV% cluster list ^| findstr /b "cluster"') do set CL=%%C
for /f "tokens=2 delims=: " %%S in ('%RAC% %SRV% session list --cluster=%CL% ^| findstr /b "session "') do (
%RAC% %SRV% session terminate --cluster=%CL% --session=%%S
)
timeout /t 30 /nobreak
net stop %SVC%
Скрипт берёт первый кластер из списка. Если кластеров несколько или на кластере стоит пароль администратора, добавьте --cluster-user и --cluster-pwd. Перед боевым запуском прогоните его на тестовом сервере и запустите вручную хотя бы раз — проверьте, что вывод rac разбирается так, как задумано.
Ставьте задание в Планировщик заданий Windows с запуском от учётной записи с правами администратора и галочкой «Выполнять с наивысшими правами». Иначе net stop вернёт «Отказано в доступе».
Служба 1С не останавливается: диагностика и журналы
Где смотреть причину
- 📄 Журнал событий Windows.
eventvwr.msc → Журналы Windows → ПриложениеиСистема. Источник — служба агента 1С и диспетчер служб: там видно, когда служба получила команду остановки и сколько времени завершалась. - 📂 Каталог реестра кластера. По умолчанию
C:\Program Files\1cv8\srvinfo\(путь задаётся в параметрах службы, ключ-d). Внутриreg_1541— настройки кластера и кэш сеансов. - 🔍 Технологический журнал. Включается файлом
logcfg.xmlв каталогеC:\Program Files\1cv8\conf\. Для диагностики зависаний пишут событияEXCP(исключения) иPROC(старт и завершение процессов). После разбора журнал отключите — он быстро съедает диск.
Каталог srvinfo целиком не удаляйте. В нём список зарегистрированных баз и настройки кластера; после удаления базы придётся регистрировать заново, а назначения функциональности и пароли администраторов кластера пропадут.
Частые ошибки при остановке сервера 1С
- ❌ Остановили сервер ради одной базы. Отключились все базы кластера. Если нужно выгнать людей только из одной — достаточно блокировки сеансов и завершения сеансов этой базы, службу трогать не надо.
- ❌ Оставили тип запуска «Отключена». После работ сервер не поднялся сам после перезагрузки, утром никто не может войти.
- ❌ Убили
ragent.exeпервым. Рабочие процессы остаются без управления и держат соединения с СУБД, пока их не снимут вручную. - ❌ Остановили не ту версию. На сервере две платформы, а работает только одна. Сверяйте путь к исполняемому файлу в свойствах службы.
- ❌ Остановили 1С, но не дождались СУБД. Перезапуск SQL Server посреди резервного копирования портит само копирование, а не 1С.