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

· 9 мин

Содержание

Чтобы выкинуть пользователей из 1С, в клиент-серверной базе откройте консоль «Администрирование серверов 1С Предприятия», найдите базу, раскройте ветку Сеансы и удалите нужные сеансы. В файловой базе так не получится: там пользователей отключают блокировкой через Администрирование → Обслуживание или закрывают их процессы на сервере.

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

Какой способ выбрать: сравнение методов

Способ зависит от двух вещей: какая у вас база (файловая или клиент-серверная) и есть ли права администратора кластера.

МетодКогда подходитЧто нужноРиски
Блокировка из режима ПредприятияПлановые работы, обновлениеПрава администратора в базеПочти нет: пользователи получают предупреждение
Консоль кластераКлиент-серверная база, нужно убрать 1–2 сеансаДоступ к серверу 1СНесохранённые данные у отключённого пользователя теряются
Утилита racСкрипты, ночные обновления, нет графического доступаЗапущенный rasТо же, плюс ошибка в UUID отключит не того
Завершение процессаСеанс висит и не удаляетсяПрава администратора WindowsОбрыв всех сеансов этого процесса

Тип базы виден в списке баз при запуске: у файловой в строке пути File=, у серверной — Srvr= и Ref=.

Как отключить пользователей из самой программы

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

Посмотреть, кто сейчас в базе

Ссылка «Активные пользователи» показывает список сеансов: имя пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание), время начала.

Тот же список есть в платформенной обработке. Откройте Главное меню → Функции для технического специалиста → Стандартные → Активные пользователи. Если пункта «Функции для технического специалиста» нет, включите его в Сервис и настройки → Параметры, флажок «Отображать команду “Функции для технического специалиста”».

В клиент-серверном варианте из списка БСП можно завершить выделенный сеанс командой в панели формы. Программа попросит пароль администратора кластера, если он задан.

Заблокировать вход и вытеснить всех

Ссылка «Блокировка работы пользователей» — главный инструмент для плановых работ:

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

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

Чтобы зайти в заблокированную базу, добавьте к параметрам запуска ключ /UC с вашим кодом:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /IBName "Бухгалтерия" /UCobnovlenie

Не забудьте снять блокировку после работ. Иначе утром бухгалтерия не зайдёт в базу, а вы будете разбираться по телефону, почему «программа не пускает».

Запуск с параметрами БСП

Те же действия БСП умеет выполнять по параметру запуска /C. Это удобно для скриптов:

rem Установить блокировку и завершить работу пользователей
1cv8.exe ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UCobnovlenie

rem Снять блокировку
1cv8.exe ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"РазрешитьРаботуПользователей" /UCobnovlenie

Сеанс с параметром ЗавершитьРаботуПользователей остаётся открытым, пока не уйдут остальные, затем закрывается сам.

Отключение сеансов через консоль кластера серверов 1С

Для клиент-серверной базы это самый быстрый и точный способ выкинуть конкретного пользователя.

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

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

Если пользователи тут же заходят обратно

Удаление сеанса не мешает повторному входу. Поэтому перед массовым отключением включите блокировку в свойствах самой базы:

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

Если на кластере задан администратор, консоль спросит его логин и пароль. Если в базе есть пользователи, при изменении свойств база запросит ещё и учётные данные администратора информационной базы.

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

Командная строка: завершение сеансов через rac

Утилита rac работает через сервер администрирования ras. Без запущенного ras команды не выполнятся. Оба файла лежат в папке bin установленной платформы.

Запустить ras вручную:

cd "C:\Program Files\1cv8\8.3.24.1548\bin"
ras.exe cluster --port=1545 localhost:1540

Номер версии в пути подставьте свой. Для постоянной работы ras регистрируют как службу Windows.

Порядок команд

Сначала узнайте идентификатор кластера:

rac.exe localhost:1545 cluster list

В выводе найдите строку cluster с UUID. Дальше — список баз и сеансов:

rac.exe localhost:1545 infobase summary list --cluster=<uuid-кластера>
rac.exe localhost:1545 session list --cluster=<uuid-кластера> --infobase=<uuid-базы>

Каждый сеанс в списке имеет поле session (его UUID), user-name, host и app-id. Завершить сеанс:

rac.exe localhost:1545 session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>

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

Блокировку базы тоже можно включить из командной строки:

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

Снимают блокировку той же командой с --sessions-deny=off --scheduled-jobs-deny=off. Полный список параметров для вашей версии покажет rac help session и rac help infobase.

