К статье
Практический материал

Администрирование · 10 мин

Как убрать зависшие сеансы 1С

Как найти и снять зависшие сеансы 1С в файловом и клиент-серверном режиме: консоль кластера, список активных пользователей, команды ОС и профилактика.

Зависший сеанс 1С — это соединение пользователя с информационной базой, которое по факту не работает, но продолжает удерживать лицензию, блокировать объекты или мешать регламентным операциям. Типичные признаки: пользователь не может войти в базу из-за ошибки «сеанс уже существует», документ не проводится из-за блокировки данных «пустым» пользователем, а при обновлении конфигурации система сообщает, что с базой работают люди, хотя все давно вышли.

Причина зависания почти всегда одна и та же: клиентское приложение закрылось аварийно (сбой питания, разрыв сети, принудительное завершение процесса), а сервер 1С или файловая база ещё не зафиксировали разрыв соединения. В клиент-серверном режиме сеанс висит в кластере, в файловом — блокировка остаётся в служебном файле базы. Способ удаления зависит от режима работы, поэтому первый шаг — определить, как развёрнута ваша база.

Ниже разобраны оба сценария: работа через консоль кластера серверов 1С, снятие сеансов в файловой базе, завершение процессов на уровне операционной системы и настройки, которые не дают сеансам висеть бесконечно. Отдельно описаны риски: принудительное снятие сеанса во время записи данных может привести к незавершённым транзакциям.

Определите, в каком режиме работает база

От режима работы зависят и инструменты, и сама природа зависшего сеанса. Откройте список информационных баз в окне запуска 1С и посмотрите строку подключения: если база указана как путь к папке (например, \\server\bases\trade) — это файловый режим. Если указаны имя сервера и имя базы в кластере — клиент-серверный.

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

Снятие зависшего сеанса через консоль кластера 1С

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

Зависший сеанс обычно узнаваем по признакам: давно нет активности, признак «Спящий» — да, либо пользователь точно сообщает, что программа у него закрыта, а сеанс в списке остался. Выделите такой сеанс и нажмите «Удалить» (или выберите соответствующий пункт контекстного меню). Сеанс будет снят немедленно, лицензия освободится, управляемые блокировки — сняты.

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

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

Зависшие сеансы в файловой базе

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

Если команда не срабатывает (а с действительно зависшим сеансом так бывает часто), найдите компьютер этого пользователя и завершите процесс 1cv8.exe через диспетчер задач. Если компьютер выключен или недоступен, а запись о соединении мешает, убедитесь, что базой никто не пользуется, и удалите файл блокировок 1Cv8.1CL в каталоге базы — он будет пересоздан при следующем входе.

Завершение процессов на уровне операционной системы

Когда сеанс завис на стороне клиента, а доступа к консоли нет, помогает завершение процесса на самом компьютере пользователя. В Windows откройте диспетчер задач (Ctrl+Shift+Esc), найдите процесс «1С:Предприятие» (1cv8.exe или 1cv8c.exe) и нажмите «Снять задачу». Для сервера терминалов администратор может завершить процесс конкретного пользователя через диспетчер задач на вкладке «Пользователи».

powershell
# Завершить процессы 1С конкретного пользователя на терминальном сервере
Get-Process 1cv8* -IncludeUserName | Where-Object {$_.UserName -like '<em>ivanov</em>'} | Stop-Process -Force

На самом сервере 1С трогать процессы rphost и ragent ради одного зависшего сеанса не следует: перезапуск рабочего процесса оборвёт сеансы всех пользователей, которых он обслуживает. Это допустимо только как крайняя мера, когда кластер перестал отвечать целиком, и только после предупреждения пользователей.

Настройки, которые не дают сеансам висеть

Лучший способ борьбы с зависшими сеансами — автоматическое завершение неактивных. В консоли кластера откройте свойства информационной базы и задайте два параметра: «Завершать спящие сеансы через» (например, 900–1800 секунд) и «Принудительно завершать сеансы через» (например, через час после «засыпания»). Тогда сеанс пользователя, ушедшего домой с незакрытой программой, будет снят автоматически, а лицензия освободится.

