Принудительное отключение пользователей от базы 1С: от консоли до блокировки сеансов

· 9 мин

Содержание

Выбросить пользователя из 1С в клиент-серверной базе проще всего через консоль кластера: Кластеры → <кластер> → Информационные базы → <база> → Сеансы, правый клик по сеансу → Удалить. Сеанс завершится на сервере, а у пользователя появится сообщение о разрыве соединения. Если консоли под рукой нет, то же самое делает утилита rac командой rac session terminate.

Частое заблуждение — считать, что достаточно «снять задачу» 1cv8 на своём компьютере или удалить пользователя из списка в Конфигураторе. Первое закрывает только ваш клиент, второе не трогает уже открытые сеансы. Принудительно отключить чужой сеанс можно лишь там, где он живёт: на сервере 1С, на терминальном сервере или, для файловой базы, на машине пользователя.

Всё ниже относится к платформе 1С:Предприятие 8.3 и не зависит от конфигурации: Бухгалтерия, ЗУП, УТ и ERP отключаются одинаково.

Что проверить перед тем, как отключать людей

Принудительное завершение сеанса — это обрыв. Всё, что пользователь не записал, пропадёт. Если в этот момент шла запись документа, транзакция откатится, и документ останется в прежнем состоянии.

Перед отключением пройдитесь по короткому списку:

  • 👥 Кто именно сидит в базе. Откройте список активных пользователей: в Конфигураторе Администрирование → Активные пользователи, в типовых конфигурациях — Администрирование → Обслуживание, ссылка «Активные пользователи».
  • 📣 Предупредите людей. Пять минут на сохранение документов спасают от повторного ввода.
  • ⚙️ Не трогайте фоновые задания вслепую. Обмен с сайтом, загрузка выписок или закрытие месяца в фоне после обрыва придётся запускать заново.
  • 🔑 Права администратора кластера. Если на кластере заданы администраторы, консоль и rac спросят логин и пароль. Без них сеанс не удалить.

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

Как выгнать пользователя через консоль администрирования серверов 1С

Консоль — оснастка MMC «Администрирование серверов 1С Предприятия». Она ставится вместе с сервером 1С или отдельным компонентом из дистрибутива платформы.

Пошагово

  1. Запустите консоль. Если кластера в дереве нет, правый клик по Central 1C:Enterprise 8.3 servers → Создать → Центральный сервер 1С:Предприятия и укажите имя сервера.
  2. Раскройте Кластеры → <имя и порт кластера> → Информационные базы → <ваша база>.
  3. Выберите узел Сеансы. Справа появится таблица: пользователь, компьютер, приложение, время начала, последняя активность.
  4. Найдите нужную строку. Удобно сортировать по колонке «Компьютер» или «Пользователь».
  5. Правый клик → Удалить. Подтвердите действие.

Можно выделить несколько сеансов с Ctrl или Shift и удалить их разом. Чтобы выбросить из базы всех, выделите все строки через Ctrl+A.

Если консоль не открывается

Типичная беда — оснастка ругается при запуске или не видит кластер. Причины две:

  • Не зарегистрирована библиотека консоли. Выполните от имени администратора regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll", подставив точный номер установленной платформы. Разрядность консоли должна совпадать с разрядностью зарегистрированной radmin.dll.
  • Версия консоли не совпадает с версией сервера. Консоль от платформы 8.3.22 не подключится к серверу 8.3.24. Регистрируйте radmin.dll той же сборки, что стоит на сервере.

Консоль подключается к агенту сервера по порту 1540. Если между вашим компьютером и сервером есть брандмауэр, порт должен быть открыт.

Отключение сеансов из командной строки: ras и rac

В заголовках инструкций часто пишут «через rmngr». Это неточно. rmngr.exe — менеджер кластера, команд он не принимает. Из командной строки сеансами управляет связка:

  • ras — сервер администрирования. Служба, которая слушает порт 1545 и передаёт команды в кластер.
  • rac — клиент. Консольная утилита, которая отправляет запросы в ras.

Обе лежат в папке bin платформы. Без запущенного ras команды rac не работают.

Запуск ras

