Принудительное завершение сеансов в 1С 8.3: консоль, блокировка, rac

· 10 мин

Содержание

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

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

Когда отключать пользователей принудительно и что проверить заранее

Выгонять людей из базы приходится не так часто, но в нескольких ситуациях без этого не обойтись:

  • 🔧 обновление конфигурации с изменением структуры базы данных;
  • 💾 загрузка базы из файла .dt (выгрузку .dt можно делать и при работающих пользователях, но данные будут несогласованными, если кто-то пишет в базу);
  • 🩺 «Тестирование и исправление» в Конфигураторе;
  • 🔒 зависший сеанс держит блокировку, и документ не проводится у всех остальных;
  • 🧾 закрытие периода , когда нужно, чтобы никто не перепроводил документы задним числом.

Монопольный доступ нужен только для первых трёх операций. Для обычной правки макета или добавления расширения выгонять всех не требуется.

Перед стартом проверьте три вещи:

  1. Режим работы базы. Файловая или клиент-серверная — от этого зависит набор инструментов. Посмотреть можно в окне запуска: у серверной базы в строке пути стоит Srvr= и Ref=, у файловой — File=.
  2. Права. Для консоли кластера нужен доступ администратора кластера (если администраторы заданы) и логин с полными правами в самой базе. Для обработки БСП — роль «Полные права» или «Администратор системы».
  3. Предупреждение людям. Напишите в рабочий чат за 10–15 минут. Несохранённый документ при удалении сеанса пропадёт, и претензии придут к вам.

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

Консоль администрирования серверов: блокировка и удаление сеансов

Основной инструмент для серверной базы — оснастка «Администрирование серверов 1С:Предприятия». Она ставится вместе с платформой (компонент «Администрирование сервера 1С:Предприятия»).

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

Оснастка работает через библиотеку radmin.dll. После установки новой версии платформы консоль часто открывается пустой или с ошибкой. Лечится перерегистрацией библиотеки той же версии, что и сервер, из командной строки от имени администратора:

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

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

Шаг 1. Заблокировать начало сеансов

  1. Раскройте дерево: Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер → Информационные базы.
  2. Правой кнопкой по нужной базе → Свойства.
  3. Введите логин и пароль администратора информационной базы (не кластера).
  4. Отметьте флажок «Блокировка начала сеансов включена».
  5. Заполните «Сообщение» — его увидит пользователь при попытке входа. Например: «Обновление базы до 21:00».
  6. В поле «Код разрешения» впишите любое слово, например upd77. С ним вы сами сможете зайти, пока база закрыта.
  7. При необходимости задайте «Начало» и «Конец» блокировки — тогда она включится и снимется по времени сама.
  8. Отметьте «Блокировка регламентных заданий включена», чтобы фоновые задания не открывали новые сеансы.
  9. Нажмите OK.

Шаг 2. Удалить активные сеансы

  1. Под базой раскройте ветку Сеансы.
  2. Выделите все строки (Ctrl+A или Shift+клик).
  3. Правой кнопкой → Удалить.
  4. Обновите список клавишей F5 и убедитесь, что он пуст.

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

Ветка Соединения показывает сетевые подключения, а Блокировки — объектные блокировки данных. Для отключения людей работайте с сеансами: удалённый сеанс сам освобождает и соединение, и блокировки.

Шаг 3. Зайти по коду разрешения

Запустите 1С с параметром /UC и кодом из шага 1:

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /UC"upd77"

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

Отключение из самой программы: обработка «Блокировка работы пользователей»

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

КонфигурацияГде искать
Бухгалтерия предприятия 3.0Администрирование → Обслуживание
ЗУП 3.1Администрирование → Обслуживание
УТ 11, КА 2, ERP 2НСИ и администрирование → Обслуживание

Если ссылка в разделе не видна сразу, откройте Обслуживание и раскройте сгруппированные ссылки — набор групп зависит от релиза.

Как работает обработка:

  1. Отметьте «Запретить работу пользователей программы».
  2. Укажите время начала, время окончания и текст сообщения.
  3. Задайте код для разблокировки — это тот же код разрешения, который используется в параметре /UC.
  4. Нажмите «Установить блокировку».

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

Чтобы видеть, кто ещё в базе, откройте в том же разделе список «Активные пользователи». В серверной базе из него можно завершить конкретный сеанс — команда находится в командной панели списка.

Механизм БСП завершает только «вежливые» сеансы: те, где клиент реагирует на сообщения. Зависший клиент, COM-соединение внешней программы или сеанс веб-сервиса так не уйдут — их придётся удалять в консоли кластера.

Монопольный режим и зависшие блокировки

Монопольный режим — это состояние, когда в базе работает ровно один сеанс. Конфигуратор запрашивает его при обновлении структуры БД, загрузке .dt, тестировании и исправлении. Если в базе кто-то есть, появится сообщение о невозможности установить монопольный режим.

Порядок действий в этом случае:

  1. Посмотрите, кто мешает: консоль кластера → Сеансы или обработка «Активные пользователи».
  2. Включите блокировку начала сеансов (раздел выше).
  3. Удалите оставшиеся сеансы.
  4. Повторите операцию в Конфигураторе.

Документ «занят другим пользователем»

Иногда задача не выгнать всех, а снять одну блокировку. Пользователь пытается провести документ , а 1С пишет, что объект заблокирован, хотя автор блокировки давно ушёл домой.

  1. Откройте в консоли ветку Блокировки под базой.
  2. Найдите строку с нужным объектом — в ней указан сеанс-владелец.
  3. Удалите этот сеанс в ветке Сеансы.

