Принудительно отключаем пользователей от базы 1С: из программы, консоли кластера и rac
Содержание
Чтобы выкинуть пользователей из 1С, в клиент-серверной базе откройте консоль «Администрирование серверов 1С Предприятия», найдите базу, раскройте ветку Сеансы и удалите нужные сеансы. В файловой базе так не получится: там пользователей отключают блокировкой через Администрирование → Обслуживание или закрывают их процессы на сервере.
Частое заблуждение — что достаточно закрыть программу у себя или перезапустить службу. Первое ничего не даёт, второе обрывает работу всем, включая тех, кто проводит документы прямо сейчас. Принудительное отключение сеансов лучше делать по порядку: от мягкого способа к жёсткому.
Какой способ выбрать: сравнение методов
Способ зависит от двух вещей: какая у вас база (файловая или клиент-серверная) и есть ли права администратора кластера.
| Метод | Когда подходит | Что нужно | Риски |
|---|---|---|---|
| Блокировка из режима Предприятия | Плановые работы, обновление | Права администратора в базе | Почти нет: пользователи получают предупреждение |
| Консоль кластера | Клиент-серверная база, нужно убрать 1–2 сеанса | Доступ к серверу 1С | Несохранённые данные у отключённого пользователя теряются |
Утилита rac | Скрипты, ночные обновления, нет графического доступа | Запущенный ras | То же, плюс ошибка в UUID отключит не того |
| Завершение процесса | Сеанс висит и не удаляется | Права администратора Windows | Обрыв всех сеансов этого процесса |
Тип базы виден в списке баз при запуске: у файловой в строке пути File=, у серверной — Srvr= и Ref=.
Как отключить пользователей из самой программы
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть два штатных инструмента. Оба лежат в разделе Администрирование → Обслуживание, в группе регламентных операций.
Посмотреть, кто сейчас в базе
Ссылка «Активные пользователи» показывает список сеансов: имя пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание), время начала.
Тот же список есть в платформенной обработке. Откройте Главное меню → Функции для технического специалиста → Стандартные → Активные пользователи. Если пункта «Функции для технического специалиста» нет, включите его в Сервис и настройки → Параметры, флажок «Отображать команду “Функции для технического специалиста”».
В клиент-серверном варианте из списка БСП можно завершить выделенный сеанс командой в панели формы. Программа попросит пароль администратора кластера, если он задан.
Заблокировать вход и вытеснить всех
Ссылка «Блокировка работы пользователей» — главный инструмент для плановых работ:
- Заполните сообщение, которое увидят пользователи, например: «С 19:00 обновление, сохраните документы».
- Укажите время начала и окончания блокировки.
- Задайте код разрешения — короткое слово, по которому вы сами войдёте в заблокированную базу.
- Нажмите «Установить блокировку».
Работающие пользователи получают предупреждение заранее и могут сохраниться. После наступления времени блокировки их сеансы завершаются, а новые входы запрещены.
Чтобы зайти в заблокированную базу, добавьте к параметрам запуска ключ /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С Предприятия» на сервере или на компьютере с установленными средствами администрирования.
- Раскройте
Central 1C:Enterprise 8.3 servers → <имя сервера> → Кластеры → <кластер> → Информационные базы → <ваша база> → Сеансы. - В правой части выделите сеанс. Полезные колонки: «Пользователь», «Компьютер», «Приложение», «Начало сеанса».
- Правой кнопкой — «Удалить». Пользователь увидит сообщение о разрыве соединения.
Чтобы выкинуть всех, выделите сеансы через Ctrl+A и удалите разом.
Если пользователи тут же заходят обратно
Удаление сеанса не мешает повторному входу. Поэтому перед массовым отключением включите блокировку в свойствах самой базы:
- Правой кнопкой по базе → «Свойства».
- Отметьте «Блокировка начала сеансов включена».
- Заполните сообщение, время начала и окончания, код разрешения.
- Отметьте «Блокировка регламентных заданий включена» — иначе фоновые задания снова откроют сеансы.
- Сохраните и только потом удаляйте сеансы.
Если на кластере задан администратор, консоль спросит его логин и пароль. Если в базе есть пользователи, при изменении свойств база запросит ещё и учётные данные администратора информационной базы.
Сеансы с приложением «Фоновое задание» — не люди, а регламентные операции: загрузка курсов, обмены, обновление индексов. Их тоже нужно остановить перед обновлением, иначе базу не удастся заблокировать.
Командная строка: завершение сеансов через 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, тестирования и исправления. Правка модулей без изменения структуры или работа с расширениями его обычно не требуют.
Порядок перед обновлением:
- За 15–30 минут предупредите пользователей и установите блокировку с кодом разрешения.
- В серверной базе включите ещё и блокировку регламентных заданий.
- Убедитесь в консоли или через «Активные пользователи», что в базе остались только вы.
- Сделайте резервную копию: выгрузку
.dtили копию папки файловой базы. - Запустите Конфигуратор с ключом
/UC<код>и выполните обновление. - Снимите блокировку и проверьте вход обычного пользователя.
В клиент-серверной базе Конфигуратор при обновлении структуры сам находит мешающие сеансы и предлагает их завершить — в окне ошибки блокировки есть кнопка завершения сеансов с повтором. Это удобно, но пользователи получат обрыв без предупреждения, поэтому полагаться только на неё не стоит.
Почему сеансы зависают и как этого избежать
Висящий сеанс, который не удаляется и мешает обновлению, появляется не случайно. Частые причины:
- 🔌 Обрыв сети или сон ноутбука. Клиент пропал, а сервер ещё держит сеанс.
- ⏳ Долгая серверная операция. Пользователь закрыл окно, а закрытие месяца или проведение пакета документов продолжает выполняться на сервере.
- 🔄 Обмены и фоновые задания. Зациклившийся обмен с сайтом или с другой базой снова и снова открывает сеансы.
- 🔒 Ожидание на блокировке. Сеанс ждёт ресурс, который держит другой сеанс; в консоли у таких сеансов растёт время ожидания блокировок.
- 🧠 Рабочий процесс исчерпал память и перестал нормально отвечать.
Профилактика
- Задайте в Конфигураторе
Администрирование → Параметры информационной базывремя засыпания пассивного сеанса и время завершения спящего сеанса. Тогда брошенные сеансы будут закрываться сами. - В свойствах кластера включите «Принудительно завершать проблемные процессы» и настройте перезапуск рабочих процессов по расписанию или по превышению памяти.
- Проверьте расписание регламентных заданий: обмены, которые запускаются каждую минуту, чаще всего и оставляют хвосты.
- Приучите сотрудников выходить из 1С, а не просто закрывать крышку ноутбука в конце дня.
Частые ошибки при отключении пользователей
- Удалили сеансы без блокировки. Пользователи сразу зашли снова, обновление опять не стартует.
- Забыли код разрешения. Блокировку можно снять из консоли кластера или через
racс--sessions-deny=off; в файловой базе — дождаться времени окончания, указанного при установке. - Перезапустили службу днём. Отключились все базы сервера, а не одна.
- Завершили не тот rphost. Отключились пользователи соседней базы. PID сверяйте по консоли.
- Не остановили регламентные задания. Монопольный доступ не устанавливается, хотя людей в базе нет.