Как снять блокировку зависшего сеанса в 1С 8.3

Снять блокировку сеанса 1С: через консоль администрирования сервера, список активных пользователей, диспетчер задач и рестарт rphost. Когда какой способ безопасен.

Снять блокировку сеанса 1С приходится, когда пользователь оставил открытую базу на ночь, а утром коллеги получают «Конфликт блокировок» при попытке провести документ. Зависший сеанс держит блокировки в СУБД, мешает закрытию месяца и выгрузке отчётов. В 1С 8.3 есть четыре способа снятия — от безопасных штатных до радикального рестарта рабочих процессов сервера.

Что значит «зависший сеанс»

Сеанс 1С — это активное подключение пользователя к информационной базе. Каждый сеанс занимает память на сервере (или на клиенте для файловой базы), удерживает блокировки на объектах, с которыми работает (открытый документ, запущенная обработка проведения, табличный документ).

Сеанс становится зависшим, если:

  • обработка зациклилась и не отвечает на действия пользователя;
  • клиент потерял связь с сервером (выключили ноутбук, отвалился VPN);
  • пользователь закрыл окно крестиком, но процесс остался;
  • длительная транзакция (проведение огромного документа, переучёт остатков) идёт часами и держит блокировки;
  • в технологической операции случилось зависание в коде.
Сопутствующее сообщение у других пользователей
«Конфликт блокировок при выполнении транзакции: превышено максимальное время ожидания предоставления блокировки. Пользователь: Иванов И.И. Сеанс: 42»

Подготовка: определите проблемный сеанс

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

В клиент-серверной 1С откройте консоль администрирования: Пуск → 1С:Предприятие 8.3 → Дополнительно → Администрирование серверов 1С Предприятия. Раскройте кластер → информационные базы → нужная база → Сеансы или Соединения. Видны номера, имена пользователей, время последней активности, IP-адреса.

Кандидаты на завершение — сеансы с длинным «временем последнего вызова» (час и больше) и состоянием «Висит» или «Ожидает».

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

Самый управляемый и безопасный способ для клиент-серверной базы.

  1. Откройте консоль: Администрирование серверов 1С Предприятия.
  2. В дереве: Central servers → имя сервера → Кластеры → Local cluster → Информационные базы → нужная база.
  3. Щёлкните по узлу «Сеансы» — справа появится таблица сеансов.
  4. Найдите проблемный сеанс (по имени пользователя, номеру или времени активности).
  5. Правой кнопкой → «Удалить».
  6. Подтвердите удаление.

Аналогично можно удалить «Соединение» в одноимённом узле — оно отвечает за подключение клиента к рабочему процессу. На практике достаточно удалить сеанс, соединение разорвётся следом.

Способ 2: через список активных пользователей в 1С

Работает и для файловой, и для серверной базы — если вы можете зайти в неё сами под учёткой с правами администратора.

  1. Зайдите в 1С под пользователем с полными правами (роль «Полные права»).
  2. Пройдите по меню: Главное меню → Все функции → Стандартные → Активные пользователи. В Бухгалтерии 3.0 — Администрирование → Активные пользователи.
  3. В списке найдите нужного пользователя.
  4. Выделите строку и нажмите «Завершить сеанс» (или правая кнопка → Завершить сеанс).
  5. Подтвердите завершение.

Способ удобен тем, что не требует доступа к серверу. Минус: если сеанс заблокировал текущий, для управления сеансами может не хватить прав или сам список откроется медленно.

Способ 3: закрытие процесса в файловой базе

Если база файловая и пользователь сидит на терминальном сервере или собственном ПК, штатных средств снятия сеанса нет. Сеанс — это процесс клиента.

  1. Подключитесь к ПК пользователя (физически, через RDP или TeamViewer).
  2. Откройте диспетчер задач: Ctrl+Shift+Esc.
  3. Найдите процесс 1cv8.exe или 1cv8c.exe (толстый/тонкий клиент).
  4. Если процессов несколько — определите нужный по имени пользователя или по времени запуска (вкладка «Подробности»).
  5. Правой кнопкой → «Снять задачу».

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

Способ 4: рестарт рабочих процессов rphost

Крайняя мера для серверной базы, когда сеанс не удаляется штатно или висит сам процесс rphost.exe.

  1. Откройте консоль администрирования серверов 1С.
  2. В кластере раскройте «Рабочие процессы».
  3. Найдите процесс rphost с висящим сеансом (виден в свойствах процесса — список сеансов).
  4. Правой кнопкой → «Удалить» (или дождитесь, когда процесс перезапустится автоматически после удаления).

