Администрирование · 11 мин
Как сбросить зависшую сессию 1С
Как завершить зависшую сессию 1С: через консоль кластера, диспетчер задач, конфигуратор и командную строку. Риски, проверка результата и ответы на вопросы.
Зависшая сессия 1С — распространённая проблема: пользователь давно закрыл программу, но сеанс «висит» в списке активных, занимает лицензию и мешает другим сотрудникам войти в базу. Причины бывают разные: аварийное завершение клиента, обрыв сети, блокировка регламентным заданием или ошибка в коде, из-за которой сеанс ушёл в бесконечный цикл.
Способ сброса зависит от режима работы базы: файловый или клиент-серверный. В файловом варианте достаточно завершить процесс на компьютере пользователя или перезапустить службу доступа к файлам. В клиент-серверном варианте сеансами управляет кластер серверов 1С, и корректнее всего удалить зависший сеанс через консоль администрирования.
Прежде чем принудительно завершать сеанс, убедитесь, что он действительно завис, а не выполняет длительную операцию — например, проведение большого документа или обмен данными. Преждевременный сброс рабочего сеанса может привести к незавершённой транзакции и потере несохранённых данных пользователя.
Как отличить зависший сеанс от рабочего
Признак зависшего сеанса — отсутствие активности при живом соединении. В консоли кластера у такого сеанса колонки «Прочитано» и «Записано» долго не меняются, время последнего вызова устарело, а сам пользователь подтверждает, что программа у него закрыта или «висит» без реакции.
Типичная ситуация: пользователь выключил компьютер кнопкой питания или пропала сеть, а сеанс на сервере остался. Кластер 1С завершает такие «спящие» сеансы автоматически, но не сразу — по умолчанию время ожидания составляет заметный интервал, и всё это время сеанс занимает лицензию.
Обратная ситуация опаснее: сеанс выглядит неактивным, но внутри идёт фоновое задание — обмен с сайтом, расчёт итогов, загрузка данных. Если такой сеанс удалить, операция оборвётся посередине. Поэтому перед удалением проверьте в консоли список фоновых заданий и уточните у пользователя, что именно он запускал.
Проверьте колонку «Время вызова СУБД» и активность в консоли кластера
Можно удалять после подтверждения от пользователя
Не удаляйте — дождитесь завершения операции
Найдите сеанс-виновник по блокировкам в консоли
Сброс сеанса через консоль кластера серверов 1С
Это основной и самый безопасный способ для клиент-серверного режима. Откройте оснастку «Администрирование серверов 1С Предприятия» на сервере или на компьютере администратора. Для работы потребуются права администратора кластера или администратора информационной базы.
В дереве консоли разверните нужный кластер, затем ветку «Сеансы». В списке найдите зависший сеанс — ориентируйтесь по имени пользователя, компьютеру и времени начала. Выделите его, откройте контекстное меню правой кнопкой мыши и выберите «Удалить». Сеанс завершится принудительно, лицензия освободится сразу.
Если зависших сеансов много — например, после массового сбоя сети — можно выделить несколько сеансов с зажатой клавишей Ctrl и удалить их одним действием. Аккуратно проверяйте выделение, чтобы не зацепить активных пользователей.
- 1Откройте «Администрирование серверов 1С Предприятия»
- 2Разверните кластер и откройте ветку «Сеансы»
- 3Найдите зависший сеанс по пользователю и времени начала
- 4Убедитесь, что сеанс не выполняет фоновое задание
- 5Нажмите правой кнопкой → «Удалить»
- 6Попросите пользователя перезайти в базу и проверьте результат
Завершение процесса на компьютере пользователя
Если 1С зависла на конкретном рабочем месте — окно не отвечает, курсор «крутится» — начните с локального завершения. Нажмите Ctrl+Shift+Esc, чтобы открыть диспетчер задач, найдите процесс 1cv8.exe (или 1cv8c.exe для тонкого клиента), выделите его и нажмите «Снять задачу».
Если процессов 1cv8.exe несколько и непонятно, какой именно завис, перейдите на вкладку «Подробности» и посмотрите загрузку процессора и памяти: зависший процесс часто либо грузит ядро на 100% одним потоком, либо наоборот «заморожен» с нулевой активностью. В крайнем случае попросите пользователя сохранить работу в других программах и завершите все процессы 1С.
Имейте в виду: завершение процесса на клиенте не всегда мгновенно убирает сеанс на сервере. Кластер некоторое время считает сеанс живым, пока не истечёт таймаут проверки соединения. Если лицензию нужно освободить немедленно, дополнительно удалите сеанс в консоли кластера.
Сброс сеансов через командную строку и PowerShell
Когда сеансы нужно снимать регулярно или массово, удобнее использовать утилиту администрирования rac из состава сервера 1С. Она позволяет получить список сеансов кластера и завершить конкретный сеанс по его идентификатору. Сначала запросите список сеансов, найдите нужный по пользователю, затем выполните команду завершения.
cd "C:\Program Files\1cv8\<версия>\bin"
# Список сеансов кластера
rac session --cluster=<ID_кластера> list
# Завершение конкретного сеанса
rac session --cluster=<ID_кластера> terminate --session=<ID_сеанса>Для локального завершения процессов на удалённом компьютере в доменной сети можно использовать PowerShell: командлет Get-Process с фильтром по имени 1cv8 и последующий Stop-Process. Это удобно, когда сотрудник ушёл домой, оставив зависшую программу, а доступ к его компьютеру у администратора есть по сети.
Автоматизируя сброс сеансов скриптами, обязательно добавляйте фильтры: завершайте только сеансы, неактивные дольше заданного порога, и исключайте служебные сеансы фоновых заданий. Скрипт «убить всё подряд» рано или поздно оборвёт важную регламентную операцию.
Особенности файлового режима работы
В файловой базе нет кластера и консоли сеансов: каждый пользователь работает с файлом 1Cv8.1CD напрямую или через веб-сервер. Если программа зависла у одного пользователя, достаточно завершить процесс на его компьютере через диспетчер задач — сеанс исчезнет сам.
Проблема возникает, когда компьютер пользователя выключился аварийно: в папке базы могут остаться признаки активного соединения, и при входе появится сообщение, что база заблокирована. В этом случае убедитесь, что базой никто не пользуется, и проверьте наличие процессов 1cv8 на всех машинах, которые к ней подключаются. Если база опубликована через веб-сервер, перезапуск службы веб-сервера (IIS или Apache) сбрасывает все соединения разом.
Никогда не удаляйте файлы базы и не «чистите» папку вручную, пока не убедитесь, что все соединения закрыты. Единственное допустимое действие при явно зависшей файловой базе — завершение процессов и, при необходимости, перезапуск веб-сервера. Любые манипуляции с файлом 1Cv8.1CD при активных соединениях грозят повреждением данных.
Сравнение способов сброса
Точечное удаление сеанса в клиент-серверном режиме; нужны права администратора кластера
Быстрое завершение на рабочем месте; сеанс на сервере может «доживать» до таймаута
Массовый и автоматизированный сброс; требует аккуратных фильтров, чтобы не снять рабочие сеансы
Сбрасывает все сеансы разом; применяйте только при согласовании с пользователями, иначе потеряете их несохранённые данные
Проверка результата и частые ошибки
После удаления сеанса проверьте три вещи: сеанс исчез из списка в консоли, лицензия освободилась (это видно по уменьшению числа занятых лицензий), а пользователь смог войти в базу и продолжить работу. Если пользователь при входе получает ошибку «сеанс уже существует» или «конфликт блокировок», значит, зависший сеанс не был удалён полностью или есть второй зависший сеанс — повторите поиск.
Как проверить результат
Зависшего сеанса нет, остались только активные пользователи
Сеанс появился снова с тем же компьютером
Пользователь зашёл в базу без ошибок
Ошибка блокировки или «сеанс уже существует»
Число занятых лицензий соответствует реальным пользователям
Лицензии заняты «фантомными» сеансами
Регламентные операции выполняются по расписанию
Задания в ошибке после сброса сеансов
Типичная ошибка администратора — перезапускать службу агента сервера 1С при первой же жалобе на зависание. Это решает проблему, но обрывает сеансы всех пользователей базы, и несохранённые данные теряются. Такой способ оправдан только при массовом сбое или когда точечное удаление не помогает.
Если зависшие сеансы появляются регулярно у одних и тех же пользователей, проблема не в сеансах, а в инфраструктуре: нестабильная сеть, нехватка ресурсов сервера, ошибки в доработках конфигурации. Настройте в свойствах информационной базы в консоли параметр «Завершать спящие сеансы» и уменьшите время засыпания — тогда мёртвые сеансы будут сниматься автоматически без ручного вмешательства.
Что важно запомнить
Сначала убедитесь, что сеанс действительно завис, а не выполняет операцию. В клиент-серверном режиме удаляйте сеанс через консоль кластера, в файловом — завершайте процесс на компьютере пользователя. Перезапуск службы сервера — крайняя мера, обрывающая работу всех. Повторяющиеся зависания — повод проверить сеть, сервер и настройку автозавершения спящих сеансов.
Частые вопросы
Зависший сеанс появляется снова после удаления — что делать?
Значит, клиентское приложение на компьютере пользователя продолжает работать и переподключается. Завершите процесс 1cv8.exe на его машине, затем снова удалите сеанс в консоли. Если компьютер выключен, а сеанс возвращается — проверьте, не запущено ли соединение с другого устройства под тем же пользователем.
Можно ли сбросить сеанс без прав администратора кластера?
Удаление сеанса в консоли требует прав администратора кластера или информационной базы. Без них доступен только локальный вариант — завершение процесса на собственном компьютере через диспетчер задач. Для серверных операций обратитесь к администратору 1С.
Потеряются ли данные пользователя при принудительном сбросе сеанса?
Несохранённые данные (открытый незаписанный документ, введённые строки) будут потеряны — они существуют только в памяти сеанса. Записанные в базу данные не пострадают, если сеанс не выполнял транзакцию в момент обрыва. Поэтому перед сбросом всегда связывайтесь с пользователем.
Сколько времени сервер 1С сам завершает мёртвый сеанс?
Точное время зависит от настроек кластера и информационной базы: параметров засыпания и завершения спящих сеансов. По умолчанию интервалы достаточно велики, поэтому при нехватке лицензий имеет смысл либо удалять сеансы вручную, либо уменьшить эти значения в свойствах базы.
Помогает ли перезагрузка сервера 1С от зависших сеансов?
Перезапуск службы агента сервера сбрасывает все сеансы сразу, включая рабочие. Это допустимо при массовом сбое или когда точечное удаление не помогает, но обязательно предупредите пользователей и выберите время с минимальной нагрузкой. Регулярно применять перезапуск как «лечение» не стоит — нужно искать причину зависаний.
Что делать, если зависла не сессия пользователя, а фоновое задание?
Найдите задание в ветке «Сеансы» или «Соединения» консоли кластера по типу «Фоновое задание» и завершите его сеанс так же, как пользовательский. Если задание регламентное и зависает систематически, проверьте его код и логику — вероятна ошибка, вызывающая бесконечный цикл или взаимоблокировку.