Для разовой работы хватит запуска из консоли на сервере:

cd "C:\Program Files\1cv8\8.3.xx.xxxx\bin"
ras cluster --port=1545 localhost:1540

Окно не закрывайте, пока работаете. Для постоянной работы ras регистрируют службой Windows — так он стартует вместе с сервером.

Найти и завершить сеанс

Все команды выполняются в той же папке bin. Последовательность такая:

rem 1. Узнать идентификатор кластера
rac localhost:1545 cluster list

rem 2. Узнать идентификатор базы
rac localhost:1545 infobase summary list --cluster=<uuid-кластера>

rem 3. Список сеансов базы
rac localhost:1545 session list --cluster=<uuid-кластера> --infobase=<uuid-базы>

rem 4. Завершить конкретный сеанс
rac localhost:1545 session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>

Если на кластере заданы администраторы, добавьте к командам --cluster-user=<логин> --cluster-pwd=<пароль>.

В выводе session list ищите поля user-name, host и app-id. По ним понятно, чей сеанс и из какого клиента он открыт. Идентификатор для завершения — поле session.

Вывод rac удобно разбирать в PowerShell или bat-файле: выбрать все сеансы, кроме своего, и завершить их циклом. Так делают в скриптах ночного обновления. Полный список параметров для вашей версии покажет rac help session.

Как быть с файловой базой 1С

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

Блокировка средствами конфигурации

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

Как это работает:

  1. Указываете сообщение для пользователей, время начала и код разрешения.
  2. Включаете блокировку.
  3. Открытые клиенты сами показывают предупреждение и через несколько минут завершают работу.

Пользователь, который увидел сообщение, успевает записать документ. Тот, кто отошёл от компьютера, будет отключён автоматически. Сами вы входите в заблокированную базу с параметром запуска /UC<код разрешения>.

Закрытие файла на файловом сервере

Если база лежит в общей папке Windows, на сервере откройте Управление компьютером → Общие папки → Открытые файлы. Там видно, кто держит 1Cv8.1CD. Правый клик → «Закрыть открытый файл».

Закрытие файла в момент записи может повредить базу. Делайте так, только если пользователь недоступен, а предупреждение через блокировку не сработало. Перед этим сделайте копию каталога базы. После такого отключения стоит прогнать Тестирование и исправление в Конфигураторе.

Завершение клиента на компьютере пользователя

Самый честный вариант — попросить коллегу закрыть программу. Если он недоступен, процесс 1С завершают удалённо через диспетчер задач или командой taskkill. Риск тот же, что выше: незаписанное пропадёт.

Диспетчер задач: когда снимать процессы и какие именно

К диспетчеру задач прибегают, когда консоль и rac не помогают. Важно понимать, что делает каждый процесс.

ПроцессГде работаетЧто будет, если завершить
1cv8c.exeКомпьютер или терминал пользователяЗакроется тонкий клиент одного человека
1cv8.exeКомпьютер или терминал пользователяЗакроется толстый клиент или Конфигуратор
rphost.exeСервер 1СОборвутся все сеансы, обслуживаемые этим рабочим процессом
rmngr.exeСервер 1СОстановится менеджер кластера, отключатся все
ragent.exeСервер 1СОстановится агент, отключатся все

Терминальный сервер

Если пользователи работают через RDP, проще всего отключить конкретного человека на вкладке «Пользователи» диспетчера задач. Там можно завершить один процесс 1cv8c.exe нужного пользователя или выйти из его сеанса Windows целиком.

Обратите внимание на разницу между «Отключить» и «Выйти». Первое лишь рвёт RDP-соединение, а 1С продолжает работать и держать сеанс. Второе завершает сеанс Windows вместе с 1С.

Сервер 1С

Снимать rphost.exe — крайняя мера. Один рабочий процесс обслуживает сеансы многих пользователей, иногда из разных баз. Убив его, вы отключите всех, кто к нему привязан, а не одного человека.

Перезапуск службы «Агент сервера 1С:Предприятия 8.3» отключает вообще всех пользователей всех баз на этом сервере. Делайте это вне рабочего времени или после блокировки сеансов и предупреждения.

Блокировка новых подключений на время работ

