Перезапуск сервера 1С:Предприятия без потери данных и зависших сеансов

· 9 мин

Содержание

Чтобы правильно перезагрузить сервер 1С, сначала заблокируйте начало сеансов и регламентные задания в базах, дождитесь завершения или удалите оставшиеся сеансы в консоли кластера. Затем остановите службу «Агент сервера 1С:Предприятия 8.3» и только после этого перезагружайте Windows или СУБД. Запуск — в обратном порядке: СУБД, затем служба 1С, затем снятие блокировок.

Жёсткий ребут без подготовки обычно заканчивается одним из трёх сценариев: оборванные проведения документов, регламентное задание, которое упало посередине обмена, или служба 1С, поднявшаяся раньше SQL. Ниже — процедура для клиент-серверной 1С 8.3 на Windows Server 2016 и новее, которая обходит все три.

Перезагрузка сервера, службы или одного процесса: что выбрать

Часто весь сервер перезагружать не нужно. Если тормозит одна база или «распух» один рабочий процесс, хватит меньшего вмешательства. Выбирайте минимальный уровень, который решает задачу.

УровеньКогда подходитЧто теряют пользователи
Перезапуск одного rphostПроцесс съел память, сеансы на нём завислиСеансы только на этом процессе
Перезапуск службы агента 1СКластер не отвечает, после обновления платформы, после очистки сеансовых данныхВсе сеансы всех баз кластера
Перезагрузка WindowsОбновления ОС, зависла сама система, проблемы с драйвером ключаВсе сеансы плюс СУБД, если она на этой же машине

Любой из трёх вариантов обрывает сеансы. Несохранённые документы пропадут, открытые транзакции откатятся. Делайте это в нерабочее время или после предупреждения пользователей.

Если сервер СУБД стоит на той же машине, перезагрузка Windows затрагивает и его. Это главный довод в пользу аккуратной остановки 1С вручную, а не надежды на то, что Windows всё закроет сама.

Подготовка: предупредите пользователей и закройте вход в базы

Цель подготовки — чтобы к моменту остановки службы в кластере не осталось активной работы. Для этого нужны две блокировки в каждой информационной базе.

Блокировка через консоль кластера

  1. Откройте «Администрирование серверов 1С Предприятия».
  2. Разверните Центральные серверы 1С:Предприятия → <ваш сервер> → Кластеры → <кластер> → Информационные базы.
  3. Откройте свойства нужной базы. Введите логин и пароль администратора базы, если запросит.
  4. Включите флажок «Блокировка начала сеансов включена».
  5. Заполните «Начало» и «Конец» блокировки, «Сообщение» (его увидят пользователи) и «Код разрешения».
  6. Там же включите «Блокировка регламентных заданий включена».

Код разрешения нужен администратору. С ним можно войти в заблокированную базу, добавив к строке запуска параметр /UC<код>. Например, при коде reboot — /UCreboot.

💡 Ставьте время начала блокировки на 10–15 минут позже текущего. Типовые конфигурации на БСП показывают сеансам предупреждение заранее и сами завершают работу пользователей к назначенному времени.

Блокировка из самой программы

В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) то же самое делается без консоли: Администрирование → Обслуживание → Блокировка работы пользователей. Удобно, если у ответственного за базу нет прав администратора кластера.

Кого предупредить заранее

  • 📢 Пользователей — за день или хотя бы за час, с точным временем.
  • 🔄 Ответственного за обмены. Если обмен с сайтом или филиалом идёт по расписанию, его лучше переждать, а не рвать.
  • 🌐 Владельцев внешних интеграций, которые ходят в веб-сервисы и HTTP-сервисы публикации.

Как остановить службу агента сервера 1С

Когда сеансы закрыты, останавливайте службу. Именно служба агента запускает менеджер кластера (rmngr.exe) и рабочие процессы (rphost.exe), поэтому её остановка гасит весь кластер.

Через оснастку «Службы»

  1. Нажмите Win + R, введите services.msc.
  2. Найдите службу «Агент сервера 1С:Предприятия 8.3». Для 64-битного сервера в названии будет (x86-64).
  3. Правая кнопка → «Остановить». Дождитесь статуса «Остановлена».

