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

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

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

Как завершить зависший сеанс 1С через консоль кластера, конфигуратор и диспетчер задач. Способы сброса сеансов в файловом и клиент-серверном режиме, риски и проверка результата.

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

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

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

Как понять, что сеанс действительно завис

Прежде чем что-то сбрасывать, убедитесь, что сеанс не выполняет полезную работу. Долгое проведение большого документа, регламентное задание или загрузка данных внешне выглядят так же, как зависание, но их принудительное прерывание может оставить базу в несогласованном состоянии.

Характерные признаки зависшего сеанса: пользователь подтверждает, что программа у него закрыта, но в списке активных сеансов он присутствует; время бездействия сеанса исчисляется часами; попытка монопольного доступа сообщает о занятости базы именно этим пользователем; на компьютере пользователя нет процесса 1cv8.exe, а сеанс в консоли есть.

Пользователь вышел, сеанс виситКлассическое зависание

Проверить на ПК пользователя отсутствие процесса 1cv8.exe

Сеанс активен, идёт нагрузкаВозможно, выполняется операция

Уточнить у пользователя, что он запускал; посмотреть длительность вызова СУБД

Монопольный режим недоступенБазу держат активные сеансы

Открыть список сеансов и найти, кто блокирует

Сеанс фонового заданияВыполняется регламентная операция

Проверить список фоновых заданий перед удалением

Где посмотреть список активных сеансов

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

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

Дополнительно полезно смотреть журнал регистрации: по событиям подключения и отключения сеансов можно понять, когда пользователь реально прекратил работу, и сопоставить это с текущим списком сеансов.

Сброс сеанса через консоль кластера серверов

Это штатный и самый безопасный способ для клиент-серверного режима. Найдите в ветке «Сеансы» нужную строку — ориентируйтесь на имя пользователя, компьютер и время начала. Щёлкните по сеансу правой кнопкой мыши и выберите «Удалить», либо нажмите клавишу Delete. Кластер завершит сеанс и освободит занятые им ресурсы и блокировки.

Если зависших сеансов много, можно выделить несколько строк с зажатой клавишей Ctrl и удалить их пакетно. Перед массовым удалением отфильтруйте список, чтобы случайно не завершить сеансы работающих пользователей — они об этом узнают по внезапному закрытию программы.

Сброс сеанса через консоль кластера
  1. 1
    Откройте оснастку «Администрирование серверов 1С Предприятия»
  2. 2
    Разверните кластер и перейдите в ветку «Сеансы»
  3. 3
    Найдите зависший сеанс по пользователю, компьютеру и времени начала
  4. 4
    Убедитесь, что у пользователя программа закрыта
  5. 5
    Щёлкните правой кнопкой и выберите «Удалить»
  6. 6
    Проверьте, что сеанс исчез из списка, а блокировки сняты

Сброс сеанса в файловом режиме

В файловой базе нет сервера приложений, поэтому зависание обычно связано с самим клиентским процессом или с устаревшей информацией о соединениях. Первый шаг — на компьютере пользователя открыть диспетчер задач (Ctrl+Shift+Esc), найти процесс 1cv8.exe и завершить его, если программа внешне закрыта, а процесс остался.

Если база опубликована на веб-сервере или находится в общей сетевой папке, а сведения о соединениях устарели, помогает перезапуск службы веб-сервера (IIS или Apache) на том компьютере, где опубликована база. После перезапуска «призрачные» соединения сбрасываются.

В крайнем случае, когда базу держит непонятный сеанс и никого из пользователей в ней нет, проверьте, не открыт ли файл базы (1Cv8.1CD) каким-либо процессом. Утилиты просмотра открытых файлов на сервере покажут, кто держит дескриптор. Закрывать файл принудительно стоит только после того, как вы убедились, что реальной работы с базой нет.

Принудительные методы: завершение процессов и перезапуск служб