Выгнать людей мало — они тут же зайдут обратно. Перед обновлением или регламентными работами базу закрывают от новых входов.

Через консоль кластера

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

Уже открытые сеансы этот флажок не закрывает. Их нужно удалить отдельно, как описано выше. Сами входите с параметром /UC<код>.

Через rac

rac localhost:1545 infobase update --cluster=<uuid-кластера> --infobase=<uuid-базы> ^
  --infobase-user=<админ базы> --infobase-pwd=<пароль> ^
  --sessions-deny=on --scheduled-jobs-deny=on ^
  --denied-message="Идёт обновление" --permission-code=12345

Снять блокировку — та же команда с --sessions-deny=off --scheduled-jobs-deny=off.

Через параметры запуска БСП

Для ночных скриптов в типовых конфигурациях есть параметр запуска:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC12345

Конфигурация включит блокировку и дождётся выхода пользователей. Обратный параметр — /C"РазрешитьРаботуПользователей".

Какая у вас ситуация?

Почему сеансы зависают и не отпускают базу

Удалённый сеанс иногда появляется снова или вообще не исчезает. За этим почти всегда стоит одна из причин ниже.

  • 🌐 Веб-клиент и закрытые вкладки. Пользователь закрыл браузер, а сеанс на сервере остался до истечения тайм-аута. Он висит и занимает лицензию.
  • 💤 Спящие сеансы. При обрыве связи сеанс может перейти в спящее состояние и ждать переподключения. В свойствах информационной базы в консоли задаются время засыпания пассивного сеанса и время завершения спящего сеанса. Нулевые значения означают, что такие сеансы живут без ограничения.
  • 🔄 Фоновые и регламентные задания. В колонке «Приложение» они видны как «Фоновое задание». Удалите сеанс, а регламентное задание через минуту запустится снова. Помогает только блокировка регламентных заданий.
  • 🔌 COM-соединения и внешние обработчики. Обмен с сайтом, скрипты, сторонние программы подключаются как COM-соединение. Удалённый сеанс вернётся при следующем запуске обмена.
  • 🔒 Долгая транзакция. Сеанс ждёт ответа СУБД или держит блокировку. Посмотрите узел Блокировки у базы в консоли: там видно, какой сеанс что держит. В таблице сеансов полезны колонки «Захвачено СУБД» и «Блокировано СУБД».

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

  1. В таблице сеансов отсортируйте по «Последней активности». Сеанс, который давно не проявлял активности, но не закрыт, — первый кандидат.
  2. Посмотрите «Приложение»: тонкий клиент, Конфигуратор, фоновое задание, COM-соединение.
  3. Сверьте «Компьютер» с реальными рабочими местами. Имя сервера там означает фоновое задание или скрипт.
  4. Если сеанс возвращается после удаления, ищите источник: планировщик заданий Windows, службу обмена, регламентное задание.

Зависший сеанс без активности всё равно занимает клиентскую лицензию. Регулярная проверка списка сеансов часто «находит» лицензии, которых якобы не хватает.

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

Увидит ли пользователь, что его отключили?
Да. Клиент покажет сообщение о разрыве соединения с сервером. Если включена блокировка с текстом сообщения, при попытке входа он увидит ваш текст.
Можно ли выгнать пользователя из 1С, не будучи администратором кластера?
Удалить чужой сеанс в консоли или через rac — нет, нужны права администратора кластера, если они заданы. Обработка «Блокировка работы пользователей» в конфигурации требует административных прав в самой базе.
Почему удалённый пользователь сразу зашёл обратно?
Удаление сеанса не запрещает новый вход. Включите блокировку начала сеансов с кодом разрешения, и тогда войти смогут только те, кто знает код.
Освобождается ли лицензия после удаления сеанса?
Да, клиентская лицензия освобождается вместе с сеансом. Если сеансы висят часами, проверьте настройки тайм-аутов спящих сеансов в свойствах базы.
Можно ли отключить пользователей из Конфигуратора?
Конфигуратор показывает активных пользователей, но завершать их сеансы из этого окна нельзя. Для отключения нужна консоль кластера, rac или блокировка средствами конфигурации.