Блокировка исчезнет вместе с сеансом. Удалять всех ради одного зависшего документа не нужно.

Сеансы, которые не удаляются

Бывает, что после удаления строка возвращается или висит со статусом без активности. Обычно это сеанс, привязанный к зависшему рабочему процессу rphost. Варианты по возрастанию жёсткости:

  • ⏳ подождать 1–2 минуты и обновить список — удаление проходит не мгновенно;
  • 🔄 в ветке Рабочие процессы посмотреть, какой процесс держит сеанс, и выключить именно его;
  • 🛑 перезапустить службу «Агент сервера 1С:Предприятия 8.3».

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

Крайний вариант — очистка сеансового кэша: остановить службу агента, удалить папки snccntx* в каталоге кластера (srvinfo\reg_1541), запустить службу. Сделайте копию каталога srvinfo перед удалением. Сам файл реестра кластера 1CV8Clst.lst не трогайте — в нём список баз кластера.

Командная строка: rac, параметры запуска и скрипты

Если серверов несколько или блокировку нужно ставить по расписанию, консоль неудобна. Для автоматизации есть утилита rac. Она работает через сервер администрирования ras, поэтому его нужно запустить заранее:

ras cluster --daemon

По умолчанию ras слушает порт 1545 и подключается к агенту на 1540. Дальше команды rac:

rem 1. Получить UUID кластера
rac cluster list

rem 2. Получить UUID базы
rac infobase summary list --cluster=<uuid-кластера>

rem 3. Заблокировать начало сеансов и регламентные задания
rac infobase update --cluster=<uuid-кластера> --infobase=<uuid-базы> ^
  --infobase-user="Администратор" --infobase-pwd="пароль" ^
  --sessions-deny=on --scheduled-jobs-deny=on ^
  --denied-message="Обновление базы" --permission-code="upd77"

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

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

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

В скрипте шаг 5 выполняют в цикле по всем UUID из вывода шага 4. После работы блокировку снимают той же командой infobase update с --sessions-deny=off --scheduled-jobs-deny=off.

Без rac: параметры запуска БСП

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

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"upd77"

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

Пароль администратора в bat-файле лежит открытым текстом. Ограничьте доступ к файлу или заведите для скриптов отдельного пользователя 1С с правами только на администрирование.

Файловая база: кто держит файл 1Cv8.1CD

У файловой базы нет консоли кластера, а сеансы живут в процессах 1cv8.exe / 1cv8c.exe на компьютерах пользователей. Если обработка БСП не справилась, остаются средства Windows.

База лежит в общей папке на сервере:

  1. На сервере откройте Управление компьютером → Общие папки → Открытые файлы.
  2. Найдите 1Cv8.1CD — рядом будет имя пользователя и компьютера.
  3. Правой кнопкой → «Закрыть открытый файл».

Пользователи работают через терминальный сервер (RDP):

  1. Откройте Диспетчер задач → Пользователи или вкладку «Подробности».
  2. Найдите процессы 1cv8.exe и 1cv8c.exe нужных пользователей.
  3. Завершите их — или выйдите из сеанса пользователя целиком.

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

Не удаляйте вручную служебные файлы рядом с 1Cv8.1CD, пока хоть один клиент открыт. Это не снимет блокировку, а при неудаче может повредить базу.

Что мешает отключить пользователей

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

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

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

В свойствах информационной базы (консоль кластера; в старых сборках 8.3 этих полей может не быть — тогда обновите платформу на сервере):

ПараметрЧто делаетПример значения
Время засыпания пассивного сеансаЧерез сколько секунд бездействия сеанс без соединения переходит в «спящий» и отдаёт лицензию300
Время завершения спящего сеансаЧерез сколько секунд «спящий» сеанс удаляется3600

С этими настройками сотрудник, закрывший ноутбук на ночь, не держит лицензию и блокировки до утра.

В свойствах кластера:

  • 🧹 флажок «Принудительно завершать проблемные процессы» — кластер сам выключит рабочий процесс, который превысил лимит памяти или перестал отвечать;
  • 🔁 «Интервал перезапуска» рабочих процессов, например 86400 секунд, — раз в сутки процессы обновляются ночью, и накопленные утечки памяти не копятся неделями.

На стороне Windows:

  • 🖥️ на терминальном сервере задайте групповой политикой лимит для отключённых RDP-сеансов — иначе брошенный сеанс с открытой 1С живёт до перезагрузки;
  • 🌙 регламентное обновление и бэкапы ставьте на ночь вместе с автоматической блокировкой через rac или параметр /C"ЗавершитьРаботуПользователей".

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

Можно ли выгнать одного пользователя, не трогая остальных?
Да. В консоли кластера удалите только его сеанс в ветке «Сеансы». Блокировку начала сеансов включать не нужно.
Сколько времени даёт обработка БСП перед отключением?
Столько, сколько вы зададите между текущим моментом и временем начала блокировки. Пользователи всё это время видят предупреждение.
Расходует ли лицензию удалённый сеанс?
Нет. Лицензия освобождается вместе с сеансом. Если она не вернулась, сеанс фактически не удалён — проверьте рабочие процессы.
Можно ли отключить пользователей веб-клиента так же?
Да. Сеансы веб-клиента видны в консоли кластера с приложением «Веб-клиент» и удаляются тем же способом. Блокировка начала сеансов действует и на них.
Что будет, если забыть снять блокировку?
Утром никто, кроме знающих код, не войдёт. Чтобы не попасть в такую ситуацию, задавайте время окончания блокировки сразу при её установке.