Выгнать всех из базы 1С 8.3: блокировка сеансов, консоль кластера и rac

· 9 мин

Содержание

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

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

Подготовка: что сделать до разрыва сеансов

Принудительное отключение обрывает работу на полуслове. Незаписанный документ пропадёт, проведение прервётся, обмен с сайтом или банком остановится на середине. Поэтому порядок такой.

  1. 📢 Предупредите людей. Сообщение в чат за 15–30 минут плюс текст в самой блокировке: «Обновление базы с 19:00 до 20:00, сохраните документы».
  2. 🔍 Посмотрите, кто сейчас в базе. Список открывается в Администрирование → Обслуживание → Активные пользователи. Там видно не только людей, но и фоновые задания, COM-соединения, веб-сервисы.
  3. ⏸️ Найдите долгие операции. Если идёт закрытие месяца или пересчёт себестоимости, дождитесь конца. Оборванная транзакция откатится целиком, и операцию придётся запускать заново.
  4. 🔑 Придумайте код разрешения. Это строка вроде KOD2024, с которой вы сами войдёте в заблокированную базу через параметр запуска /UC.
  5. 💾 Сделайте копию, если после отключения пойдёт обновление конфигурации или загрузка .dt.

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

Блокировка работы пользователей из режима 1С:Предприятие

Это самый мягкий способ и единственный, который одинаково работает в файловой и серверной базе. Механизм входит в Библиотеку стандартных подсистем, поэтому он есть во всех современных типовых конфигурациях.

Пошагово

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

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

В клиент-серверной базе форма может спросить логин и пароль администратора кластера. Это нужно, если на сервере 1С задан администратор кластера: без него программа не имеет права завершать чужие сеансы.

Как войти, пока база закрыта

Запустите 1С с параметром /UC и кодом разрешения. Удобнее всего прописать его в настройках базы в окне запуска: Изменить → Далее → Дополнительные параметры запуска.

/UCKOD2024

Снять блокировку можно там же, в форме «Блокировка работы пользователей», кнопкой снятия. Если блокировка была с временем окончания, она снимется сама.

Блокировка из программы не трогает фоновые задания, запущенные до неё, мгновенно. Если в списке активных пользователей остались «Фоновое задание» или «COM-соединение», завершите их через консоль кластера или дождитесь окончания.

Монопольный режим в Конфигураторе: что он даёт и чего не даёт

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

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

Что из этого следует на практике:

  • 🚫 Конфигуратор не умеет выгонять пользователей. Он только сообщает, что они есть.
  • 👀 Посмотреть, кто мешает, можно в Администрирование → Активные пользователи прямо в Конфигураторе.
  • 🔁 Если при обновлении появляется предложение «Завершить сеансы и повторить», в клиент-серверной базе платформа сама пробует заблокировать вход и завершить сеансы. Для этого ей тоже нужны права администратора кластера.

Типичная последовательность для обновления: блокировка работы пользователей в режиме 1С:Предприятие → вход в Конфигуратор с /UC → Администрирование → Монопольный режим → обновление → снятие блокировки.

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

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

Отключить одного или всех

  1. Запустите «Администрирование серверов 1С Предприятия».
  2. Раскройте Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер → Информационные базы → нужная база → Сеансы.
  3. Выделите сеанс (или все сеансы через Ctrl+A).
  4. Правой кнопкой — «Удалить». Подтвердите.

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

Запретить новые сеансы в свойствах базы

Откройте свойства информационной базы в той же ветке (правой кнопкой по базе → «Свойства»). Там есть:

ПараметрЧто делает
Блокировка начала сеансов включенаЗапрещает новые входы
Начало / КонецПериод действия блокировки
СообщениеТекст, который увидит пользователь при попытке входа
Код разрешенияТот же код для /UC
Блокировка регламентных заданий включенаОстанавливает запуск регламентных заданий

Для изменения свойств консоль попросит логин и пароль пользователя самой информационной базы с правами администратора.

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

Самая частая проблема — оснастка не зарегистрирована или зарегистрирована от другой версии платформы. Тогда консоль выдаёт ошибку при открытии или пустое окно. Решение — перерегистрировать библиотеку от той версии платформы, которая стоит на сервере. Командная строка запускается от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии в пути замените на свой: он должен совпадать с версией сервера 1С. После регистрации консоль подключается к серверу по порту агента 1540.

Отключение пользователей командой rac и через параметры запуска

Когда графической консоли нет под рукой (Linux-сервер, удалённая сессия, скрипт), сеансами управляет утилита rac. Она работает через сервер администрирования ras, который должен быть запущен на сервере 1С (по умолчанию порт 1545).

Базовые команды:

rem Получить идентификатор кластера
rac cluster list

rem Список сеансов кластера
rac session list --cluster=<uuid кластера>

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

Если в кластере есть администратор, добавьте --cluster-user и --cluster-pwd. Для отбора сеансов одной базы сначала узнайте её идентификатор командой rac infobase summary list --cluster=<uuid>, а затем передайте --infobase=<uuid базы> в rac session list.