Дополнительно проверьте параметры кластера «Интервал перезапуска» для рабочих процессов и «Допустимое количество сеансов на процесс» — разумная ротация rphost снижает накопление «мусорных» соединений. Для файловых баз, опубликованных на веб-сервере, аналогичную роль играют таймауты сеансов в настройках публикации.

Маршрут решения

Как выбрать действие

База клиент-серверная, завис один сеансУдалите сеанс в консоли кластера: Информационные базы → база → Сеансы → Удалить
База файловая, пользователь в списке активных, но не работаетПопробуйте «Завершить работу» из списка активных пользователей, затем завершите 1cv8.exe на его ПК
Компьютер пользователя выключен, а блокировка осталасьУбедитесь, что базой никто не пользуется, и удалите файл 1Cv8.1CL в каталоге базы
Зависшие сеансы появляются регулярноНастройте автоматическое завершение спящих сеансов в свойствах информационной базы
Кластер не отвечает целикомПредупредите пользователей и перезапустите агент сервера 1С как крайнюю меру

Как проверить результат и типичные ошибки

После снятия сеанса проверьте три вещи: пользователь может войти в базу без ошибки о дублировании сеанса; в списке сеансов консоли (или активных пользователей) его «призрак» исчез; документ или объект, который был заблокирован, теперь открывается на изменение. Если блокировка осталась — возможно, её держит другой, реально работающий сеанс, найдите его по тому же списку.

Контрольные точки

Как проверить результат

Список сеансов в консоли кластера
Норма

Зависший сеанс отсутствует, число сеансов соответствует реально работающим

Тревожный признак

Сеанс появился снова без действий пользователя — ищите запущенный процесс или фоновое задание

Вход пользователя в базу
Норма

Вход выполняется без сообщений о существующем сеансе

Тревожный признак

Ошибка повторяется — сеанс не удалён или пользователь вошёл с другого устройства

Блокировка объекта
Норма

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

Тревожный признак

Блокировка держится — её удерживает другой активный сеанс

Типичные ошибки
01
Удаление сеанса без проверки: пользователь реально работал, несохранённые данные потеряны.
02
Перезапуск rphost ради одного сеанса — обрываются сеансы десятков других пользователей.
03
Удаление 1Cv8.1CL при работающих пользователях файловой базы — риск рассогласования данных.
04
Отсутствие таймаутов спящих сеансов — лицензии постоянно заняты «призраками».
05
Игнорирование фоновых заданий: регламентное задание тоже держит сеанс и блокировки.

Отдельный частый случай — зависшие сеансы фоновых и регламентных заданий. Они видны в консоли кластера как сеансы с типом приложения «Фоновое задание». Если регламентное задание зависло, снимите именно его сеанс, а затем проверьте в консоли заданий, не зациклилось ли оно из-за ошибки в данных или кода.

Итог

Что важно запомнить

В клиент-серверном режиме сеанс снимается через консоль кластера, в файловом — через список активных пользователей и завершение процесса на ПК. Перед принудительным удалением убедитесь, что пользователь не работает. Настройка автоматического завершения спящих сеансов избавляет от проблемы системно.

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

Как понять, что сеанс именно завис, а не просто открыт?

Ориентируйтесь на время последней активности и признак «Спящий» в консоли кластера, а главное — на подтверждение самого пользователя, что программа у него закрыта. Если активности нет давно, а человек говорит, что вышел, — сеанс можно считать зависшим.

Опасно ли принудительно удалять сеанс?

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

Почему зависший сеанс держит лицензию?

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

Что делать, если сеанс появляется снова после удаления?

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

Как снять все сеансы перед обновлением конфигурации?

Установите в свойствах информационной базы блокировку начала сеансов с датой начала «сейчас» и сообщением для пользователей, дождитесь завершения текущей работы, затем удалите оставшиеся сеансы в консоли кластера. После обновления снимите блокировку.

Можно ли снять зависший сеанс без прав администратора?

Нет, удаление сеансов в консоли кластера требует прав администратора кластера или информационной базы. Обычный пользователь может завершить только свой собственный процесс 1cv8.exe на своём компьютере.