Администрирование · 11 мин
Как удалить зависшее соединение в 1С
Как найти и удалить зависшее соединение в 1С через консоль кластера, конфигуратор и командную строку. Способы разрыва сеансов без остановки сервера.
Зависшее соединение — типичная проблема в клиент-серверной 1С: пользователь давно закрыл программу или его компьютер выключился, а сеанс в кластере продолжает числиться активным. Такие «мертвые» соединения блокируют регламентные операции, мешают обновлению конфигурации (нужен монопольный режим), удерживают лицензии и иногда держат блокировки данных, из-за которых у других пользователей возникают ошибки.
Причины зависания обычно простые: аварийное завершение клиента, обрыв сети, перезагрузка рабочей станции без выхода из 1С, ошибки в работе rphost. Важно понимать разницу между соединением и сеансом: соединение — это техническая связь процесса с кластером, а сеанс — пользовательский контекст. Удаление сеанса обычно приводит и к разрыву связанного соединения, поэтому чаще работают именно с сеансами.
Ниже разобраны рабочие способы удаления зависших соединений: через консоль кластера, конфигуратор, командную строку и программно. Отдельно описано, как отличить зависший сеанс от активного, чтобы случайно не выкинуть работающего пользователя.
Как распознать зависшее соединение, а не активный сеанс
Прежде чем что-то удалять, убедитесь, что соединение действительно зависшее. Признаки: в колонке «Прочитано» и «Записано» долгое время нулевые или неизменные значения, колонка «Время последней активности» показывает давнюю дату, а пользователь подтверждает, что программа у него закрыта. Ещё один косвенный признак — компьютер пользователя выключен или недоступен по сети.
Не ориентируйтесь только на фразу пользователя «я всё закрыл»: иногда процесс 1cv8.exe остаётся в диспетчере задач после закрытия окна. Попросите пользователя проверить диспетчер задач или завершите процесс удалённо. Если процесс жив — это не зависшее соединение, а реально работающий клиент.
Сравните время последней активности с текущим — разница в десятки минут при заявленном закрытии клиента указывает на зависание
Если счётчики не растут, соединение не выполняет работу
Проверьте доступность машины по сети, прежде чем удалять сеанс
Проверьте диспетчер задач на рабочей станции — возможно, удалять ничего не нужно
Удаление соединения через консоль администрирования кластера
Основной способ для клиент-серверного варианта — консоль «Администрирование серверов 1С:Предприятия». Она устанавливается вместе с сервером 1С и доступна на машине администратора. Откройте консоль, разверните нужный кластер, найдите информационную базу и перейдите на вкладку «Сеансы» — она удобнее, чем «Соединения», потому что показывает пользователя, приложение и время активности.
Найдите проблемную строку, кликните правой кнопкой мыши и выберите «Удалить». Сеанс завершится принудительно, связанное соединение будет разорвано, а занятая лицензия освободится. Если зависших сеансов несколько, можно выделить их с зажатой клавишей Ctrl и удалить пакетом. Для удаления потребуются права администратора кластера или информационной базы.
- 1Откройте консоль «Администрирование серверов 1С:Предприятия» и подключитесь к нужному кластеру
- 2Разверните ветку с информационной базой и перейдите на вкладку «Сеансы»
- 3Найдите зависший сеанс по пользователю, компьютеру и времени последней активности
- 4Кликните правой кнопкой и выберите «Удалить», подтвердите действие
- 5Проверьте, что строка исчезла из списка, а лицензия освободилась
Если консоль показывает ошибку подключения к кластеру, проверьте, что служба агента сервера 1С запущена, а порт агента (по умолчанию 1540) доступен с вашей машины. Также убедитесь, что версия консоли совпадает с версией сервера — консоль от другой версии платформы может не подключиться или работать некорректно.
Завершение сеансов через конфигуратор
Если консоли кластера под рукой нет, но есть доступ к конфигуратору, откройте меню «Администрирование» → «Активные пользователи». В списке отображаются сеансы с указанием пользователя, режима работы и времени начала. Выделите зависший сеанс и нажмите «Удалить» — эффект тот же, что и в консоли кластера.
Ограничение способа: конфигуратор показывает сеансы только той базы, к которой вы подключены, и не даёт детальной технической информации о соединениях. Кроме того, если база работает в файловом режиме, список активных пользователей формируется иначе, и «зависшие» записи там часто связаны с оставшимися файлами блокировок, а не с реальными сеансами.
Удаление соединения через командную строку (rac)
Для автоматизации и работы без графической консоли используется утилита rac из каталога bin сервера 1С. Она позволяет получить список сеансов и завершить конкретный по его идентификатору. Это удобно, когда администратор работает по SSH или нужно встроить очистку в скрипт регламентного обслуживания.
rac session --cluster=<ID_кластера> list --infobase=<ID_базы>
rac session terminate --cluster=<ID_кластера> --session=<ID_сеанса>Сначала получите список сеансов командой list и найдите нужный по пользователю и времени бездействия, затем выполните terminate с его идентификатором. Идентификаторы кластера и базы можно посмотреть в консоли администрирования или получить командами rac cluster list и rac infobase summary list. Учтите, что синтаксис rac зависит от версии платформы — сверяйтесь со справкой rac help для вашей сборки.
Программное завершение сеансов и профилактика зависаний
Встроенный язык 1С позволяет завершать сеансы программно: через функции работы с кластером (COM-объект V83.COMConnector или административные интерфейсы) или простыми средствами внутри самой базы. Например, регламентное задание может проверять время бездействия сеансов и завершать те, что простаивают дольше заданного порога. Это снижает количество ручной работы администратора.
Профилактика не менее важна, чем разовое удаление. В свойствах информационной базы в консоли кластера есть параметры «Интервал перезапуска» и «Допустимый объём памяти» рабочих процессов, а также настройка времени завершения сеансов. Разумная настройка таймаутов позволяет кластеру самому очищать мёртвые соединения, не дожидаясь вмешательства. Также полезно настроить завершение сеансов по расписанию перед регламентными операциями — обновлением, резервным копированием.
Как выбрать действие
Риски: что может пойти не так при принудительном удалении
Принудительное удаление сеанса — это аварийное завершение для клиента. Если вы ошиблись и удалили активный сеанс, у пользователя закроется программа, а несохранённые данные (незаписанный документ, набранный текст) будут потеряны. Поэтому перед удалением всегда сверяйте время последней активности и при возможности предупреждайте пользователя.
Отдельный риск — удаление сеанса, который выполняет длительную транзакцию: обрыв может оставить незавершённую операцию, которую СУБД откатит, но это займёт время и временно увеличит нагрузку. Не удаляйте сеансы фоновых заданий без понимания, что именно они выполняют: прерывание регламентного обмена или расчёта может потребовать повторного запуска и контроля результата.
Проверка результата и типичные ошибки
После удаления обновите список сеансов: строка должна исчезнуть. Если целью было получение монопольного доступа — попробуйте установить монопольный режим, он должен включиться без ошибки «обнаружены активные соединения». Если освобождалась лицензия — проверьте счётчик лицензий в консоли кластера или попытайтесь войти под новым пользователем.
Как проверить результат
Зависшей строки нет, остальные сеансы на месте
Сеанс появился снова — клиент переподключается, ищите живой процесс на рабочей станции
Устанавливается без ошибок
Ошибка об активных соединениях — остались незамеченные сеансы или фоновые задания
Счётчик занятых лицензий уменьшился
Лицензия не освободилась — проверьте, не держит ли её другой сеанс того же пользователя
Часто задаваемые вопросы
Можно ли удалить зависшее соединение без прав администратора?
Нет. Удаление сеансов — административная операция: нужны права администратора кластера, администратора информационной базы или роль с правом «Администрирование» внутри базы. Обычный пользователь может завершить только свой собственный сеанс, просто закрыв программу.
Сколько времени кластер сам удаляет зависшее соединение?
Точного универсального значения нет: кластер обнаруживает обрыв по таймаутам, которые зависят от настроек и сетевого окружения. На практике «мёртвые» сеансы могут висеть от нескольких минут до часа и дольше. Если это критично, настройте параметры завершения сеансов в свойствах базы или удаляйте вручную.
Чем удаление сеанса отличается от удаления соединения?
Сеанс — логическая сущность пользователя, соединение — техническая связь процесса с кластером. Удаление сеанса влечёт разрыв связанных соединений и освобождает лицензию, поэтому в большинстве случаев работать нужно именно с сеансами. Прямое удаление соединений требуется редко, например при диагностике.
Что делать, если зависший сеанс не удаляется?
Если удаление из консоли не срабатывает или сеанс появляется снова, проверьте, не переподключается ли клиент автоматически, и завершите процесс 1cv8.exe на рабочей станции. В крайнем случае помогает перезапуск конкретного рабочего процесса rphost, обслуживающего сеанс, но это затронет и других пользователей этого процесса — планируйте такое действие на нерабочее время.
Как удалить все сеансы сразу перед обновлением конфигурации?
В консоли кластера откройте свойства информационной базы и установите блокировку сеансов с сообщением для пользователей, затем удалите оставшиеся сеансы списком. Альтернатива — из конфигуратора: «Администрирование → Блокировка установки соединений». После обновления не забудьте снять блокировку, иначе пользователи не смогут войти.
Почему после удаления сеанса пользователь не может войти снова?
Чаще всего причина не в удалении, а в установленной блокировке соединений или в том, что лицензия ещё удерживается другим сеансом того же пользователя. Проверьте список сеансов, состояние блокировки в свойствах базы и счётчик лицензий. Также убедитесь, что на рабочей станции не остался старый процесс 1cv8.exe.
Что важно запомнить
Зависшее соединение удаляется через сеансы: консоль кластера, конфигуратор или утилита rac. Всегда проверяйте время последней активности, чтобы не выкинуть работающего пользователя, и никогда не перезапускайте службу сервера ради одного сеанса. При повторяющихся зависаниях настройте таймауты и регламентную очистку сеансов.