Завершаем чужие сеансы в 1С 8.3: от вежливой блокировки до rac

· 9 мин

Содержание

Чтобы отключить активных пользователей в 1С 8.3, откройте Администрирование → Обслуживание → Блокировка работы пользователей, задайте сообщение и код разрешения и нажмите «Установить блокировку». Программа предупредит всех, кто сейчас в базе, и через несколько минут завершит их сеансы. Для клиент-серверной базы есть и жёсткий путь: удалить сеанс в консоли администрирования кластера или командой rac session terminate.

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

Перед отключением: кто сейчас в базе

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

Где увидеть активных пользователей:

  • 👥 В режиме «Предприятие» — Администрирование → Обслуживание → Активные пользователи. Список показывает пользователя, компьютер, приложение и время начала сеанса.
  • 🧰 Через стандартные функции — Главное меню (≡) → Функции для технического специалиста → Стандартные → Активные пользователи. Пункт доступен, если в настройках включено отображение команды «Функции для технического специалиста».
  • 🛠 В конфигураторе — Администрирование → Активные пользователи. Список тот же, но завершать сеансы отсюда нельзя.
  • 🖥 В консоли кластера — ветка Сеансы у нужной базы. Здесь видны и фоновые задания, и COM-соединения, которых нет в пользовательском списке.

В колонке «Приложение» обращайте внимание на типы сеансов:

Приложение в спискеКто этоМожно ли завершать
Тонкий клиент, Толстый клиентЖивой пользовательДа, после предупреждения
КонфигураторРазработчик или администраторТолько после согласования
Фоновое заданиеРегламентные задания, обменыЛучше остановить регламентные задания
COM-соединениеВнешняя программа, обменДа, но обмен может прерваться с ошибкой
Веб-клиентПользователь через браузерДа

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

Способ 1. Отключение пользователей средствами самой программы

Это основной и самый безопасный путь. Он есть во всех типовых конфигурациях на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, КА и ERP. Работает и в файловом, и в клиент-серверном варианте.

Установка блокировки

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

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

Как войти в заблокированную базу

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

/UCobnovlenie

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

Завершение отдельного сеанса

В списке «Активные пользователи» выделите строку и выполните команду «Завершить сеанс». В клиент-серверной базе программа спросит имя и пароль администратора кластера, если он задан. В файловой базе прямого удаления чужого сеанса нет: там работает только механизм блокировки.

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

Способ 2. Консоль администрирования серверов 1С: завершение сеансов в кластере

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

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

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

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

Рядом с веткой Сеансы есть ветка Соединения. Соединение — это канал клиента к рабочему процессу. Удалять соединения вместо сеансов не нужно: клиент переподключится, а сеанс останется. Отключение пользователя в консоли кластера — это именно удаление сеанса.

Отсортируйте сеансы по колонке «Пользователь» или «Компьютер». Так быстрее найти «зависшие» сеансы одного человека, который открыл базу дважды.

Блокировка начала сеансов в свойствах базы

Удалённый пользователь может тут же зайти снова. Чтобы этого не случилось, откройте свойства базы в консоли (правой кнопкой по базе → «Свойства»). Понадобится логин и пароль администратора информационной базы.

  • 🔒 включите «Блокировка начала сеансов включена»;
  • 🕘 задайте начало и конец блокировки;
  • 💬 впишите сообщение для пользователей;
  • 🔑 укажите код разрешения — для входа с /UC;
  • ⏸ при необходимости включите «Блокировка регламентных заданий включена».

Это та же блокировка, что ставит программа в способе 1, только задаётся снаружи. Её удобно использовать, когда сама база не открывается.

Если консоль не запускается

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

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

Номер версии в пути замените на свой. Разрядность консоли и зарегистрированной библиотеки должна совпадать.

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

У файловой базы нет кластера и консоли. Сеансы живут в процессах 1cv8.exe и 1cv8c.exe на компьютерах пользователей или на терминальном сервере.

Порядок действий:

  1. Поставьте блокировку из способа 1. Для файловой базы это главный инструмент.
  2. Дождитесь, пока сеансы закроются. Клиент проверяет блокировку периодически, поэтому закрытие занимает несколько минут, а не секунды.
  3. Если кто-то «завис», проверьте список активных пользователей и найдите компьютер.
  4. Если база лежит в общей папке, на файловом сервере откройте Управление компьютером → Общие папки → Открытые файлы. Там видно, с каких компьютеров открыт файл 1Cv8.1CD.

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

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

Способ 4. Принудительная остановка процессов через Диспетчер задач

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

На терминальном сервере. Откройте Диспетчер задач, вкладку «Пользователи» или «Подробности». Найдите процесс 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент, конфигуратор) нужного пользователя. Выберите «Снять задачу». Закроется только его сеанс.

