Администрирование · 10 мин
Как сбросить сеансы в 1С: способы и безопасные сценарии
Как сбросить сеансы в 1С через консоль администрирования, командную строку и конфигуратор. Принудительное завершение сеансов, риски, проверка результата и типичные ошибки.
Сеанс в 1С — это активное подключение пользователя или сервиса к информационной базе. Сеансы создают пользователи тонкого и толстого клиента, веб-клиенты, фоновые задания, COM-соединения и веб-сервисы. Зависший или «забытый» сеанс удерживает блокировки, занимает лицензии и мешает регламентным операциям, поэтому администратору периодически приходится завершать сеансы принудительно.
Способ сброса зависит от того, как развёрнута база: в файловом варианте сеансы завершаются через конфигуратор или перезапуск служб, а в клиент-серверном — через консоль администрирования серверов 1С, утилиту rac или программно из встроенного языка. Ниже разобраны рабочие сценарии для обоих вариантов, условия их применения и риски.
Принудительное завершение сеанса — штатная операция, но не безобидная: если у пользователя открыт незаписанный документ или выполняется длительная транзакция, несохранённые данные будут потеряны. Поэтому перед массовым сбросом стоит предупредить пользователей и убедиться, что не выполняются критичные фоновые задания.
Как понять, что сеанс действительно нужно сбросить
Не каждый «висящий» сеанс — проблема. Пользователь может просто оставить открытым клиент на ночь, и это нормально. Тревожные признаки: сеанс удерживает управляемую блокировку на объект, который нужен другим; фоновое задание выполняется аномально долго; пользователь уже вышел, но сеанс остался в списке активных (так называемый «зомби-сеанс»); закончились программные лицензии из-за накопленных соединений.
Перед сбросом посмотрите длительность сеанса, текущий вызов СУБД (в консоли кластера) и наличие блокировок. Если сеанс активно работает — возможно, это регламентное задание, которое скоро завершится само. Прерывать его в середине транзакции опаснее, чем подождать.
Проверьте время последней активности и компьютер пользователя
Найдите владельца блокировки в консоли кластера
Посчитайте сеансы по пользователям, ищите дубли
Проверьте состояние в консоли заданий перед отменой
Сброс сеансов через консоль администрирования серверов 1С
Основной инструмент для клиент-серверного режима — оснастка «Администрирование серверов 1С:Предприятия» (консоль кластера). Она устанавливается вместе с сервером 1С и доступна на машине администратора. Понадобятся права администратора кластера или информационной базы.
Откройте консоль, разверните нужный кластер, затем ветку «Сеансы» (или выберите конкретную базу и перейдите на вкладку сеансов). В списке видны пользователь, приложение, время начала, компьютер и активность. Выделите один или несколько сеансов (через Ctrl или Shift), нажмите правую кнопку и выберите «Удалить». Сеанс завершается принудительно, клиент получит сообщение о разрыве соединения.
Для массового сброса всех сеансов базы удобнее действовать через свойства информационной базы: установите блокировку сеансов (в свойствах базы в консоли) с сообщением пользователям, дождитесь завершения работы и удалите оставшиеся сеансы. Так вы избежите ситуации, когда пользователи переподключаются быстрее, чем вы их удаляете.
- 1Откройте оснастку «Администрирование серверов 1С:Предприятия»
- 2Разверните кластер и найдите нужную информационную базу
- 3При массовом сбросе включите блокировку сеансов в свойствах базы
- 4Откройте список сеансов, отсортируйте по времени активности
- 5Выделите нужные сеансы и нажмите «Удалить»
- 6Проверьте, что список очистился и блокировки сняты
Сброс сеансов через командную строку: утилита rac
Сервер 1С поставляется с консольной утилитой rac, которая позволяет управлять кластером из скриптов. Это удобно для автоматизации: например, для сброса всех сеансов перед ночным обновлением конфигурации. Утилита находится в каталоге установки сервера, рядом с ней работает служба агента кластера.
Логика работы двухшаговая: сначала получают список сеансов с идентификаторами, затем завершают их по ID. Типовой набор команд выглядит так: получить список кластеров (rac cluster list), получить сеансы базы (rac session list --cluster=<ID>), завершить сеанс (rac session terminate --cluster=<ID> --session=<ID>). В скриптах список ID обычно разбирают в цикле.
rac session list --cluster=<ID_кластера> --infobase=<ID_базы>
rac session terminate --cluster=<ID_кластера> --session=<ID_сеанса>Для полной автоматизации часто комбинируют rac с блокировкой сеансов: командой rac infobase update устанавливают параметры блокировки (sessions-deny, denied-message), затем завершают оставшиеся сеансы, выполняют обслуживание и снимают блокировку. Такой сценарий — стандарт для ночных регламентных окон.
Сброс сеансов в файловой базе и через конфигуратор
В файловом варианте нет кластера серверов, поэтому инструменты другие. В конфигураторе откройте меню «Администрирование → Активные пользователи»: отобразится список подключённых сеансов. Удалить сеанс отсюда нельзя — список носит информационный характер. Фактический сброс достигается либо просьбой пользователям выйти, либо разрывом доступа к файлу базы.
Если база опубликована на веб-сервере (IIS или Apache), сеансы завершаются перезапуском пула приложений или службы веб-сервера. Если пользователи подключены по сетевому доступу к файлу, радикальный способ — закрыть открытые дескрипторы файла на файловом сервере (например, через «Управление компьютером → Открытые файлы» в Windows), но это грубый метод с риском повреждения данных при активной записи.
Программное завершение сеансов и фоновых заданий
Из встроенного языка 1С можно получить список сеансов и завершить их программно — это удобно для регламентных операций, выполняемых из самой базы. Используется объект «Соединитель» (WS-соединение с сервером администрирования) или, в простых случаях, методы работы с фоновыми заданиями: ПолучитьФоновыеЗадания() с фильтром по состоянию «Активно» и метод Отменить() у найденного задания.
Для полноценного администрирования из кода применяют библиотеку администрирования кластера (v8.ComAdmin или COM-объект V83.COMConnector с интерфейсом агента). Скрипт подключается к агенту сервера, получает рабочие процессы и сеансы, затем вызывает TerminateSession для выбранных. Такой подход требует учётной записи администратора кластера и аккуратной обработки ошибок.
Проверка результата и типичные ошибки
После сброса убедитесь, что цель достигнута: список сеансов пуст или содержит только допустимые, блокировки сняты, пользователи могут войти заново. Если сеансы появляются снова сразу после удаления — ищите источник: это может быть регламентное задание, внешняя интеграция по COM или веб-сервису, либо пользователь с автопереподключением.
Частая ошибка — путать сеанс и соединение: завершение соединения не всегда сразу убирает сеанс, и наоборот. Другая типичная ситуация — администратор удаляет сеансы, но забывает снять блокировку базы после обслуживания, и утром никто не может войти. Третья — сброс сеансов без предупреждения в рабочее время, что приводит к потере несохранённых документов у пользователей.
Как проверить результат
Остались только допустимые сеансы
Сеансы появляются снова без действий пользователей
Нет зависших управляемых блокировок
Ошибки «Конфликт блокировок» у пользователей
Пользователи входят и работают штатно
Сообщение о блокировке сеансов или разрыве
Задания выполняются по расписанию
Задания в состоянии «Активно» часами
FAQ
Чем сеанс отличается от соединения в 1С?
Соединение — технический канал между клиентом и рабочим процессом сервера, а сеанс — логическая сессия пользователя или сервиса с контекстом (пользователь, лицензия, параметры). У одного сеанса может быть несколько соединений, и завершение соединения не всегда сразу завершает сеанс.
Потеряет ли пользователь данные при принудительном сбросе сеанса?
Да, несохранённые данные будут потеряны: открытые, но не записанные документы и введённые в формы значения не сохраняются. Записанные в базу объекты не пострадают. Поэтому перед массовым сбросом в рабочее время предупредите пользователей.
Как автоматически сбрасывать сеансы перед ночным обновлением?
Стандартная схема: скриптом rac или через консоль установите блокировку сеансов с запасом по времени, дождитесь выхода пользователей, завершите оставшиеся сеансы (rac session terminate), выполните обновление и снимите блокировку. Весь сценарий легко обернуть в пакетный файл или задание планировщика.
Почему после удаления сеанса он появляется снова?
Значит, есть активный источник подключений: регламентное задание, COM-интеграция, веб-сервис или клиент с автопереподключением. Найдите источник по приложению и компьютеру в свойствах сеанса и остановите его, иначе удаление будет бесконечным.
Можно ли сбросить сеансы без прав администратора кластера?
Нет, завершение чужих сеансов требует прав администратора кластера или информационной базы. Обычный пользователь может завершить только свой собственный сеанс — просто закрыв клиентское приложение.
Что делать, если консоль администрирования не видит кластер?
Проверьте, что служба агента сервера 1С запущена, версия консоли совпадает с версией сервера, а порт агента доступен с вашей машины. При необходимости добавьте сервер в консоль вручную по имени или IP-адресу.
Что важно запомнить
В клиент-серверной 1С сеансы сбрасывают через консоль кластера или утилиту rac, предварительно установив блокировку входа. В файловой базе — через перезапуск веб-сервера или закрытие доступа к файлу. Всегда предупреждайте пользователей и проверяйте результат по списку сеансов и блокировкам.