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

· 9 мин

Содержание

Удалить активного пользователя из 1С — значит завершить его сеанс. В клиент-серверной базе это делается в форме Администрирование → Обслуживание → Активные пользователи кнопкой завершения сеанса, в консоли кластера (правой кнопкой по сеансу → «Удалить») или командой rac session terminate. В файловой базе отключить одного человека из 1С нельзя: всех выгоняют через блокировку работы пользователей, а зависший процесс закрывают средствами Windows.

Речь идёт о сеансах, а не об учётных записях. Сам пользователь в справочнике «Пользователи» при этом остаётся, просто его программа закрывается. Пути даны для 1С 8.3 с интерфейсом «Такси» и конфигураций на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11.

Кто сейчас работает в базе: список активных пользователей

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

Где смотретьПутьЧто умеет
Форма БСПАдминистрирование → Обслуживание → Активные пользователиПоказывает и завершает сеансы (в клиент-серверном режиме)
Стандартная обработка платформыГлавное меню → Все функции → Стандартные → Активные пользователиТолько показывает
КонфигураторАдминистрирование → Активные пользователиТолько показывает

Если в главном меню нет пункта «Все функции», включите его: Главное меню → Сервис и настройки → Параметры → Отображать команду "Все функции".

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

  • 🖥️ Тонкий или толстый клиент — обычный пользователь за компьютером.
  • 🛠️ Конфигуратор — кто-то из администраторов или программистов. Сначала спросите, что он делает.
  • ⚙️ Фоновое задание — регламентная операция : обмен, загрузка курсов, обновление индекса. Завершение прервёт её на середине.
  • 🔌 COM-соединение — внешняя программа или обмен с другой базой.
  • 🌐 Веб-клиент или веб-сервис — работа через браузер или интеграция по HTTP.

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

Журнал регистрации: кто входил и когда вышел

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

Как завершить сеанс пользователя в форме «Активные пользователи»

Самый простой способ для клиент-серверной базы. Нужны права администратора в 1С.

  1. Откройте Администрирование → Обслуживание → Активные пользователи.
  2. Выделите строку с нужным сеансом. Можно выделить несколько через Ctrl.
  3. Нажмите команду завершения сеанса в панели формы.
  4. Если на кластере заданы администраторы, программа попросит логин и пароль администратора кластера. Это не пароль пользователя 1С, а учётная запись из консоли серверов.

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

Перед завершением чужого сеанса предупредите человека в мессенджере или по телефону. Минута на «сохраните документ» дешевле, чем заново набитая накладная на 80 строк.

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

Блокировка работы пользователей и монопольный режим

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

Блокировка через программу

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

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

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

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Base\Buh" /UCupd2410

Для клиент-серверной базы вместо /F указывают /S"сервер\имя_базы". Код можно прописать и в окне запуска: Изменить → Дополнительные параметры запуска в настройках базы.

Запуск с выгоном пользователей

В конфигурациях на БСП есть параметр запуска, который ставит блокировку и выгоняет всех без захода в настройки:

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

После работ блокировку снимают в той же форме или запуском с /C"РазрешитьРаботуПользователей" и тем же кодом.

Не забывайте снимать блокировку. Если указали только время начала без окончания, утром бухгалтерия увидит ваше сообщение и не сможет войти.

Порядок выгона перед обновлением

На практике последовательность такая:

  1. За 15–30 минут предупредите пользователей в общем чате, что база закроется.
  2. Сделайте резервную копию: выгрузку .dt или копию средствами СУБД.
  3. Установите блокировку с сообщением и кодом разрешения.
  4. Дождитесь, пока сеансы закроются сами. Оставшиеся завершите вручную в форме или в консоли.
  5. Проверьте список активных пользователей: в нём должны остаться только вы и, возможно, Конфигуратор.
  6. Выполните работы, снимите блокировку и разрешите регламентные задания.

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

Когда монопольный режим не нужен

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

Удаление сеансов в консоли администрирования серверов 1С

Консоль нужна, когда в саму базу зайти нельзя или форма БСП не открывается. Работает только для клиент-серверного варианта.

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

Чтобы закрыть вход, откройте свойства информационной базы (правой кнопкой по базе → «Свойства»). Там есть флажок «Блокировка начала сеансов включена», поля начала и конца, сообщение и код разрешения. Рядом — «Блокировка регламентных заданий включена»: включите её, чтобы фоновые задания не перезапускались, пока вы работаете.

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

Если консоль не запускается с ошибкой о классе или оснастке, зарегистрируйте библиотеку от имени администратора Windows: regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll". Версия должна совпадать с версией сервера.

Завершение сеансов из командной строки: утилита rac

rac удобна, когда консоли под рукой нет, сервер на Linux или выгон нужно поставить в скрипт перед ночным обновлением. Утилита работает через сервер администрирования ras, который должен быть запущен. По умолчанию ras слушает порт 1545.