На сервере 1С. Здесь работают процессы ragent.exe (агент), rmngr.exe (менеджер кластера) и rphost.exe (рабочие процессы). Снимать rphost.exe для отключения одного пользователя нельзя.

Один процесс rphost.exe обслуживает много сеансов разных пользователей и разных баз. Если его снять, оборвутся все они, а незавершённые транзакции откатятся. Делайте это только вне рабочего времени и только когда сервер иначе не отвечает. Сеанс в кластере после снятия клиентского процесса может висеть ещё какое-то время — его удаляют в консоли.

Способ 5. Командная строка: rac, ras и роль rmngr

rmngr — это не утилита, а процесс менеджера кластера. Управлять им напрямую из командной строки не нужно. Для работы с сеансами из консоли Windows или Linux используют пару утилит: ras (сервер администрирования) и rac (клиент администрирования).

Запуск сервера администрирования

ras должен работать рядом с агентом сервера. По умолчанию он слушает порт 1545:

ras cluster --daemon localhost:1540

В рабочей установке ras лучше зарегистрировать службой, чтобы он поднимался после перезагрузки.

Просмотр и завершение сеансов

rem Узнать идентификатор кластера
rac cluster list

rem Узнать идентификатор базы
rac infobase summary list --cluster=<uuid_кластера>

rem Список сеансов базы
rac session list --cluster=<uuid_кластера> --infobase=<uuid_базы>

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

Если на кластер установлен администратор, к каждой команде добавьте --cluster-user и --cluster-pwd. Список ключей конкретной команды выводит rac help session или rac help infobase.

Блокировка базы из командной строки

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

После работ снимите блокировку той же командой с --sessions-deny=off и --scheduled-jobs-deny=off.

Связка «заблокировать → получить список → завершить каждый сеанс» легко оборачивается в bat или PowerShell-скрипт для ночного обновления. В Linux те же команды работают в bash.

Параметр запуска для конфигураций на БСП

Типовые конфигурации понимают параметры запуска, которые ставят и снимают блокировку без кликов:

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

Обратная операция — параметр /CРазрешитьРаботуПользователей. Для файловой базы вместо /S укажите /F"путь к каталогу базы".

Способ 6. Регламентные задания и блокировки: чтобы сеансы не мешали работам

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

Что сделать перед работами:

  • ⏸ Отключите регламентные задания. В программе — флажком в форме блокировки работы пользователей, в консоли — «Блокировка регламентных заданий включена». Иначе обмен или загрузка курсов поднимет новый фоновый сеанс.
  • 🔁 Остановите внешние обмены. COM-соединения и HTTP-сервисы от других программ создают сеансы так же, как пользователи.
  • 🕐 Назначьте окно. Блокировка с началом в 19:00 и концом в 20:00 снимется сама, даже если вы забудете.
  • 📢 Предупредите людей заранее. Сообщение в блокировке видят только те, кто в базе. Остальным напишите отдельно.

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

Какой способ отключения подходит вам?

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

  • ❌ Удалили сеанс, но не заблокировали базу. Пользователь через минуту зашёл снова, обновление снова не стартовало. Удаление сеансов всегда идёт в паре с блокировкой.
  • ❌ Забыли код разрешения. Блокировка без кода не пускает и вас. Если окончание не задано, снимите блокировку в свойствах базы в консоли кластера.
  • ❌ Сняли rphost.exe ради одного человека. Вылетели пользователи всех баз, которые обслуживал этот процесс.
  • ❌ Не остановили фоновые задания. В списке сеансов пусто, а монопольный режим не устанавливается: регламентное задание успело стартовать.
  • ❌ Отключили конфигуратор коллеги. Несохранённые изменения конфигурации пропадают. Конфигуратор завершайте только после разговора с тем, кто в нём работает.

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

Освобождается ли лицензия сразу после удаления сеанса?
Да, лицензия возвращается при завершении сеанса. Если сеанс завис и остался в кластере, лицензия занята, пока его не удалят в консоли или командой rac. Проверить, кто держит лицензии, можно командой rac session list с ключом –licenses.
Что увидит пользователь, у которого удалили сеанс?
Сообщение о том, что сеанс завершён или отсутствует, и клиентское приложение закроется. Несохранённые данные открытых форм потеряются.
Можно ли отключить пользователей без прав администратора?
Нет. Блокировку в программе ставит пользователь с полными правами, удаление сеансов в кластере требует прав администратора кластера, если он задан.
Почему после блокировки часть сеансов не закрывается?
Чаще всего это фоновые задания, COM-соединения или клиент, который потерял связь с сервером. Их удаляют в консоли кластера, а фоновые задания предварительно блокируют.
Как снять блокировку, если база не пускает даже администратора?
Войдите с параметром /UC и кодом разрешения. Для серверной базы блокировку можно выключить в свойствах базы в консоли кластера или командой rac infobase update с –sessions-deny=off.