Если на сервере несколько версий платформы, служб может быть две. Проверьте в свойствах путь к исполняемому файлу: в нём есть номер версии, например C:\Program Files\1cv8\8.3.24.1691\bin\ragent.exe.

Из командной строки и PowerShell

Точное системное имя службы видно в её свойствах, поле «Имя службы». Обычно это 1C:Enterprise 8.3 Server Agent (x86-64).

:: Остановка и запуск службы агента 1С
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
# Найти все службы 1С и перезапустить агент
Get-Service *1C*
Restart-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)"

Если сервер 1С работает на Linux

Порядок тот же, меняются только команды. С платформы 8.3.21 сервер устанавливается как служба systemd, имя юнита содержит номер версии. Сначала найдите его, потом перезапускайте:

systemctl list-units --type=service | grep 1cv8
sudo systemctl stop srv1cv8-8.3.24.1691@default
sudo systemctl start srv1cv8-8.3.24.1691@default
sudo systemctl status srv1cv8-8.3.24.1691@default

Номер версии в имени подставьте свой из вывода первой команды. Если служба не стартует, причину покажет journalctl -u с тем же именем юнита.

Если служба висит в состоянии «Останавливается» дольше 2–3 минут, проверьте в диспетчере задач, остались ли процессы ragent.exe, rmngr.exe, rphost.exe. Их можно завершить вручную, но только когда вы уверены, что пользователей в базах уже нет.

Управление кластером: консоль и утилита rac

Консоль администрирования подключается к агенту сервера по порту 1540. Менеджер кластера слушает 1541, рабочие процессы — диапазон портов, который задан в свойствах рабочего сервера (по умолчанию 1560:1591).

Как удалить оставшиеся сеансы в консоли

  1. В дереве кластера откройте узел «Сеансы».
  2. Отсортируйте по колонке с именем приложения. Фоновые задания видны отдельно от клиентских сеансов.
  3. Выделите сеансы → правая кнопка → «Удалить».

Если сеанс через несколько секунд появляется снова, его порождает регламентное задание или внешняя интеграция. Значит, блокировка регламентных заданий не включена или клиент подключается по веб-сервису.

Без графической консоли: rac

На серверах без рабочего стола или для скриптов удобна утилита rac. Она работает через сервер администрирования ras, который нужно запустить заранее (по умолчанию порт 1545):

cd "C:\Program Files\1cv8\8.3.24.1691\bin"
ras cluster --port=1545 localhost:1540

Дальше в другом окне:

rac localhost:1545 cluster list
rac localhost:1545 session list --cluster=<UUID кластера>
rac localhost:1545 session terminate --cluster=<UUID кластера> --session=<UUID сеанса>

Если на кластере заданы администраторы, добавьте --cluster-user и --cluster-pwd. Остальные параметры смотрите в справке: rac help session.

💡 ras можно зарегистрировать как отдельную службу Windows. Тогда при перезапуске сервера её тоже нужно остановить и поднять, иначе скрипты на rac начнут падать с ошибкой подключения.

Зависший rphost: перезапуск процесса вместо всего сервера

Типичная картина: один rphost.exe занял 10–20 ГБ памяти, пользователи на нём ждут по минуте на каждой операции, остальные работают нормально. Перезагружать сервер ради этого не нужно.

Как найти виновника

  1. В консоли откройте Рабочие серверы → <сервер> → Рабочие процессы.
  2. Посмотрите колонки с PID и занятой памятью.
  3. Найдите этот PID в диспетчере задач на вкладке «Подробности».
  4. В узле «Сеансы» проверьте, какие сеансы обслуживает этот процесс и кто их владельцы.

Как перезапустить процесс

  • 👥 Предупредите владельцев сеансов на этом процессе — их работа оборвётся.
  • 🛑 Завершите процесс rphost.exe с найденным PID в диспетчере задач.
  • 🔁 Менеджер кластера сам запустит новый рабочий процесс. Остальные сеансы продолжат работу.