Если консоль кластера недоступна или удаление сеанса не помогает, используют более жёсткие методы. На сервере 1С можно перезапустить службу «Агент сервера 1С:Предприятия» — это разорвёт все соединения кластера. Способ радикальный: пострадают все пользователи всех баз данного кластера, поэтому применяйте его только в нерабочее время или при массовом сбое.

На стороне СУБД зависшие соединения видны в списке процессов SQL Server, PostgreSQL или другой используемой базы. Завершать сессии на уровне СУБД следует в последнюю очередь и только тем, кто понимает последствия: кластер 1С может некорректно отреагировать на внешнее завершение своих соединений.

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

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

Клиент-серверный режим, доступна консоль кластераУдалите конкретный сеанс через консоль — самый точечный способ
Файловый режим, программа у пользователя завислаЗавершите процесс 1cv8.exe в диспетчере задач на его ПК
База на веб-сервере, соединения «призрачные»Перезапустите службу веб-сервера
Массовый сбой, зависло множество сеансовПерезапустите агента сервера 1С в нерабочее время
Сеанс не удаляется никакими способамиПроверьте соединения на уровне СУБД и привлеките администратора БД

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

После сброса сеанса обязательно проверьте результат. Сеанс должен исчезнуть из списка в консоли кластера или из списка активных пользователей. Попробуйте выполнить операцию, которая раньше блокировалась: установить монопольный режим, запустить обновление конфигурации. Если операция по-прежнему недоступна — значит, базу держит другой сеанс, который вы не заметили, либо остались незавершённые соединения на уровне СУБД.

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

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

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

Зависшего сеанса нет в списке

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

Сеанс появился снова или не удалился

Монопольный режим
Норма

Устанавливается без ошибок

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

Сообщение о занятости базы другими пользователями

Работа пользователя
Норма

Пользователь входит в базу нормально

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

Ошибки при входе, сообщения о повреждении данных

Блокировки на СУБД
Норма

Долгих блокировок нет

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

Висят старые сессии и блокировки в СУБД

Типичные ошибки
01
Удаление сеанса работающего пользователя — его несохранённые данные теряются, а документ, который он вводил, придётся восстанавливать вручную
02
Прерывание фонового задания во время обновления конфигурации — база может остаться в состоянии незавершённого обновления и потребовать восстановления из копии
03
Завершение соединений напрямую в СУБД без остановки сеансов в кластере — рассинхронизация между кластером и СУБД и повторные зависания
04
Перезапуск агента сервера в рабочее время — массовый разрыв соединений у всех пользователей всех баз
05
Игнорирование причины зависания — если сеансы зависают регулярно, нужно искать проблему в сети, тайм-аутах или коде, а не сбрасывать их бесконечно

Как предотвратить появление зависших сеансов

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

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

Итог

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

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

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

Что будет с данными пользователя, если принудительно удалить его сеанс?

Все несохранённые данные, с которыми пользователь работал в открытых формах, будут потеряны. Записанные в базу объекты не пострадают, если транзакция была завершена. Если сеанс прервали в момент записи, транзакция откатится, и база останется в целостном состоянии, но сама операция не выполнится.

Сеанс появляется снова сразу после удаления. Что делать?

Это означает, что клиентское приложение пользователя продолжает работать и автоматически переподключается. Проверьте компьютер пользователя: закройте там программу или завершите процесс 1cv8.exe. Также такое поведение бывает у фоновых заданий и регламентных операций, которые перезапускаются по расписанию.

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

Нет. Удаление сеансов в консоли кластера требует прав администратора кластера или информационной базы. Обычный пользователь может завершить только свой сеанс — штатным выходом из программы. В типовых конфигурациях пользователи с ролью администратора могут завершать сеансы других через обработку «Активные пользователи».

Опасно ли перезапускать агент сервера 1С?

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

Почему монопольный режим не устанавливается, хотя сеансов в списке нет?

Возможные причины: остались соединения на уровне СУБД, которые кластер ещё не освободил; базу держит открытый конфигуратор; работает фоновое задание. Проверьте ветку «Соединения» в консоли кластера — она показывает подключения к базе, которых может не быть в списке сеансов.

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

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