Принудительное завершение сеансов пользователей в 1С 8.3
Содержание
Пользователь ушёл домой, не закрыв 1С, а вам нужно обновить конфигурацию или сделать резервную копию — база занята, монопольный доступ получить нельзя. Или сеанс завис после обрыва связи и «висит» в кластере, держа блокировки. В клиент-серверном варианте такой удалённый сеанс завершают на стороне сервера, а не на рабочем месте пользователя.
Быстрый ответ: открыть консоль Администрирование серверов 1С Предприятия, найти базу → Сеансы, щёлкнуть по нужному сеансу правой кнопкой и выбрать Удалить. Если консоли нет — те же действия делает утилита rac из командной строки. Ниже — когда какой способ применять, как посмотреть список сеансов, завершить один по идентификатору и что делать, если сеанс не удаляется.
Любое принудительное завершение обрывает работу пользователя: несохранённые данные в открытых формах и незаписанные документы теряются. По возможности сначала попросите человека выйти штатно.
Чем отличается сеанс от соединения
В клиент-серверной 1С работают два разных объекта.
- 🧑💻 Сеанс — активный пользователь, который вошёл в базу: за ним закреплены имя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание).
- 🔌 Соединение — низкоуровневый канал между клиентом и рабочим процессом сервера. У одного сеанса бывает несколько соединений.
Для задачи «выгнать пользователя из базы » завершают именно сеанс. Соединения трогают реже — когда сеанс уже удалён, а канал почему-то остался.
Завершение требуется в типичных случаях:
- Нужен монопольный доступ для обновления конфигурации, загрузки
.dtили тестирования и исправления базы. - Сеанс завис после обрыва сети или аварийного закрытия клиента и держит блокировки.
- Пользователь занял документ или объект, а его нет на месте.
Сеансом считается не только человек за клиентом. Фоновые и регламентные задания, веб-клиент опубликованной базы, внешние подключения через COM — всё это тоже сеансы в кластере. Поэтому «лишний» сеанс, мешающий монопольному доступу, иногда оказывается не пользователем, а зависшим фоновым заданием. Завершают его теми же средствами.
Завершение сеанса в консоли администрирования серверов
Это штатный способ для клиент-серверной базы. Нужна установленная компонента «Администрирование сервера 1С:Предприятия» и права администратора кластера.
- Запустите оснастку:
Пуск → 1С Предприятие 8.3 → Дополнительно → Администрирование серверов 1С Предприятия(на 64-разрядной платформе — вариант x86-64). - Разверните дерево:
<центральный сервер> → <кластер> → Информационные базы → <ваша база> → Сеансы. - В правой части появится список сеансов: номер, пользователь, приложение, компьютер, время начала и последней активности.
- Выделите нужную строку (или несколько с
Ctrl), щёлкните правой кнопкой и выберитеУдалить.
Так же завершается конкретный сеанс по его идентификатору: в списке видны номер и уникальный ключ сеанса, по ним легко найти «виновника» блокировки. Рядом есть узел Соединения — если после удаления сеанса соединение осталось, его удаляют там же.
Чтобы во время обновления никто не зашёл заново, в свойствах информационной базы включите Блокировка начала сеансов и задайте код разрешения. Новые входы прекратятся, а вы спокойно завершите оставшиеся.
Если кластер защищён паролем администратора, консоль попросит его при подключении к серверу. Пароль администратора кластера нигде не восстанавливается — если он утерян, остаётся остановить службу агента и восстановить рабочий файл кластера 1CV8Clst.lst из резервной копии либо обратиться к администратору сервера. Пересоздавать кластер с нуля не нужно.
Отключение сеансов через утилиту rac из командной строки
Когда графической консоли нет (часто на Linux-серверах) или действия нужно выполнить скриптом, используют клиент администрирования rac. Он лежит в каталоге bin платформы, например C:\Program Files\1cv8\<версия>\bin\rac.exe или /opt/1cv8/x86_64/<версия>/rac.
Для работы rac рядом должен быть запущен сервер администрирования ras (как служба или вручную). Клиент обращается к ras, а тот — к агенту кластера.
Порядок действий:
- Узнайте идентификатор кластера:
В выводе скопируйте значениеrac cluster listcluster(длинный UUID). - Посмотрите активные сеансы:
У каждого сеанса будет свойrac session list --cluster=<uuid-кластера>session(тоже UUID), имя пользователя и приложение. - Завершите нужный сеанс по его идентификатору:
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Соединения смотрят и разрывают командами rac connection list и rac connection disconnect с теми же параметрами кластера.
Точный набор параметров зависит от версии платформы. Если сомневаетесь в ключе — выполните rac help или rac session help: справка покажет доступные команды для вашего релиза. Подкоманды наугад не подбирайте.
Как найти сеанс, который держит базу
Прежде чем кого-то завершать, стоит убедиться, что мешает именно он. Иначе легко выгнать не того и прервать чужую работу зря.
Ориентиры в консоли Администрирование серверов 1С:
- в списке
Сеансыотсортируйте строки по колонке последней активности — зависший сеанс обычно давно не подавал признаков жизни, хотя формально «жив»; - в узле
Блокировкивидно управляемые блокировки с привязкой к сеансу: так находят того, кто занял конкретный объект или документ; - колонки с именем компьютера и приложением подскажут, это рабочий сеанс или фоновое задание.
По утилите rac расширенные сведения о сеансах выводит команда с ключом лицензий:
rac session list --licenses --cluster=<uuid-кластера>
Признаки проблемного сеанса, по которым принимают решение:
- ⏱ давняя последняя активность при формально активном сеансе;
- 🔒 блокировка на объекте, который вы не можете записать или провести;
- 💻 имя пользователя или компьютера, которого точно нет на месте.
Если нужно восстановить картину «что происходило», помогает журнал регистрации базы — он покажет последние действия сеанса перед зависанием. Это же место стоит проверить, если зависания повторяются: по журналу видно, на какой операции сеанс обрывается.
Как штатно выгнать всех пользователей перед обновлением
Иногда не нужно охотиться за одним сеансом — нужно корректно освободить базу целиком, например перед вечерним обновлением. Для этого есть встроенный механизм.
В типовых конфигурациях (БП 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание → Блокировка работы пользователей (в некоторых релизах пункт называется близко по смыслу). Задайте время начала блокировки и текст сообщения — программа предупредит работающих и в назначенный момент завершит их сеансы штатно, с сохранением.
Этот способ мягче принудительного удаления: у людей есть время дописать документы. Его и стоит выбирать по умолчанию, а консоль и rac оставить для зависших сеансов.
Посмотреть, кто сейчас в базе, можно и без серверной консоли: главное меню (значок в левом верхнем углу) → Все функции → Стандартные → Активные пользователи. Если пункта Все функции нет, включите его: Сервис и настройки → Настройки → Параметры → Отображать команду "Все функции". Список показывает пользователей и приложения, но завершить сеанс отсюда нельзя — только посмотреть.
rac session terminate по идентификатору.rac: rac session list, затем rac session terminate с UUID кластера и сеанса.Если сеанс не завершается: рабочие процессы и служба
Бывает, что сеанс удалён в консоли, но соединение «залипло» и база всё равно занята. Тогда работают на уровень ниже.
- 🔁 Рабочий процесс (
rphost). Все сеансы обслуживаются рабочими процессами сервера. В консоли, в узлеРабочие процессы, видно их загрузку. Прямой кнопки «убить процесс» в типовой консоли нет; в отказоустойчивом кластере процессы перезапускаются автоматически по настройкам рабочего сервера. - 🛑 Служба агента (
ragent). Самый радикальный приём — перезапуск службыАгент сервера 1С:Предприятия 8.3в оснасткеСлужбыWindows. После рестарта агент поднимает кластер заново, и зависшие соединения исчезают.
Перезапуск службы агента обрывает ВСЕ сеансы во ВСЕХ базах этого сервера, а не только проблемный. Делайте это только когда пользователей нет или они предупреждены, и никогда — в разгар рабочего дня.
Прежде чем перезапускать службу, убедитесь, что обрыв не навредит незаписанным регламентным и фоновым заданиям. Если проблема повторяется регулярно — это повод разобраться с сетью, таймаутами или памятью сервера, а не перезапускать агент каждый раз. Частый спутник зависаний — переполнение памяти рабочего процесса: тогда помогает не ручной рестарт, а настройка перезапуска rphost по лимиту памяти в свойствах рабочего сервера.
Завершение сеанса на терминальном сервере
Когда пользователи работают через удалённый рабочий стол (RDP), зависший клиент 1С иногда проще снять на самом терминальном сервере.
Снять только процесс 1С:
- На сервере откройте
Диспетчер задач → Подробности. - Найдите процесс клиента:
1cv8c.exe— тонкий клиент,1cv8.exe— толстый клиент или Конфигуратор. - Выберите нужный по имени пользователя в колонке и нажмите
Снять задачу.
Завершить весь RDP-сеанс пользователя:
- в
Диспетчере задач → Пользователищёлкните по пользователю правой кнопкой →Выход; - либо в командной строке с правами администратора:
quserпокажет список сеансов с их ID, аlogoff <ID>завершит нужный.
В PowerShell процессы клиента снимают командой вида Stop-Process -Name 1cv8c — но она закроет 1С у всех пользователей сразу, поэтому точнее работать по конкретному ID сеанса.
Снятие процесса или выход из RDP-сеанса — это аварийное закрытие клиента: несохранённые данные теряются, а сам сеанс в кластере 1С может задержаться на несколько минут, пока сервер не определит разрыв. Сначала попробуйте завершить сеанс в консоли сервера.
Эти приёмы рассчитаны на Windows Server 2016 и новее.
Сеансы в облачных базах и 1С:Fresh
Если база арендована у провайдера или работает в модели 1С:Fresh, доступа к консоли кластера у вас обычно нет — сервер администрирует поставщик сервиса.
- ☁️ 1С:Fresh. Активными пользователями приложения управляют через личный кабинет сервиса (менеджер сервиса провайдера). Там же задают регламент работы и блокировку. Внутри самого приложения список покажет
Активные пользователи, но принудительно завершить чужой сеанс оттуда нельзя. - 🏢 Аренда 1С у хостинга. Завершение сеансов, перезапуск служб и получение монопольного доступа выполняет техподдержка провайдера по вашей заявке. Самостоятельно до службы агента вы не доберётесь.
Если сеанс «завис» в облаке и мешает, чаще всего помогает подождать: по тайм-ауту неактивности сервис сам закрывает брошенные сеансы. Срочную разблокировку запрашивайте у поддержки — в заявке укажите имя базы, пользователя и время, когда сеанс перестал отвечать, это ускорит разбор.
То же касается баз, опубликованных на веб-сервере: завершить сеанс веб-клиента со стороны пользователя нельзя, но на сервере он виден в консоли и rac как обычный сеанс и закрывается штатными средствами.
Частые вопросы
Чем «Удалить» в консоли отличается от перезапуска службы?
Пользователь потеряет данные, если завершить его сеанс?
Можно ли завершить сеанс прямо из базы, под обычным пользователем?
Активные пользователи доступен и из клиента, но он только показывает, кто подключён. Завершение сеанса — административное действие на стороне сервера (консоль, rac) или через штатную блокировку работы.После удаления сеанса база всё равно занята — почему?
Соединения в консоли, при необходимости разорвите соединение через rac connection disconnect. Если не помогает — поможет перезапуск службы агента, но только когда пользователей нет.