Запуск ras как службы Windows:

sc create "1C:Enterprise 8.3 Remote Server" binPath= "\"C:\Program Files\1cv8\<версия>\bin\ras.exe\" cluster --service --port=1545 localhost:1540" start= auto

На Linux для разовой работы хватит ras cluster --daemon.

Основная последовательность команд:

rac cluster list
rac infobase summary list --cluster=<id_кластера>
rac session list --cluster=<id_кластера> --infobase=<id_базы>
rac session terminate --cluster=<id_кластера> --session=<id_сеанса>

Если rac запускается не на самом сервере 1С, первым аргументом укажите адрес ras: rac srv1c:1545 cluster list. Без адреса утилита обращается к localhost:1545, и на рабочем компьютере администратора получит отказ в подключении.

Идентификаторы берутся из вывода предыдущей команды: строки cluster :, infobase :, session :. Если в кластере есть администраторы, добавьте --cluster-user= и --cluster-pwd=.

Запрет новых входов той же утилитой:

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

После работ — то же с --sessions-deny=off и --scheduled-jobs-deny=off. Полный список ключей: rac help infobase и rac help session.

Скрипт: выгнать всех из одной базы

PowerShell-пример. Подставьте путь к rac.exe и идентификаторы:

$rac = "C:\Program Files\1cv8\<версия>\bin\rac.exe"
$cluster = "<id_кластера>"
$ib = "<id_базы>"

& $rac session list --cluster=$cluster --infobase=$ib |
  Select-String '^session\s+:\s+(\S+)' |
  ForEach-Object {
    & $rac session terminate --cluster=$cluster --session=$_.Matches[0].Groups[1].Value
  }

Запускайте его после установки блокировки, иначе часть пользователей зайдёт обратно, пока скрипт работает.

Зависшие процессы: выгрузка на уровне Windows и Linux

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

Файловая база в сетевой папке

Файл 1Cv8.1CD держит открытым компьютер, где 1С закрылась некорректно. На сервере с общей папкой откройте compmgmt.msc → Общие папки → Открытые файлы, найдите 1Cv8.1CD и закройте его для нужного пользователя.

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

Терминальный сервер

Если все работают через RDP, можно закрыть 1С конкретного человека, не трогая остальных:

taskkill /F /IM 1cv8c.exe /FI "USERNAME eq ivanov"

Для толстого клиента имя процесса 1cv8.exe. Список терминальных сеансов покажет query session.

Рабочий процесс сервера 1С

В клиент-серверной базе сеансы обслуживает процесс rphost. В консоли в узле «Рабочие процессы» видно PID каждого процесса. Завершают его в диспетчере задач Windows на вкладке «Подробности» или на Linux:

ps aux | grep rphost
kill <PID>

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

Какая у вас ситуация?

Почему активный пользователь снова появляется в списке

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

  • 🔁 Пользователь просто зашёл снова. Без блокировки начала сеансов это вопрос времени.
  • ⚙️ Регламентные задания. Сервер запускает их по расписанию, и каждое — это сеанс «Фоновое задание». Помогает блокировка регламентных заданий.
  • 🔌 Внешний обмен. Сайт, мобильное приложение или другая база подключаются через COM-соединение или веб-сервис по расписанию. Найдите источник по колонке «Компьютер».
  • 💤 Спящий сеанс. При обрыве сети сервер держит сеанс, чтобы пользователь мог вернуться. В свойствах информационной базы в консоли есть параметры «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса»: они определяют, как долго такой сеанс живёт.

Спящие сеансы занимают лицензии. Если пользователи жалуются, что «не хватает лицензий», хотя людей меньше, чем ключей, проверьте именно их: rac session list --licenses покажет, кто держит лицензию.

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

Можно ли завершить сеанс пользователя в файловой базе 1С?
Напрямую нет: у файловой базы нет сервера, который оборвёт чужое соединение. Ставьте блокировку работы пользователей или закрывайте процесс 1С на компьютере пользователя.
Пропадут ли данные пользователя после завершения сеанса?
Записанные документы сохранятся. Пропадёт только то, что было открыто и не записано.
Чем отличается удаление сеанса от удаления соединения в консоли?
Сеанс — это работа пользователя в базе, соединение — канал между клиентом и рабочим процессом. Пользователя отключает удаление сеанса; удаление соединения без сеанса обычно не нужно.
Где взять пароль администратора кластера?
Его задавали при настройке сервера 1С. Если его никто не помнит, обратитесь к тому, кто администрирует сервер. Пересоздавать кластер ради этого нельзя: пропадут регистрации всех баз.
Почему в списке активных пользователей я вижу сам себя?
Ваш текущий сеанс тоже активен. Завершить его из той же формы нельзя, а для монопольного доступа он не мешает, если других сеансов нет.