Выгнать пользователя из базы 1С: от кнопки в программе до rac и taskkill

· 10 мин

Содержание

Завершить сеанс другого пользователя в 1С 8.3 проще всего из самой программы: Администрирование → Обслуживание → Активные пользователи, выделить строку и нажать «Завершить сеанс». Для этого нужна роль с полными правами, а в клиент-серверной базе ещё и логин с паролем администратора кластера, если он задан.

Частое заблуждение — что достаточно закрыть 1С на чужом компьютере через диспетчер задач. В файловой базе это сработает, а на сервере сеанс останется висеть и держать лицензию и блокировки. Методы идут от мягких к радикальным: сначала штатные средства программы, потом консоль сервера и процессы Windows.

Какие права нужны, чтобы завершать чужие сеансы

Прежде чем искать кнопку, проверьте, что у вашей учётной записи вообще есть полномочия. Без них команда либо не видна, либо выдаёт ошибку.

Что требуется на каждом уровне:

  • 👤 Права в информационной базе. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) — профиль «Администратор» с ролью «Полные права». Обычному пользователю форма активных пользователей доступна только на просмотр или недоступна вовсе.
  • 🖥 Администратор кластера (только клиент-серверный вариант). Если на кластере 1С задан администратор, при первом завершении сеанса программа попросит его имя и пароль. Без них сервер откажет даже полноправному пользователю базы.
  • 🗄 Администратор информационной базы — нужен для блокировки начала сеансов через консоль или rac: сервер проверяет пользователя самой базы.
  • 🪟 Права Windows — для методов через диспетчер задач и taskkill на чужом компьютере нужна учётная запись администратора этого компьютера или терминального сервера.

Как проверить свои права в базе: откройте Администрирование → Настройки пользователей и прав → Пользователи, найдите себя и посмотрите вкладку групп доступа или профиль. Если вы не администратор — попросите того, у кого есть полные права, а не ищите обходных путей.

Узнать, задан ли администратор кластера, может тот, кто устанавливал сервер 1С. Если в консоли кластера раздел «Администраторы» пуст — кластер открыт, и пароль не спросят.

Способ 1. Завершить сеанс из интерфейса 1С:Предприятия

Это самый безопасный метод: пользователь получает уведомление, а вы видите, кого именно отключаете.

Пошагово в Бухгалтерии 3.0, ЗУП 3.1, УТ 11

  1. Откройте раздел Администрирование → Обслуживание.
  2. В группе команд про пользователей откройте «Активные пользователи». Если команды не видно, проверьте права: у пользователя без полных прав её нет.
  3. В списке выделите нужную строку. Смотрите на колонки: пользователь, компьютер, приложение (тонкий клиент, веб-клиент, Конфигуратор, фоновое задание), время начала.
  4. Нажмите «Завершить сеанс». Можно выделить несколько строк сразу.
  5. В клиент-серверной базе при первом запуске появится окно параметров администрирования. Введите имя и пароль администратора кластера (если он задан) и администратора базы.
  6. Обновите список и убедитесь, что строка пропала.

Что увидит пользователь

На сервере сеанс обрывается сразу: пользователь видит сообщение о том, что сеанс отсутствует или удалён, и окно 1С закрывается. Несохранённые изменения в открытых формах будут потеряны. Если человек в этот момент проводит документ на 500 строк — дождитесь окончания или предупредите его звонком.

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

Почему в Конфигураторе нет кнопки

В Конфигураторе есть Администрирование → Активные пользователи, но это только просмотр. Отключить кого-то оттуда нельзя. Используйте список, чтобы понять, кто держит базу, а отключайте через программу, консоль кластера или блокировку.

Способ 2. Блокировка и монопольный режим: выгнать всех разом

Когда нужно обновить конфигурацию , загрузить .dt или запустить тестирование и исправление, база нужна в монопольном режиме. Один забытый сеанс — и Конфигуратор выдаст Невозможно установить монопольный режим. Уже запущены сеансы: со списком. При обновлении можно получить и Ошибка блокировки информационной базы для конфигурирования.

Монопольный доступ нужен не для любой работы в Конфигураторе: открыть конфигурацию, посмотреть модуль или выгрузить .cf можно при работающих пользователях. Он требуется для обновления структуры базы, загрузки .dt, тестирования и исправления.

Блокировка работы пользователей в программе

В конфигурациях на БСП есть встроенная обработка:

  1. Администрирование → Обслуживание → «Блокировка работы пользователей».
  2. Впишите сообщение: например, «Обновление программы с 19:00 до 19:30. Сохраните документы и выйдите».
  3. Укажите время начала и окончания блокировки.
  4. Задайте код разрешения — любое слово, например obnov77. С ним вы сами сможете войти, пока остальные заблокированы.
  5. Нажмите «Установить блокировку».

Пользователям за несколько минут до начала придёт предупреждение. В момент старта блокировки сеансы завершатся, а новый вход будет запрещён до её снятия. Вы входите в базу с параметром запуска /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С. Разрядность консоли и библиотеки тоже должна совпадать.

Удаление сеанса

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

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

Блокировка начала сеансов в консоли

Откройте свойства информационной базы (правой кнопкой по базе → «Свойства»). Понадобятся логин и пароль администратора этой базы. Здесь есть:

  • 🔒 флажок «Блокировка начала сеансов включена» с полями начала, окончания, сообщения и кода разрешения;
  • ⏸ флажок «Блокировка регламентных заданий включена» — без него фоновые задания снова и снова открывают сеансы.

Сначала включите блокировку, затем удалите оставшиеся сеансы. Если наоборот — пользователи переподключатся раньше, чем вы успеете начать обновление.

Способ 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. Начинайте с блокировки, затем отключайте — иначе на место удалённых сеансов придут новые.

Частые ошибки при отключении пользователей

Диагностика: выберите симптом

Ещё две ошибки, которые встречаются постоянно:

  • 🔁 Удалили соединение вместо сеанса. В консоли узлы «Соединения» и «Сеансы» стоят рядом. Лицензию и блокировки держит сеанс.
  • 🧭 Не та база в консоли. На одном кластере часто живут рабочая и копия с похожими именами. Сверяйте имя базы в заголовке ветки перед удалением.

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

Освобождается ли лицензия после завершения сеанса?
Да. Клиентская лицензия освобождается, как только сеанс удалён в программе или консоли. Простое закрытие окна на сервере может держать её до таймаута.
Можно ли отключить пользователя, если у меня нет прав администратора?
Штатно — нет. Попросите администратора базы или того, кто обслуживает сервер 1С. Обходить права не стоит: это нарушает регламент и может повредить данные.
Сохранятся ли документы пользователя, которого отключили?
Сохранится всё, что было записано до отключения. Открытый и не записанный документ пропадёт, проведение посередине откатится целиком.
Как увидеть, кто сейчас в базе, не отключая его?
Откройте список активных пользователей в разделе «Администрирование» или в Конфигураторе. Там видны имя, компьютер, приложение и время входа.
Зачем блокировать регламентные задания отдельно?
Фоновые задания (обмены, загрузка курсов, интернет-поддержка) открывают свои сеансы. Без блокировки они будут мешать монопольному режиму.