Администрирование · 9 мин
Как закрыть зависший сеанс 1С
Как закрыть зависший сеанс 1С: через консоль кластера, диспетчер задач, конфигуратор и командную строку. Способы завершить сеанс без потери данных.
Зависший сеанс 1С — ситуация, знакомая каждому администратору и бухгалтеру: программа не отвечает, пользователь не может войти под своим логином, а фоновые задания блокируют проведение документов. Причины разные — обрыв сети, тяжёлый запрос, конфликт блокировок или аварийное завершение клиента, после которого сервер продолжает считать сеанс активным.
Способ закрытия зависит от режима работы базы. В файловом варианте сеанс существует только на компьютере пользователя и завершается через диспетчер задач. В клиент-серверном варианте «висячие» сеансы хранятся на сервере 1С:Предприятия, и снять их можно через консоль кластера, конфигуратор или административные утилиты. Ниже разобраны все рабочие методы — от простого к сложному.
Как понять, что сеанс действительно завис
Прежде чем что-то завершать, убедитесь, что сеанс завис, а не просто выполняет длительную операцию. Проведение большого документа, пересчёт итогов или групповая обработка могут «подвесить» интерфейс на несколько минут — это нормально, и прерывать такой процесс опасно для целостности данных.
Типичные признаки настоящего зависания: окно 1С не отвечает более 10–15 минут при отсутствии нагрузки на диск и процессор; пользователь не может войти в базу, получая сообщение о том, что сеанс с таким пользователем уже активен; в консоли кластера сеанс отображается, но колонки «Прочитано» и «Записано» не меняются; другие пользователи жалуются на блокировки, которые не снимаются.
Проверить загрузку процесса 1cv8.exe в диспетчере задач
Подождать завершения, не прерывать
Снять сеанс через консоль кластера
Найти сеанс-блокировщик в консоли
Завершение сеанса на локальном компьютере (файловая база)
Если база файловая или завис тонкий/толстый клиент на конкретном компьютере, достаточно завершить процесс. Нажмите Ctrl+Shift+Esc, чтобы открыть диспетчер задач, найдите процесс 1cv8.exe (или 1cv8c.exe для тонкого клиента), выделите его и нажмите «Снять задачу».
Если процессов несколько и непонятно, какой из них завис, ориентируйтесь на столбец «ЦП» и «Память»: зависший процесс обычно либо полностью неактивен, либо, наоборот, потребляет 25–100% одного ядра в бесконечном цикле. Можно также переключиться на вкладку «Подробности» и посмотреть время запуска процесса.
taskkill /F /IM 1cv8.exeКоманда taskkill /F /IM 1cv8.exe завершит все процессы 1С на машине — используйте её, только если другие сеансы на этом компьютере не нужны. Для точечного завершения по идентификатору процесса применяйте taskkill /F /PID номер.
Закрытие сеанса через консоль кластера серверов 1С
В клиент-серверном варианте основной инструмент — консоль администрирования серверов 1С:Предприятия. Она устанавливается вместе с сервером и доступна на машине администратора через «Пуск → 1С:Предприятие → Администрирование серверов».
- 1Откройте консоль «Администрирование серверов 1С:Предприятия»
- 2Разверните нужный кластер и ветку «Сеансы»
- 3Найдите зависший сеанс по имени пользователя или компьютеру
- 4Проверьте колонки «Прочитано» и «Записано» — у зависшего сеанса значения не меняются
- 5Щёлкните по сеансу правой кнопкой и выберите «Удалить»
- 6Попросите пользователя войти в базу заново и проверьте результат
Удаление сеанса в консоли — штатная операция: сервер корректно освобождает соединение и блокировки. Однако несохранённые данные пользователя будут потеряны, поэтому при возможности предупредите его. Если пользователь неизвестен, посмотрите в свойствах сеанса имя компьютера и время начала — это поможет найти владельца.
Если сеансов много (например, после сбоя терминального сервера), сеансы можно отфильтровать по информационной базе и удалить группой. Действуйте внимательно: удаление активного сеанса прервёт работу пользователя без сохранения.
Завершение сеансов через конфигуратор
Если консоли кластера под рукой нет, но есть доступ к конфигуратору с правами администратора, список активных пользователей доступен прямо в нём. Откройте конфигуратор нужной базы и перейдите в меню «Администрирование → Активные пользователи».
В открывшемся списке выберите зависший сеанс и нажмите кнопку «Завершить сеанс» (доступна в свежих версиях платформы) либо «Удалить». Здесь же видно, какое приложение использует сеанс — тонкий клиент, толстый клиент, фоновое задание или веб-клиент, что помогает отличить пользовательский сеанс от служебного.
Командная строка и автоматизация
Для регулярной борьбы с «висячими» сеансами удобно использовать утилиту RAC из состава сервера 1С. Она позволяет получить список сеансов и завершить их без графической консоли, что подходит для скриптов и планировщика задач.
rac session --cluster=<ID_кластера> terminate --session=<ID_сеанса>Сначала получите список сеансов командой rac session list --cluster=<ID>, найдите нужный по пользователю и завершите его командой terminate. Идентификатор кластера выводится командой rac cluster list.
Дополнительно на уровне свойств информационной базы в консоли кластера можно задать параметр «Принудительное завершение» и интервал разрыва пассивных соединений — тогда сервер будет сам снимать сеансы, потерявшие связь с клиентом. Это снижает количество ручной работы, но требует аккуратной настройки, чтобы не «отстреливать» честные долгие операции.
Профилактика: как уменьшить число зависших сеансов
Большинство «висяков» возникает не из-за 1С, а из-за инфраструктуры: нестабильная сеть между клиентом и сервером, перезагрузка терминального сервера без завершения сеансов, антивирус, блокирующий обращения к базе. Устранение этих причин эффективнее, чем регулярное ручное завершение.
Полезные меры: настройте таймауты разрыва соединений в свойствах кластера; обучите пользователей закрывать 1С через «Файл → Выход», а не крестиком на терминале; следите за длительными блокировками через технологический журнал; регулярно обновляйте платформу — часть проблем с зависаниями устраняется в новых релизах.
Проверка результата
Как проверить результат
Зависший сеанс отсутствует
Сеанс появился снова — клиент переподключается или задание перезапускается
Пользователь входит без ошибки «сеанс активен»
Ошибка повторяется — сеанс не удалён или блокировка осталась в СУБД
Документы проводятся штатно
Блокировки остались — проверьте соединения с СУБД
Если после удаления сеанса блокировки сохраняются, проверьте соединения на уровне СУБД: иногда «висячее» соединение остаётся в MS SQL или PostgreSQL и его нужно снять там. В крайнем случае помогает перезапуск службы агента сервера 1С, но это уже внеплановая мера, прерывающая работу всех баз кластера.
Что важно запомнить
Файловую базу освобождают через диспетчер задач, серверную — через консоль кластера или конфигуратор. Перед завершением убедитесь, что сеанс действительно завис, а не выполняет длительную операцию. После снятия сеанса проверьте вход пользователя и отсутствие блокировок.
Частые вопросы
Что делать, если не могу войти в базу: «сеанс с таким пользователем уже активен»?
Это значит, что на сервере остался предыдущий сеанс. Попросите администратора удалить его в консоли кластера или завершите свой процесс 1cv8.exe на старом компьютере, если он ещё запущен. Через несколько минут неактивный сеанс может завершиться сам по таймауту.
Можно ли закрыть чужой сеанс без прав администратора?
Нет. Удаление сеансов в консоли кластера и конфигураторе требует административных прав на кластер или информационную базу. Обычный пользователь может завершить только свой собственный процесс на своём компьютере.
Потеряются ли данные при принудительном завершении сеанса?
Несохранённые данные в открытых формах будут потеряны. Уже записанные в базу объекты не пострадают, если завершение не произошло в середине транзакции записи — поэтому опаснее всего прерывать сеанс во время проведения документов или обмена.
Сеанс появляется снова сразу после удаления. Почему?
Чаще всего это регламентное или фоновое задание, которое сервер автоматически перезапускает, либо клиент с настроенным автоподключением. Проверьте в консоли тип сеанса и расписание регламентных заданий, при необходимости временно отключите задание.
Чем отличается «завершить сеанс» от «разорвать соединение»?
Разрыв соединения отключает связь клиента с сервером, но сеанс может остаться в списке до истечения таймаута. Завершение сеанса снимает его полностью вместе с блокировками. Для устранения «висяка» надёжнее именно завершение сеанса.
Как закрыть зависший сеанс в файловой базе, открытой по сети?
Найдите компьютер, на котором открыт сеанс (его видно в списке активных пользователей конфигуратора), и завершите процесс 1cv8.exe именно там. Если компьютер выключен, но база считается занятой, проверьте наличие файла блокировок 1Cv8.1CL в папке базы — после аварийного завершения его иногда требуется удалить при закрытых у всех сеансах.