Завершение сеанса пользователя в 1С: от штатного выхода до принудительного сброса
Содержание
«Закрыть сессию» и «закрыть окно 1С» — не одно и то же. Пользователь нажал крестик, ушёл домой, а сеанс в списке активных висит ещё минуты, а иногда и часы. Пока он висит — занята лицензия, база не даёт начать обновление, а при разрыве связи может остаться незакрытая транзакция.
Разберём, как корректно завершить сеанс и как снять зависший, когда обычный выход не сработал. Способ зависит от того, какая у вас база — файловая или клиент-серверная — и от того, есть ли доступ к серверу 1С и к консоли администрирования.
Принудительное завершение чужого сеанса — операция администратора. Пользователь в этот момент теряет несохранённые данные. Перед принудительным сбросом убедитесь, что человек действительно не работает, а сеанс именно завис.
Короткая карта способов, чтобы сразу выбрать свой:
| Способ | Какая база | Когда применять |
|---|---|---|
| Блокировка работы пользователей | любая типовая | плановое обновление, техобслуживание |
| Консоль администрирования | клиент-серверная | завис один сеанс, есть доступ к серверу |
Команда rac | клиент-серверная | нет консоли, есть командная строка/SSH |
Удаление 1Cv8.1CL | файловая | все вышли, а база пишет «занята» |
| Снятие процесса по RDP | терминальный сервер | завис 1cv8.exe на удалёнке |
KILL в SQL Server | SQL-база | крайняя мера, сервер 1С не отвечает |
Почему сеансы остаются открытыми и чем это грозит
Сеанс не закрывается мгновенно по нескольким причинам:
- 🔌 Обрыв связи. Пропал Wi-Fi, уснул ноутбук, оборвался RDP — клиент «умер», но сервер ещё какое-то время считает сеанс живым и ждёт, пока сработает таймаут.
- 🧊 Зависшее окно. 1С не отвечает, процесс
1cv8.exeвисит в памяти. Выхода не было — значит, и сеанс сервер не закрыл. - 🔒 Открытая транзакция. Пользователь проводил документ или выполнялась длительная операция, и соединение прервалось в середине.
- 🧮 Фоновые задания. Регламентные и фоновые задания — это тоже сеансы. Они живут своей жизнью и завершаются по своему расписанию.
Чем это мешает:
- занятые лицензии — на базовых и небольших клиентских лицензиях каждый зависший сеанс это минус одно рабочее место;
- блокировка обновления — платформа не даст обновить конфигурацию или выполнить реструктуризацию, пока в базе есть активные сеансы;
- блокировки данных — незакрытая транзакция держит объекты, и у других пользователей «не проводится» документ;
- риск при выключении сервера — если гасить службу с живыми сеансами, оборвутся чужие транзакции.
Штатный способ: завершить работу пользователей из самой программы
Самый безопасный вариант — не «убивать» сеансы снаружи, а попросить платформу закрыть их изнутри. В типовых конфигурациях на базе Библиотеки стандартных подсистем (БП 3.0, ЗУП 3.1, УТ 11 и другие) для этого есть режим блокировки работы.
- Зайдите под пользователем с правами администратора.
- Откройте
Администрирование → Обслуживание → Блокировка работы пользователей(в части конфигураций пункт называется «Завершение работы пользователей»; расположение может немного отличаться по релизам). - Задайте время, после которого сеансы будут закрыты, и при необходимости текст предупреждения.
- Включите блокировку.
После этого активные пользователи получают сообщение и программа завершает их сеансы к назначенному времени. Этот способ корректно закрывает транзакции и чаще всего применяется перед обновлением или техобслуживанием.
Посмотреть, кто сейчас в базе, можно через список активных пользователей: главное меню (значок со стрелкой вниз слева вверху) → Все функции → Стандартные → Активные пользователи. Форма показывает имя, компьютер, приложение и время начала сеанса. Из этой формы в режиме 1С:Предприятие завершить чужой сеанс нельзя — только посмотреть. Для принудительного завершения нужна консоль администрирования или команды сервера (ниже).
Если пункт «Все функции» не отображается, включите его: главное меню → Сервис → Параметры → Отображать команду «Все функции».
Клиент-серверная база: консоль администрирования и команда rac
В клиент-серверном варианте сеансы живут на сервере 1С, и управляет ими администратор кластера.
Через консоль администрирования (оснастка «Администрирование серверов 1С Предприятия»):
- Откройте консоль, разверните
Central server → Кластер → ваша информационная база. - Выберите ветку
Сеансы. - Найдите нужную строку по имени пользователя и компьютеру, нажмите правой кнопкой →
Удалить.
Сеанс закроется принудительно. Если консоль не видит кластер или оснастка не открывается, часто помогает перерегистрация библиотеки администрирования: от имени администратора выполнить regsvr32 radmin.dll из каталога bin установленной платформы (версия библиотеки должна совпадать с версией сервера).
Через утилиту rac — когда консоли под рукой нет, а есть доступ к серверу по SSH или в командной строке. Утилита лежит в каталоге bin платформы.
rem 1. узнаём идентификатор кластера
rac cluster list
rem 2. смотрим список сеансов по базе
rac session list --cluster=<идентификатор-кластера>
rem 3. завершаем конкретный сеанс по его идентификатору
rac session terminate --cluster=<идентификатор-кластера> --session=<идентификатор-сеанса>
Идентификаторы (длинные строки вида 12345678-90ab-...) берутся из вывода предыдущих команд. Если на кластере включена аутентификация администратора, добавьте параметры --cluster-user и --cluster-pwd. Полный список параметров — в справке: rac help и rac session help. Не используйте подкоманды, в которых не уверены.
Команда rac session terminate обрывает сеанс немедленно. Несохранённые данные пользователя пропадут, открытая транзакция откатится. Применяйте к сеансам, которые реально зависли.
Файловая база: снимаем блокировку через служебные файлы
У файловой базы нет сервера 1С, и список сеансов хранится прямо в каталоге базы. Если все пользователи вышли, а 1С всё равно пишет, что база занята, причина — в служебных файлах блокировки.
Порядок действий:
- Убедитесь, что никто не работает
с базой: обойдите рабочие места или проверьте, что процессы
1cv8.exeни у кого не запущены. - Сделайте копию каталога базы целиком (это и есть ваша страховка).
- В каталоге информационной базы (там, где лежит
1Cv8.1CD) найдите и удалите файл блокировки сеансов1Cv8.1CL. - Если в каталоге есть служебная папка
1Cv8.cdn(управляемые блокировки) и база по-прежнему занята — её содержимое тоже можно очистить при полностью свободной базе.
После удаления этих файлов платформа создаст их заново при следующем запуске.
Удалять 1Cv8.1CL можно только тогда, когда с базой точно никто не работает. Если удалить файл при активных пользователях, можно повредить данные. Сам файл 1Cv8.1CD (это и есть база) не трогайте никогда.
Для сетевой файловой базы причина «зависания» бывает и внешней: кто-то из пользователей держит открытый сеанс на своём компьютере, хотя визуально окно закрыто. Проверьте по списку активных пользователей или просто пройдитесь по рабочим местам.
Отключение зависшего сеанса по RDP и терминальному серверу
Когда пользователи работают через удалённый рабочий стол, зависший 1cv8.exe удобно снять прямо на терминальном сервере.
- На сервере откройте
Диспетчер задач(комбинацияCtrl + Shift + Esc). - Перейдите на вкладку
Пользователи— вы увидите все RDP-сеансы. - Разверните нужного пользователя, найдите процесс
1cv8.exe, завершите его.
Если зависло так, что процесс не снимается, можно отключить (Отключить) или завершить (Выйти) весь сеанс пользователя. Но это закроет ему все программы в сеансе, не только 1С.
Снятие процесса 1cv8.exe для клиент-серверной базы не удаляет сеанс на сервере 1С — он ещё повисит до таймаута. Чтобы убрать его сразу, дополнительно завершите сеанс через консоль администрирования или rac.
Полезно заранее знать, под какой учётной записью Windows работает нужный человек — так вы не снимете чужой сеанс. Имя Windows-пользователя видно и на вкладке Пользователи, и в списке активных пользователей 1С.
Если пользователей на терминальном сервере много, удобнее ориентироваться не по имени процесса, а по колонке с именем учётной записи: отсортируйте вкладку Пользователи по имени, найдите нужного сотрудника и разверните его сеанс — внутри будет и 1cv8.exe, и остальные его программы. Снимать имеет смысл именно 1cv8.exe, а не весь сеанс, пока не убедитесь, что по-другому не выходит.
SQL как крайняя мера и почему ей лучше не пользоваться
Иногда советуют закрыть сеанс через SQL — найти соединение в базе SQL Server и снять его командой KILL. Технически это возможно, но это худший из способов, и прибегать к нему стоит в последнюю очередь.
Почему:
- 🧩 SQL-соединение и сеанс 1С — не одно и то же. Снятие соединения на уровне СУБД не гарантирует корректного закрытия сеанса на сервере 1С — он может «подвиснуть» ещё сильнее.
- 🔄 Откат незавершённой транзакции средствами СУБД может растянуться надолго и нагрузить сервер.
- 🔒 Можно оборвать служебное соединение и получить проблемы со всей базой.
Если вы всё же диагностируете нагрузку на уровне SQL Server (например, видите долгую блокировку через sp_who2), сначала попробуйте закрыть сеанс штатно — через rac или консоль. SQL-инструменты оставьте для случая, когда сервер 1С уже не отвечает вовсе, и действуйте вместе с администратором СУБД.
Сопоставить SQL-соединение с конкретным пользователем 1С «вслепую» сложно: имена в СУБД технические, и по ним не видно, кто именно работает. Это ещё одна причина сначала идти в консоль администрирования, где сеанс подписан понятным именем пользователя и компьютера, и только потом — на уровень базы данных.
Если сеанс не закрывается ни одним способом
1cv8.exe, и загляните в список фоновых заданий. Разовое фоновое задание завершится само.1cv8.exe висит в памяти. Найдите и завершите этот процесс, затем повторите. Удалять файл, перезагружая сервер «на всякий случай», не нужно.rphost. Дайте серверу 1С минуту на штатную очистку; снимать rphost вручную стоит, только если он явно завис.Крайняя мера для серверной базы — перезапуск службы сервера 1С (1C:Enterprise 8.x Server Agent). Он гарантированно закроет все сеансы, но остановит работу всех пользователей этой базы разом и оборвёт их транзакции. Делайте это только в технологическое окно и предупредив людей.
Профилактика: настройки, которые убирают зависшие сеансы
Чтобы не ловить зависшие сеансы вручную, настройте автоматическое завершение.
Ключевая настройка — время пассивного и простоя сеанса в свойствах информационной базы (задаётся в консоли администрирования или командой rac infobase update). После неё разорванные и забытые сеансы закрываются автоматически через заданный интервал, и ручной сброс требуется гораздо реже.
Для файловых баз профилактика проще: приучите пользователей именно закрывать программу, а не сворачивать окно и уходить, и не держите на одной файловой базе больше нескольких одновременных пользователей — для этого есть клиент-серверный вариант.
Частые вопросы
Чем «Завершить работу пользователей» отличается от удаления сеанса в консоли?
rac обрывает сеанс немедленно, без предупреждения. Первое — для планового обновления, второе — для зависшего сеанса.Закрыл окно 1С, а сеанс всё равно висит в списке — это нормально?
Можно ли удалить файл `1Cv8.1CL` при работающих пользователях?
Фоновое задание держит сеанс — как быть?
Снял процесс 1С на терминальном сервере, а в консоли сеанс остался. Почему?
1cv8.exe сеанс закроется по таймауту либо удалите его дополнительно через консоль или rac.