Скрипт, который отключает все сеансы подряд, ставьте в планировщик только на нерабочее время. Отключённый посреди проведения документа пользователь теряет несохранённые изменения.

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

Иногда сеанс в консоли удаляется, но через минуту появляется снова, или не удаляется вовсе. Тогда действуют на уровне процессов.

Файловая база

В файловом варианте нет сервера 1С, каждый пользователь сам открывает файл 1Cv8.1CD.

  • 🖥️ Терминальный сервер . Откройте Диспетчер задач, вкладку «Пользователи» или «Подробности», найдите процессы 1cv8c.exe (тонкий клиент) и 1cv8.exe (толстый клиент и Конфигуратор) у нужного пользователя и завершите их.
  • 📁 База в сетевой папке. На компьютере, где лежит папка с базой, откройте Управление компьютером → Общие папки → Открытые файлы. Найдите 1Cv8.1CD, посмотрите, кто его держит, и закройте файл правой кнопкой. Это обрывает доступ с чужого компьютера, к которому у вас нет доступа.

Клиент-серверная база

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

Завершение rphost.exe обрывает всех пользователей, которых он обслуживает, а не одного. Делайте это только если остальное не помогло и пользователи предупреждены. Агент кластера ragent.exe после этого сам поднимет новый рабочий процесс.

Какой именно rphost держит зависший сеанс, видно в консоли кластера: в списке сеансов есть колонка «Рабочий процесс», а в ветке Рабочие процессы — PID каждого процесса. По PID процесс находят в Диспетчере задач.

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

Как отключить пользователей в вашей ситуации?

Монопольный режим для обновления конфигурации

Монопольный доступ нужен не всегда. Он требуется для обновления структуры базы данных, загрузки из .dt, тестирования и исправления. Правка модулей без изменения структуры или работа с расширениями его обычно не требуют.

Порядок перед обновлением:

  1. За 15–30 минут предупредите пользователей и установите блокировку с кодом разрешения.
  2. В серверной базе включите ещё и блокировку регламентных заданий.
  3. Убедитесь в консоли или через «Активные пользователи», что в базе остались только вы.
  4. Сделайте резервную копию: выгрузку .dt или копию папки файловой базы.
  5. Запустите Конфигуратор с ключом /UC<код> и выполните обновление.
  6. Снимите блокировку и проверьте вход обычного пользователя.

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

Перед обновлением базы
Выполнено: 0 / 6

Почему сеансы зависают и как этого избежать

Висящий сеанс, который не удаляется и мешает обновлению, появляется не случайно. Частые причины:

  • 🔌 Обрыв сети или сон ноутбука. Клиент пропал, а сервер ещё держит сеанс.
  • ⏳ Долгая серверная операция. Пользователь закрыл окно, а закрытие месяца или проведение пакета документов продолжает выполняться на сервере.
  • 🔄 Обмены и фоновые задания. Зациклившийся обмен с сайтом или с другой базой снова и снова открывает сеансы.
  • 🔒 Ожидание на блокировке. Сеанс ждёт ресурс, который держит другой сеанс; в консоли у таких сеансов растёт время ожидания блокировок.
  • 🧠 Рабочий процесс исчерпал память и перестал нормально отвечать.

Профилактика

  • Задайте в Конфигураторе Администрирование → Параметры информационной базы время засыпания пассивного сеанса и время завершения спящего сеанса. Тогда брошенные сеансы будут закрываться сами.
  • В свойствах кластера включите «Принудительно завершать проблемные процессы» и настройте перезапуск рабочих процессов по расписанию или по превышению памяти.
  • Проверьте расписание регламентных заданий: обмены, которые запускаются каждую минуту, чаще всего и оставляют хвосты.
  • Приучите сотрудников выходить из 1С, а не просто закрывать крышку ноутбука в конце дня.

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

  • Удалили сеансы без блокировки. Пользователи сразу зашли снова, обновление опять не стартует.
  • Забыли код разрешения. Блокировку можно снять из консоли кластера или через rac с --sessions-deny=off; в файловой базе — дождаться времени окончания, указанного при установке.
  • Перезапустили службу днём. Отключились все базы сервера, а не одна.
  • Завершили не тот rphost. Отключились пользователи соседней базы. PID сверяйте по консоли.
  • Не остановили регламентные задания. Монопольный доступ не устанавливается, хотя людей в базе нет.

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

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