Удаление зависших соединений и сеансов 1С: консоль, rac и блокировка входа
Содержание
Чтобы удалить соединение в 1С 8.3 на клиент-серверной базе, откройте «Консоль администрирования серверов 1С», раскройте Кластеры → <кластер> → Информационные базы → <база> → Сеансы, щёлкните правой кнопкой по нужному сеансу и выберите «Удалить». Соединения этого сеанса закроются вместе с ним, а лицензия освободится.
Частое заблуждение — пытаться «почистить» соединения прямо в таблицах SQL или удалять файлы базы. Так делать не нужно: сеансами и подключениями управляет кластер серверов , и все штатные способы работают через него. В файловой базе кластера нет, там подход другой — его тоже разберём.
Сеанс и соединение: что именно вы удаляете
В 1С эти два понятия часто путают, а от этого зависит, какую строку удалять.
| Объект | Что это | Где виден | Что будет при удалении |
|---|---|---|---|
| Сеанс | Работа одного пользователя или фонового задания с базой | Узел «Сеансы» у базы | Пользователя «выбросит» из программы, лицензия освободится |
| Соединение | Сетевой канал между клиентом и рабочим процессом | Узел «Соединения» у базы или у рабочего процесса | Канал оборвётся; сеанс либо переподключится, либо уйдёт в «спящий» режим |
Практическое правило простое:
- 👤 Пользователь «висит» в списке, держит лицензию или блокировку — удаляйте сеанс.
- 🔌 Висит подключение без сеанса (например, от внешней программы или зависшего Конфигуратора) — разрывайте соединение.
- 🗄️ Нужно, чтобы в базу никто не вошёл снова, — после удаления включите блокировку начала сеансов.
Удаление сеанса — это аварийное завершение работы пользователя. Несохранённый документ пропадёт, а начатая транзакция откатится. Предупредите людей заранее или делайте это вне рабочего времени.
Как удалить соединение через консоль администрирования
Консоль ставится вместе с сервером 1С. В Windows её ярлык обычно лежит в меню «Пуск» рядом с сервером. Если ярлыка нет, консоль можно открыть через оснастку MMC, указав файл 1CV8 Servers.msc.
Удаление сеанса пользователя
- Запустите консоль. Если сервер ещё не добавлен, щёлкните правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3» и укажите имя сервера.
- Раскройте
Кластеры → <кластер> → Информационные базы → <нужная база> → Сеансы. - В списке найдите пользователя. Смотрите на колонки «Пользователь», «Компьютер», «Приложение» и «Начало работы».
- Щёлкните правой кнопкой по строке и выберите «Удалить». Подтвердите действие.
- Обновите список (F5). Сеанс должен исчезнуть.
Можно выделить сразу несколько строк с Shift или Ctrl и удалить их одним действием. Это удобно, когда нужно выгнать всех перед обновлением.
Если у кластера задан администратор, консоль спросит логин и пароль администратора кластера. Это не пользователь базы 1С, а отдельная учётная запись в настройках кластера.
Разрыв соединения без сеанса
Соединения видны в узле «Соединения» у информационной базы и в узле рабочего процесса: Кластеры → <кластер> → Рабочие процессы → <процесс> → Соединения. По колонке «Приложение» легко отличить, кто держит канал: Конфигуратор, COM-соединение, веб-клиент или фоновое задание.
Если строка не исчезает после удаления сеанса, разорвите её через утилиту rac (следующий раздел) — там это делается одной командой.
Удаление сеансов и подключений через rac и ras
Консоль есть только в Windows. На Linux-сервере, а также для скриптов используют пару утилит:
- 🖥️
ras— сервер администрирования, слушает порт1545; - ⌨️
rac— консольный клиент, который подключается кras.
Сам менеджер кластера (процесс rmngr) и агент сервера (ragent) напрямую команд не принимают: управлять ими нужно через ras/rac или консоль. Утилиты лежат в каталоге bin установленной платформы.
Шаг 1. Запустите сервер администрирования
ras cluster --daemon
В Windows без ключа --daemon окно останется открытым — это нормально, пока вы работаете. Для постоянной работы ras регистрируют как службу.
Шаг 2. Узнайте идентификаторы кластера и базы
rac cluster list
rac infobase summary list --cluster=<uuid-кластера>
Из первого вывода берите значение cluster, из второго — infobase нужной базы.
Шаг 3. Найдите и удалите сеанс
rac session list --cluster=<uuid-кластера> --infobase=<uuid-базы>
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Шаг 4. Разорвите отдельное соединение
rac connection list --cluster=<uuid-кластера> --infobase=<uuid-базы>
rac connection disconnect --cluster=<uuid-кластера> --process=<uuid-процесса> --connection=<uuid-соединения>
Идентификатор процесса берите из поля process в выводе списка соединений. Если у кластера есть администратор, добавьте к каждой команде --cluster-user=<имя> --cluster-pwd=<пароль>.
Полный список подкоманд и параметров для вашей версии платформы покажет rac help и, например, rac help session.
Зависшие сеансы в файловой базе и сброс блокировок
В файловом варианте нет ни консоли, ни rac. Каждый пользователь открывает файл 1Cv8.1CD напрямую по сети, поэтому «соединение» — это просто открытый файл.
Что делать по порядку
- Попросите пользователей закрыть 1С. Список работающих можно посмотреть в самой программе: в конфигурациях на БСП —
Администрирование → Обслуживание → Активные пользователи, в Конфигураторе —Администрирование → Активные пользователи. - Если человек недоступен, завершите процесс
1cv8.exeили1cv8c.exeна его компьютере через Диспетчер задач. - Если компьютер выключен, а база всё равно «занята», закройте открытый файл на сервере, где лежит папка базы:
Управление компьютером → Общие папки → Открытые файлы, найдите1Cv8.1CDи выберите «Закрыть открытый файл». - Проверьте, не остался ли в папке базы файл блокировки
1Cv8.1CL. Когда все пользователи вышли, его можно удалить — при следующем входе он создастся заново.
Перед удалением файла блокировки и закрытием открытых файлов сделайте копию папки базы. Закрывайте файл только когда в базе точно никто не работает: обрыв записи посреди транзакции может повредить 1Cv8.1CD.
Нужно ли чистить таблицы базы
В клиент-серверной базе управляемые блокировки хранятся в памяти кластера, а не в таблицах СУБД. Удалили сеанс — его блокировки снялись. Править служебные таблицы SQL вручную нельзя: это верный путь к повреждённой базе.
Если сеансы «воскресают» после удаления или кластер показывает сеансы давно выключенных компьютеров, помогает очистка сеансовых данных сервера. Для этого останавливают службу «Агент сервера 1С:Предприятия 8.3» и удаляют каталоги snccntx* в папке кластера внутри srvinfo.
Остановка службы сервера 1С обрывает работу всех пользователей всех баз на этом сервере. Делайте это только в нерабочее время и после предупреждения. Файл 1CV8Clst.lst и папки с данными баз не трогайте.
Как не дать пользователям подключиться снова
Удалить сеанс мало: через минуту пользователь перезапустит 1С. Перед обновлением, сменой конфигурации или тестированием базы включите блокировку входа.
Способ 1. В свойствах базы в консоли
Откройте свойства базы (Информационные базы → <база> → Свойства) и заполните:
- ✅ «Блокировка начала сеансов включена» — флажок;
- 🕒 начало и конец блокировки;
- 💬 сообщение для пользователей;
- 🔑 «Код разрешения» — придумайте строку, например
upd2510.
С кодом разрешения вы сами сможете войти, добавив в строку запуска параметр /UCupd2510.
Способ 2. Из самой программы (конфигурации на БСП)
В Бухгалтерии, ЗУП, УТ и других типовых решениях на БСП откройте Администрирование → Обслуживание → Блокировка работы пользователей. Программа предупредит работающих пользователей и через несколько минут завершит их сеансы сама.
Способ 3. Параметром запуска
Для скриптов удобно запускать базу с параметром:
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" ENTERPRISE /S"server\base" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей"
Снять блокировку — тот же запуск с /C"РазрешитьРаботуПользователей". Это работает только в конфигурациях на БСП.
Ограничения и лимиты подключений к серверу 1С
Часть проблем с «лишними» соединениями решается настройкой, а не ручным удалением.
| Параметр | Где задаётся | Что даёт |
|---|---|---|
| Время засыпания пассивного сеанса | Свойства информационной базы | Сеанс без активности переходит в «спящий» и освобождает ресурсы |
| Время завершения спящего сеанса | Свойства информационной базы | Спящий сеанс через заданное время удаляется автоматически |
| Количество ИБ на процесс, количество соединений на процесс | Свойства рабочего сервера | Распределяет подключения между рабочими процессами |
| Допустимый объём памяти рабочих процессов | Свойства рабочего сервера | Процесс, «съевший» память, перезапускается, а не тормозит всех |
| Блокировка регламентных заданий | Свойства информационной базы | Фоновые задания не открывают новые сеансы |
Время засыпания и завершения задают в секундах. Например, 1200 и 28800 значат: через 20 минут простоя сеанс «засыпает», а через 8 часов в спящем состоянии удаляется.
Спящий сеанс не держит клиентскую лицензию. Поэтому настройка этих двух параметров часто снимает жалобы «нет свободных лицензий» без всякого ручного удаления.
Число одновременных пользователей ограничивают и лицензии: на каждый сеанс клиента нужна клиентская лицензия. Если сеансов больше, чем лицензий, новые пользователи получат ошибку, пока кто-то не выйдет.
Почему соединения с базой 1С зависают
Прежде чем удалять, полезно понять причину. Иначе завтра будет то же самое.
- 🔌 Обрыв сети или выключенный компьютер. Клиент не успел сообщить серверу о выходе, сеанс висит до таймаута.
- 🧩 Внешняя программа через COM-соединение. Обработка обмена или сайт открыли соединение и не закрыли его. В колонке «Приложение» видно «COM-соединение».
- ⏰ Зависшее фоновое или регламентное задание. Например, долгий обмен или пересчёт итогов.
- 🌐 Веб-публикация. Веб-сервер держит сеансы веб-клиента и HTTP-сервисов, пока пул приложений жив.
- 🔒 Долгая транзакция. Пользователь запустил тяжёлое проведение, сеанс держит блокировки, остальные ждут.
- 🛠️ Конфигуратор, оставленный открытым. Сам по себе он не захватывает базу монопольно, но мешает, когда для операции нужен монопольный режим.
Как найти виновника
- В консоли в списке сеансов отсортируйте по колонке последней активности: давно неактивные — первые кандидаты.
- Посмотрите колонку «Приложение»: фоновые задания и COM-соединения сразу видны.
- Колонки про блокировки и время работы в СУБД покажут, кто держит данные и мешает остальным.
- Сверьтесь с журналом регистрации базы (в программе на БСП —
Администрирование → Обслуживание → Журнал регистрации): отбор по пользователю и времени покажет, что он делал последним.
Не удаляйте сеанс фонового задания обмена посреди выгрузки, если можно дождаться конца. Иначе часть данных придётся выгружать повторно.
Автоматический контроль активных сессий
Ручное удаление годится раз в неделю. Если зависания регулярны, настройте скрипт и запускайте его Планировщиком заданий Windows, например каждую ночь в 02:00.
Пример на PowerShell: удаляет в выбранной базе все сеансы Конфигуратора и COM-соединений. Замените пути и идентификаторы на свои.
$rac = "C:\Program Files\1cv8\<версия>\bin\rac.exe"
$cluster = "<uuid-кластера>"
$ib = "<uuid-базы>"
$out = & $rac session list --cluster=$cluster --infobase=$ib
$sessions = @()
$cur = @{}
foreach ($line in $out) {
if ($line.Trim() -eq "") {
if ($cur.Count) { $sessions += [pscustomobject]$cur; $cur = @{} }
continue
}
$k, $v = $line -split ":", 2
$cur[$k.Trim()] = $v.Trim()
}
if ($cur.Count) { $sessions += [pscustomobject]$cur }
$sessions | Where-Object { $_."app-id" -in @("Designer", "COMConnection") } | ForEach-Object {
& $rac session terminate --cluster=$cluster --session=$($_.session)
Write-Output "Удалён сеанс $($_.session) ($($_."user-name"), $($_."app-id"))"
}
Перед боевым запуском закомментируйте строку с terminate и посмотрите, какие сеансы скрипт выберет. Набор полей вывода у разных версий платформы может отличаться — сверьте с реальным выводом rac session list.
Расписание ставьте на время, когда в базе точно нет работающих людей. Ночной обмен и резервное копирование не должны попадать в окно запуска скрипта.
Кроме скрипта, для контроля полезны:
- 📊 периодическая выгрузка
rac session listв файл — видно, сколько сеансов в пике; - 📩 уведомление администратору, если сеансов больше, чем лицензий;
- 🧾 технологический журнал сервера — если нужно разобраться в причине частых разрывов.
Частые вопросы
Освободится ли лицензия сразу после удаления сеанса?
Пользователь потеряет данные, если удалить его сеанс?
Почему после удаления сеанс появился снова?
Можно ли удалить чужой сеанс без прав администратора кластера?
Как удалить соединение, если консоль не открывается?
rac с любого компьютера, где установлена платформа, указав адрес сервера администрирования: rac server:1545 cluster list. Сервер ras должен быть запущен.