Если поведение системы совсем некорректное — рестарт службы 1C:Enterprise 8.3 Server Agent через services.msc. Это убьёт все сеансы во всех базах кластера, но гарантированно снимет любые блокировки. Используется только в безвыходной ситуации, например ночью на регламентном окне.

Что делать при проблемах

Если после завершения сеанса блокировки в СУБД остались — это поведение рабочего процесса, который не отпустил соединение к БД. Подождите 30–60 секунд: сервер 1С освободит ресурсы. Если не помогает — рестарт rphost.

Если сеанс «удаляется», но появляется снова с тем же номером — пользователь автоматически переподключается. Включите блокировку сеансов: Администрирование серверов 1С → информационная база → свойства → «Блокировка начала сеансов включена», указать код разрешения. Новые подключения будут отклоняться, кроме тех, кто знает код.

Для файловой базы регулярные подвисания часто связаны с антивирусом, который сканирует файл 1Cv8.1CD в момент записи. Добавьте каталог базы в исключения антивируса.

Регламент: как не доводить до зависших сеансов

  • включите автоматическое завершение неактивных сеансов в свойствах информационной базы (параметр «Время засыпания пассивного сеанса», обычно 1200–3600 секунд);
  • настройте «Время завершения спящего сеанса» — после засыпания пройдёт ещё столько секунд, и сеанс будет автоматически удалён;
  • мониторьте список сеансов через консоль администрирования или скриптом RAS/RAC;
  • для долгих операций используйте фоновые задания вместо интерактивных обработок;
  • настройте регламентные перезапуски rphost (параметр «Перезапускать через» в свойствах рабочего процесса) — например, каждые 24 часа;
  • отделяйте сервер 1С от сервера СУБД — это снижает кросс-влияние подвисаний.

FAQ

Потеряются ли данные пользователя при завершении сеанса?

Завершение сеанса откатывает текущую незавершённую транзакцию. Несохранённые данные (открытый, но не записанный документ) теряются. Уже записанные документы остаются на месте. Поэтому перед массовым завершением сеансов лучше предупредить пользователей.

Какой период «зависания» считается критичным?

«Время последнего вызова» больше 10–15 минут при отсутствии обоснованной долгой операции — повод присмотреться. Час и больше — почти гарантированно зависший сеанс. Если в это время идёт штатное закрытие месяца на УТ/ERP — это нормально, оно может идти часами.

Как узнать, какой документ блокирует сеанс?

В консоли администрирования откройте свойства сеанса → вкладка «Заблокированные объекты». Видно ID объекта и тип. Для серверной базы можно посмотреть и средствами СУБД: запросы к sys.dm_tran_locks в MS SQL или pg_locks в PostgreSQL.

Можно ли завершить сеанс без захода на сервер?

Можно — через утилиту rac.exe (Remote Administration Client). Команда вида: rac session terminate --cluster=ID --session=N. Удобно для скриптов мониторинга и автоматического убийства зависших сеансов.

Что делать, если завершение через консоль не помогает?

Сеанс находится в состоянии «Удаляется», но не уходит. Подождите 1–2 минуты — иногда сервер 1С чистит состояние с задержкой. Если не помогло, рестарт rphost через консоль администрирования. В крайнем случае — рестарт службы агента сервера 1С.

Безопасно ли убивать процесс 1cv8.exe через диспетчер задач?

Для файловой базы — это единственный быстрый способ. Несохранённые данные потеряются, но файл базы не повредится — платформа использует журналирование и атомарные операции. Для клиент-серверной убивать 1cv8.exe на клиенте безопасно, но rphost.exe на сервере — только через консоль или RAS.

Как настроить автозавершение неактивных сеансов?

Администрирование серверов 1С → нужная база → свойства. Параметры: «Время засыпания пассивного сеанса» (через сколько секунд сеанс перейдёт в режим ожидания) и «Время завершения спящего сеанса» (через сколько после засыпания будет удалён). Типовая настройка: 1200 и 86400 секунд.

Алексей Герзанов aka Gerzoid
Алекс Гезанов

Работаю в сервисном центре по ремонту и обслуживанию бытовой техники. За более чем 10 лет трудовой деятельности, я сталкивался с решением большого количества проблем в работе ОС Windows, периферийных устройств, бытовой техники, игровых консолей Playstation и т. д.

Добавить комментарий