Выгнать пользователя из базы 1С: от кнопки в программе до rac и taskkill
Содержание
Завершить сеанс другого пользователя
в 1С 8.3 проще всего из самой программы: Администрирование → Обслуживание → Активные пользователи, выделить строку и нажать «Завершить сеанс». Для этого нужна роль с полными правами, а в клиент-серверной базе ещё и логин с паролем администратора кластера, если он задан.
Частое заблуждение — что достаточно закрыть 1С на чужом компьютере через диспетчер задач. В файловой базе это сработает, а на сервере сеанс останется висеть и держать лицензию и блокировки. Методы идут от мягких к радикальным: сначала штатные средства программы, потом консоль сервера и процессы Windows.
Какие права нужны, чтобы завершать чужие сеансы
Прежде чем искать кнопку, проверьте, что у вашей учётной записи вообще есть полномочия. Без них команда либо не видна, либо выдаёт ошибку.
Что требуется на каждом уровне:
- 👤 Права в информационной базе. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) — профиль «Администратор» с ролью «Полные права». Обычному пользователю форма активных пользователей доступна только на просмотр или недоступна вовсе.
- 🖥 Администратор кластера (только клиент-серверный вариант). Если на кластере 1С задан администратор, при первом завершении сеанса программа попросит его имя и пароль. Без них сервер откажет даже полноправному пользователю базы.
- 🗄 Администратор информационной базы — нужен для блокировки начала сеансов через консоль или
rac: сервер проверяет пользователя самой базы. - 🪟 Права Windows — для методов через диспетчер задач и
taskkillна чужом компьютере нужна учётная запись администратора этого компьютера или терминального сервера.
Как проверить свои права в базе: откройте Администрирование → Настройки пользователей и прав → Пользователи, найдите себя и посмотрите вкладку групп доступа или профиль. Если вы не администратор — попросите того, у кого есть полные права, а не ищите обходных путей.
Узнать, задан ли администратор кластера, может тот, кто устанавливал сервер 1С. Если в консоли кластера раздел «Администраторы» пуст — кластер открыт, и пароль не спросят.
Способ 1. Завершить сеанс из интерфейса 1С:Предприятия
Это самый безопасный метод: пользователь получает уведомление, а вы видите, кого именно отключаете.
Пошагово в Бухгалтерии 3.0, ЗУП 3.1, УТ 11
- Откройте раздел
Администрирование → Обслуживание. - В группе команд про пользователей откройте «Активные пользователи». Если команды не видно, проверьте права: у пользователя без полных прав её нет.
- В списке выделите нужную строку. Смотрите на колонки: пользователь, компьютер, приложение (тонкий клиент, веб-клиент, Конфигуратор, фоновое задание), время начала.
- Нажмите «Завершить сеанс». Можно выделить несколько строк сразу.
- В клиент-серверной базе при первом запуске появится окно параметров администрирования. Введите имя и пароль администратора кластера (если он задан) и администратора базы.
- Обновите список и убедитесь, что строка пропала.
Что увидит пользователь
На сервере сеанс обрывается сразу: пользователь видит сообщение о том, что сеанс отсутствует или удалён, и окно 1С закрывается. Несохранённые изменения в открытых формах будут потеряны. Если человек в этот момент проводит документ на 500 строк — дождитесь окончания или предупредите его звонком.
В файловой базе прямого «убийства» сеанса нет. Программа ставит временную блокировку, а клиентские приложения сами проверяют её и закрываются. Конфигуратор и внешние COM-соединения на такую блокировку не реагируют — их придётся закрыть вручную.
Почему в Конфигураторе нет кнопки
В Конфигураторе есть Администрирование → Активные пользователи, но это только просмотр. Отключить кого-то оттуда нельзя. Используйте список, чтобы понять, кто держит базу, а отключайте через программу, консоль кластера или блокировку.
Способ 2. Блокировка и монопольный режим: выгнать всех разом
Когда нужно обновить конфигурацию
, загрузить .dt или запустить тестирование и исправление, база нужна в монопольном режиме. Один забытый сеанс — и Конфигуратор выдаст Невозможно установить монопольный режим. Уже запущены сеансы: со списком. При обновлении можно получить и Ошибка блокировки информационной базы для конфигурирования.
Монопольный доступ нужен не для любой работы в Конфигураторе: открыть конфигурацию, посмотреть модуль или выгрузить .cf можно при работающих пользователях. Он требуется для обновления структуры базы, загрузки .dt, тестирования и исправления.
Блокировка работы пользователей в программе
В конфигурациях на БСП есть встроенная обработка:
Администрирование → Обслуживание→ «Блокировка работы пользователей».- Впишите сообщение: например, «Обновление программы с 19:00 до 19:30. Сохраните документы и выйдите».
- Укажите время начала и окончания блокировки.
- Задайте код разрешения — любое слово, например
obnov77. С ним вы сами сможете войти, пока остальные заблокированы. - Нажмите «Установить блокировку».
Пользователям за несколько минут до начала придёт предупреждение. В момент старта блокировки сеансы завершатся, а новый вход будет запрещён до её снятия. Вы входите в базу с параметром запуска /UC<код>, например /UCobnov77.
Параметр /UC добавляется в строку запуска базы: в окне выбора баз нажмите «Изменить», дойдите до последней страницы и впишите его в поле дополнительных параметров запуска. Не забудьте убрать его потом, чтобы не входить «мимо» будущих блокировок.
После работы снимите блокировку той же обработкой — кнопкой «Снять блокировку». Если этого не сделать, люди утром не смогут войти и увидят ваше сообщение.
Сравнение методов
| Метод | Когда подходит | Риски |
|---|---|---|
| Активные пользователи → «Завершить сеанс» | Отключить 1-2 человек | Потеря несохранённых данных у пользователя |
| Блокировка работы пользователей | Плановое обновление, выгрузка .dt | Забыли снять — утром никто не войдёт |
Консоль кластера / rac | Программа не открывается, висящие сеансы | Нужен доступ к серверу и пароль кластера |
Диспетчер задач, taskkill | Файловая база, зависший клиент | Обрыв записи, на сервере сеанс остаётся |
Способ 3. Завершение сеансов через консоль администрирования сервера
Для клиент-серверной базы консоль — главный инструмент администратора. Она работает, даже когда сама база не открывается.
Подготовка консоли
Консоль «Администрирование серверов 1С Предприятия» ставится вместе с платформой (компонент «Администрирование сервера 1С:Предприятия»). Если ярлык есть, а консоль открывается пустой или с ошибкой — не зарегистрирована библиотека radmin.dll. Запустите командную строку от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.25.1374\bin\radmin.dll"
Номер версии в пути подставьте свой — он должен совпадать с версией сервера 1С. Разрядность консоли и библиотеки тоже должна совпадать.
Удаление сеанса
- В консоли раскройте
Central 1C:Enterprise 8.3 servers→ имя вашего сервера → «Кластеры» → кластер (обычноЛокальный кластер, порт 1541). - Раскройте «Информационные базы» → нужную базу → «Сеансы».
- Найдите сеанс по колонкам «Пользователь», «Компьютер», «Приложение».
- Правой кнопкой → «Удалить». Можно выделить несколько.
Узел «Соединения» показывает сетевые соединения. Удалять стоит именно сеансы: соединение без сеанса само по себе лицензию не держит, а удалённое соединение часто тут же восстанавливается.
Блокировка начала сеансов в консоли
Откройте свойства информационной базы (правой кнопкой по базе → «Свойства»). Понадобятся логин и пароль администратора этой базы. Здесь есть:
- 🔒 флажок «Блокировка начала сеансов включена» с полями начала, окончания, сообщения и кода разрешения;
- ⏸ флажок «Блокировка регламентных заданий включена» — без него фоновые задания снова и снова открывают сеансы.
Сначала включите блокировку, затем удалите оставшиеся сеансы. Если наоборот — пользователи переподключатся раньше, чем вы успеете начать обновление.
Способ 4. Аварийное отключение через процессы Windows
Это крайняя мера, когда 1С не отвечает, а штатные способы недоступны.
Файловая база и терминальный сервер
В файловом варианте сеанс живёт в процессе клиента на компьютере пользователя: 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент и Конфигуратор). Закрыли процесс — сеанс исчез.
На своём компьютере: диспетчер задач → «Подробности» → найдите процесс → «Снять задачу».
На чужом компьютере в домене:
tasklist /S PC-BUH2 /FI "IMAGENAME eq 1cv8c.exe"
taskkill /S PC-BUH2 /IM 1cv8c.exe /F
На терминальном сервере удобнее отключить процесс конкретного пользователя через вкладку «Пользователи» диспетчера задач или найти его сеанс Windows командой query session и завершить конкретный процесс. Команда taskkill /IM 1cv8c.exe /F без фильтра закроет 1С у всех пользователей сервера.
Принудительное снятие процесса во время записи может оставить файловую базу повреждённой. Перед этим убедитесь, что у вас есть свежая резервная копия, и делайте это, когда пользователь ничего не проводит. Файлы блокировок в каталоге базы вручную не удаляйте.
Клиент-серверная база: чего не делать
Снятие 1cv8c.exe на компьютере пользователя не завершает серверный сеанс сразу — он повисит до таймаута и продолжит занимать лицензию. Удаляйте его в консоли.
Процесс rphost.exe на сервере 1С — это рабочий процесс, который обслуживает десятки сеансов разных баз. Его снятие оборвёт работу всех, кто к нему подключён. Перезапуск службы «Агент сервера 1С:Предприятия» отключит вообще всех пользователей всех баз кластера. Такие действия — только вне рабочего времени, с предупреждением коллег.
Автоматизация: скрипты для ночного обновления и бэкапа
Если обновление или выгрузка идут по расписанию, отключать людей руками неудобно. Есть два рабочих подхода.
Параметр запуска для конфигураций на БСП
Типовые конфигурации понимают команду запуска ЗавершитьРаботуПользователей: программа ставит блокировку и завершает сеансы. Снимает блокировку команда РазрешитьРаботуПользователей. Пример bat-файла для серверной базы:
@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
set BASE=/S"srv1c\buh"
set AUTH=/N"Администратор" /P"пароль"
rem 1. Заблокировать вход и отключить пользователей
%V8% ENTERPRISE %BASE% %AUTH% /C"ЗавершитьРаботуПользователей" /UC"obnov77" /DisableStartupMessages
rem 2. Здесь — выгрузка, обновление или другие работы с кодом /UC
rem 3. Снять блокировку
%V8% ENTERPRISE %BASE% %AUTH% /C"РазрешитьРаботуПользователей" /UC"obnov77" /DisableStartupMessages
Для файловой базы вместо /S"srv1c\buh" укажите /F"D:\Bases\Buh". Окно программы закроется само, когда блокировка выставлена. Поставьте ожидание перед следующим шагом: в файловой базе клиенты закрываются не мгновенно, а по своему циклу проверки.
Пароль в bat-файле лежит открытым текстом. Создайте для скрипта отдельного пользователя и ограничьте доступ к файлу.
Утилита rac для клиент-серверного варианта
rac работает через сервер администрирования ras (по умолчанию порт 1545). На Windows ras запускают как службу, на Linux — ras cluster --daemon. Последовательность:
rem идентификатор кластера
rac localhost:1545 cluster list
rem список баз и их идентификаторы
rac localhost:1545 infobase summary list --cluster=<uuid-кластера> --cluster-user=admin --cluster-pwd=пароль
rem сеансы конкретной базы
rac localhost:1545 session list --cluster=<uuid-кластера> --infobase=<uuid-базы> --cluster-user=admin --cluster-pwd=пароль
rem завершить один сеанс
rac localhost:1545 session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса> --cluster-user=admin --cluster-pwd=пароль
Блокировку начала сеансов rac ставит командой изменения свойств базы (infobase update с параметрами запрета сеансов и регламентных заданий). Точные имена ключей для вашей версии посмотрите в rac help infobase — они требуют ещё и логин с паролем пользователя базы.
Для перебора сеансов в цикле удобнее PowerShell: вывод session list разбирается по строкам session :, и для каждого идентификатора вызывается terminate. Начинайте с блокировки, затем отключайте — иначе на место удалённых сеансов придут новые.
Частые ошибки при отключении пользователей
Ещё две ошибки, которые встречаются постоянно:
- 🔁 Удалили соединение вместо сеанса. В консоли узлы «Соединения» и «Сеансы» стоят рядом. Лицензию и блокировки держит сеанс.
- 🧭 Не та база в консоли. На одном кластере часто живут рабочая и копия с похожими именами. Сверяйте имя базы в заголовке ветки перед удалением.