Выгнать всех из базы 1С: завершение сеансов, блокировка входа и rac
Содержание
Удалить активного пользователя
из 1С — значит завершить его сеанс. В клиент-серверной базе это делается в форме Администрирование → Обслуживание → Активные пользователи кнопкой завершения сеанса, в консоли кластера (правой кнопкой по сеансу → «Удалить») или командой rac session terminate. В файловой базе отключить одного человека из 1С нельзя: всех выгоняют через блокировку работы пользователей, а зависший процесс закрывают средствами Windows.
Речь идёт о сеансах, а не об учётных записях. Сам пользователь в справочнике «Пользователи» при этом остаётся, просто его программа закрывается. Пути даны для 1С 8.3 с интерфейсом «Такси» и конфигураций на БСП: Бухгалтерии 3.0, ЗУП 3.1, УТ 11.
Кто сейчас работает в базе: список активных пользователей
Прежде чем кого-то выгонять, посмотрите, кто подключён и через что. Список есть в трёх местах.
| Где смотреть | Путь | Что умеет |
|---|---|---|
| Форма БСП | Администрирование → Обслуживание → Активные пользователи | Показывает и завершает сеансы (в клиент-серверном режиме) |
| Стандартная обработка платформы | Главное меню → Все функции → Стандартные → Активные пользователи | Только показывает |
| Конфигуратор | Администрирование → Активные пользователи | Только показывает |
Если в главном меню нет пункта «Все функции», включите его: Главное меню → Сервис и настройки → Параметры → Отображать команду "Все функции".
В списке смотрите на колонку с приложением. Она подсказывает, кого можно выгонять без последствий:
- 🖥️ Тонкий или толстый клиент — обычный пользователь за компьютером.
- 🛠️ Конфигуратор — кто-то из администраторов или программистов. Сначала спросите, что он делает.
- ⚙️ Фоновое задание — регламентная операция : обмен, загрузка курсов, обновление индекса. Завершение прервёт её на середине.
- 🔌 COM-соединение — внешняя программа или обмен с другой базой.
- 🌐 Веб-клиент или веб-сервис — работа через браузер или интеграция по HTTP.
Колонки «Компьютер» и «Начало работы» помогают найти забытый сеанс. Если человек ушёл домой в пятницу, а сеанс открыт с утра, это он.
Журнал регистрации: кто входил и когда вышел
Когда нужно понять, кто держит базу ночью или почему сеанс «висит», откройте Администрирование → Обслуживание → Журнал регистрации. В отборе по событиям оставьте группу «Сеанс»: начало, завершение и аутентификацию. Видно, с какого компьютера был вход и было ли корректное завершение.
Как завершить сеанс пользователя в форме «Активные пользователи»
Самый простой способ для клиент-серверной базы. Нужны права администратора в 1С.
- Откройте
Администрирование → Обслуживание → Активные пользователи. - Выделите строку с нужным сеансом. Можно выделить несколько через
Ctrl. - Нажмите команду завершения сеанса в панели формы.
- Если на кластере заданы администраторы, программа попросит логин и пароль администратора кластера. Это не пароль пользователя 1С, а учётная запись из консоли серверов.
Пользователь увидит сообщение Сеанс отсутствует или удален. Несохранённый документ, который он редактировал, пропадёт.
Перед завершением чужого сеанса предупредите человека в мессенджере или по телефону. Минута на «сохраните документ» дешевле, чем заново набитая накладная на 80 строк.
В файловой базе эта команда не сработает: у файловой базы нет сервера, который мог бы оборвать чужое соединение. Для неё работает только блокировка из следующего раздела.
Блокировка работы пользователей и монопольный режим
Завершить сеансы мало: через минуту кто-нибудь зайдёт снова. Для обновления, загрузки .dt или тестирования и исправления базы нужен монопольный доступ. Его получают так: запрещают новые входы, выгоняют всех, кто внутри, и работают сами по коду разрешения.
Блокировка через программу
- Откройте
Администрирование → Обслуживаниеи перейдите по ссылке «Блокировка работы пользователей». - Напишите сообщение: что происходит и когда закончится. Например: «Обновление базы, вход откроется в 19:30».
- Задайте время начала и окончания блокировки.
- Придумайте код разрешения, например
upd2410. Он позволит вам зайти, когда остальные заблокированы. - Установите блокировку.
После установки пользователи получают предупреждение, а через несколько минут их сеансы закрываются. Это работает и в файловой базе: программа у каждого пользователя сама проверяет блокировку и завершает работу.
Чтобы войти в заблокированную базу самому, добавьте к параметрам запуска ключ с кодом:
"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"РазрешитьРаботуПользователей" и тем же кодом.
Не забывайте снимать блокировку. Если указали только время начала без окончания, утром бухгалтерия увидит ваше сообщение и не сможет войти.
Порядок выгона перед обновлением
На практике последовательность такая:
- За 15–30 минут предупредите пользователей в общем чате, что база закроется.
- Сделайте резервную копию: выгрузку
.dtили копию средствами СУБД. - Установите блокировку с сообщением и кодом разрешения.
- Дождитесь, пока сеансы закроются сами. Оставшиеся завершите вручную в форме или в консоли.
- Проверьте список активных пользователей: в нём должны остаться только вы и, возможно, Конфигуратор.
- Выполните работы, снимите блокировку и разрешите регламентные задания.
Резервная копия здесь обязательна: обновление и тестирование меняют структуру базы, и откатить их можно только из копии.
Когда монопольный режим не нужен
Не выгоняйте всех без повода. Монопольный доступ требуется для обновления конфигурации базы данных с изменением структуры, загрузки .dt, тестирования и исправления. Для выгрузки .dt, просмотра конфигурации или правки отчёта в расширении пользователей можно не трогать.
Удаление сеансов в консоли администрирования серверов 1С
Консоль нужна, когда в саму базу зайти нельзя или форма БСП не открывается. Работает только для клиент-серверного варианта.
- Запустите «Администрирование серверов 1С Предприятия».
- Раскройте дерево:
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер → Информационные базы → база → Сеансы. - Выделите сеансы. Правой кнопкой → «Удалить».
Чтобы закрыть вход, откройте свойства информационной базы (правой кнопкой по базе → «Свойства»). Там есть флажок «Блокировка начала сеансов включена», поля начала и конца, сообщение и код разрешения. Рядом — «Блокировка регламентных заданий включена»: включите её, чтобы фоновые задания не перезапускались, пока вы работаете.
Для изменения свойств консоль запросит логин и пароль администратора информационной базы. Это пользователь 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 покажет, кто держит лицензию.