Чтобы не ловить такие ситуации вручную, настройте автоматический перезапуск. В свойствах кластера есть поля «Интервал перезапуска» (в секундах), «Допустимый объем памяти» и «Интервал превышения допустимого объема памяти». Например, лимит 12 ГБ и интервал превышения 300 секунд: если процесс держит больше 12 ГБ дольше пяти минут, кластер заменит его новым.

Очистка сеансовых данных при перезапуске

Если после перезапуска службы зависания не уходят, а в журнале видны ошибки сеансовых данных, почистите их кеш. Делается это только при остановленной службе.

  1. Остановите службу агента.
  2. Откройте каталог кластера. При установке службой по умолчанию это C:\Program Files\1cv8\srvinfo\reg_1541\.
  3. Удалите папки snccntx<GUID> (их может быть несколько).
  4. Запустите службу.

Не удаляйте файл 1CV8Clst.lst в том же каталоге. В нём хранится реестр кластера: список баз, рабочих серверов, администраторов. Без него кластер придётся настраивать заново. Перед чисткой скопируйте весь srvinfo в отдельную папку.

Порядок запуска после перезагрузки сервера 1С

Останавливать сервисы нужно сверху вниз, запускать — снизу вверх. Каждый следующий слой зависит от предыдущего.

ШагЧто запускаетсяКак проверить
1СУБД: MSSQLSERVER или служба PostgreSQLПодключение из SQL Management Studio или psql
2Менеджер лицензий HASP, если используются аппаратные ключиКлюч виден в веб-интерфейсе менеджера
3Агент сервера 1СКонсоль открывает кластер, видны базы
4Сервер администрирования ras, если нуженrac localhost:1545 cluster list отвечает
5Веб-сервер с публикацией (IIS или Apache)Публикация открывается в браузере

Если 1С стартует раньше SQL, первые подключения к базе падают с ошибкой СУБД. После загрузки Windows порядок служб не гарантирован. Поставьте службе агента тип запуска «Автоматически (отложенный запуск)» — она стартует позже остальных автоматических служб.

После старта службы снимите в каждой базе обе блокировки: начала сеансов и регламентных заданий. Об этом забывают чаще всего, и утром бухгалтерия звонит с вопросом, почему не пускает в программу.

Проверка после перезапуска сервера 1С
Выполнено: 0 / 7

Ошибки после перезапуска сервера 1С и что с ними делать

Большинство проблем после перезагрузки сервера связаны не с самой 1С, а с окружением: портами, учётной записью службы, порядком старта.

Диагностика: выберите симптом

Если ни один вариант не подошёл, откройте «Просмотр событий» Windows, журнал «Приложение». Служба агента пишет туда причину отказа при старте, и текст ошибки обычно указывает на конкретную проблему.

Частые вопросы

Можно ли перезагрузить сервер 1С по расписанию?
Да. Создайте задачу в Планировщике заданий Windows, которая запускает bat-файл с net stop и net start для службы агента. Блокировку сеансов на это время задайте заранее в свойствах баз, указав начало и конец.
Нужно ли перезагружать сервер 1С после обновления конфигурации?
Нет. Обновление конфигурации касается одной базы и выполняется в Конфигураторе. Перезапуск службы нужен при обновлении платформы на сервере.
Как часто перезагружать сервер 1С профилактически?
Обязательного графика нет. Если рабочие процессы регулярно разрастаются по памяти, лучше настроить автоматический перезапуск rphost в свойствах кластера, чем перезагружать весь сервер.
Слетит ли лицензия после перезагрузки сервера?
Программная лицензия сервера привязана к параметрам оборудования и после обычной перезагрузки остаётся активной. Сбои возможны, если одновременно менялось железо, сетевые адаптеры или виртуальная машина переехала на другой хост.
Что будет с документом, который пользователь проводил в момент остановки?
Транзакция откатится, документ останется в том состоянии, которое было до начала проведения. Пользователю нужно открыть его заново и провести ещё раз.