Блокировку начала сеансов rac ставит через изменение свойств базы. Полный перечень параметров для вашей версии смотрите в справке:

rac help infobase

Параметры запуска из Библиотеки стандартных подсистем

У типовых конфигураций есть ещё один удобный путь — команды запуска через /C. Запуск с ключом /C ЗавершитьРаботуПользователей устанавливает блокировку и завершает сеансы, а /C РазрешитьРаботуПользователей снимает её.

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

Сеанс, запущенный такой командой, остаётся открытым, пока идёт отключение. Работает и для файловой базы — вместо /S укажите /F"D:\Bases\Buh".

Какая у вас база и задача?

Файловая база: как отключить пользователей без сервера 1С

У файловой базы нет кластера и нет консоли. Каждый пользователь открывает файл 1Cv8.1CD напрямую, поэтому «удалить сеанс» снаружи нельзя. Остаются три инструмента.

  1. Блокировка работы пользователей из программы. Это основной путь. Клиенты периодически проверяют блокировку и закрываются сами после предупреждения.
  2. Закрытие процессов на терминальном сервере. Если все работают через RDP, откройте Диспетчер задач → Пользователи, найдите процессы 1cv8c.exe (тонкий клиент) или 1cv8.exe и завершите их. Или выйдите из RDP-сеанса пользователя целиком.
  3. Закрытие открытых файлов на сетевой папке. Если база лежит в общей папке, на компьютере с этой папкой откройте Управление компьютером → Общие папки → Открытые файлы. Найдите 1Cv8.1CD и закройте его для нужного пользователя.

Закрытие файла и завершение процесса — грубое прерывание. Если в этот момент шла запись, возможна порча файла базы. Делайте это, только когда пользователь не отвечает, а блокировка из программы не сработала, и только после свежей копии базы.

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

Частая ловушка файлового варианта — «висящий» пользователь в списке активных, которого физически нет. Обычно это компьютер, ушедший в сон с открытой 1С. Разбудите его и закройте программу или закройте файл на сервере способом выше.

Автоматизация и профилактика зависших сеансов

Ночное обслуживание по расписанию

Типовой сценарий для «Планировщика заданий» Windows — один bat-файл:

@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set IB=/S"srv1c\buh"
set AUTH=/N"Обслуживание" /P"пароль"

rem 1. Закрыть вход и завершить сеансы
%V8% ENTERPRISE %IB% %AUTH% /C"ЗавершитьРаботуПользователей" /UC"KOD2024" /DisableStartupMessages

rem 2. Выгрузка базы
%V8% DESIGNER %IB% %AUTH% /UC"KOD2024" /DumpIB"D:\Backup\buh.dt" /Out"D:\Backup\log.txt"

rem 3. Открыть вход
%V8% ENTERPRISE %IB% %AUTH% /C"РазрешитьРаботуПользователей" /UC"KOD2024" /DisableStartupMessages

Для этого заведите отдельного пользователя базы с правами администратора, а не используйте личную учётную запись. Пароль в bat-файле храните в папке, доступ к которой есть только у администратора.

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

Как сделать, чтобы сеансы не зависали

  • ⏱️ Отключение бездействующих. В свойствах информационной базы в консоли кластера есть параметры засыпания пассивного сеанса и завершения спящего сеанса (в секундах). Они закрывают сеансы, которые давно не подают признаков жизни.
  • 💤 Сон и гибернация на рабочих компьютерах — главный источник «призраков» в файловых базах. Отключите сон на машинах, где 1С открыта весь день, или договоритесь закрывать программу.
  • 🖥️ Терминальные сессии. Настройте на RDP-сервере завершение отключённых сессий через несколько часов. Тогда брошенная 1С не держит базу до утра.
  • 🧾 Журнал регистрации. Если сеанс одного и того же пользователя зависает регулярно, найдите в Администрирование → Обслуживание → Журнал регистрации его последние операции. Часто это одна и та же обработка или обмен.

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

Пользователь удалён из сеансов, но через минуту снова в списке. Почему?
Он просто зашёл заново: вход в базу никто не закрывал. Сначала ставьте блокировку начала сеансов, потом удаляйте сеансы.
Можно ли отключить пользователей без прав администратора?
Нет. Блокировка требует полных прав в базе, а завершение сеансов в серверной базе — ещё и прав администратора кластера, если он задан.
Что будет с документом, который пользователь не записал?
Изменения потеряются. Записанные и проведённые документы сохранятся. Прерванное проведение откатится целиком, документ останется в состоянии до проведения.
Блокировка снялась сама, хотя я её не снимал. Так бывает?
Да, если было заполнено время окончания. После него вход открывается автоматически. Для ручного снятия оставляйте время окончания пустым.
Отключение пользователей освобождает лицензии?
Да. Лицензия занята, пока жив сеанс. Удалённый в консоли сеанс сразу освобождает её для другого сотрудника.