Сброс и завершение зависших сеансов в 1С Предприятие
Содержание
Пользователь ушёл домой, не закрыв программу, а утром база не отдаёт документ: «объект заблокирован другим пользователем». Чтобы сбросить такой сеанс в клиент-серверной базе, откройте консоль администрирования серверов 1С, зайдите в узел Сеансы нужного кластера и удалите зависшее подключение. В файловой базе всё решается закрытием процесса 1cv8.exe, который этот сеанс держит.
Ниже — четыре рабочих способа завершить сеансы в 1С Предприятие: от списка активных пользователей в самой программе до утилиты rac в командной строке. Для каждого скажу, когда он уместен и чем опасен, потому что принудительный сброс всегда обрывает чью-то работу.
Завершение сеанса — это аварийное прерывание. Несохранённые данные пользователя пропадут, а незаконченная транзакция откатится. Сбрасывайте только тот сеанс, который действительно завис, а не «на всякий случай» все подряд.
Как найти зависший сеанс и отличить его от рабочего
Прежде чем что-то удалять, посмотрите, кто реально работает. Зависший сеанс обычно не меняет показатели активности: время последнего обращения к серверу стоит на месте уже несколько минут, захваченные блокировки не снимаются.
Где смотреть список подключений:
- 🖥 Консоль администрирования серверов — узлы
СеансыиСоединениякластера. Здесь видны логин, компьютер, приложение (толстый клиент, веб-клиент, фоновое задание), время старта и последней активности. - 👤 Список активных пользователей в самой программе —
Главное меню → Все функции → Стандартные → Активные пользователи. Показывает тех же пользователей проще, без доступа к серверу. - ⌨️ Утилита
rac— командаrac session listвыводит сеансы с их идентификаторами.
Разберитесь, где сеанс, а где соединение. Соединение — это установленное подключение к базе, сеанс — активность конкретного пользователя внутри кластера. Один пользователь может держать несколько соединений (клиент, фоновые задания), поэтому ориентируйтесь на сеанс и его номер.
На что смотреть в списке сеансов консоли:
- Пользователь и компьютер — чтобы понять, чей это сеанс и можно ли человека переспросить.
- Приложение — толстый клиент, тонкий клиент, веб-клиент или фоновое задание. Фоновые задания отображаются как отдельные сеансы, и их нельзя путать с людьми: завершать стоит само задание, а не сеанс.
- Время последней активности — главный признак. Если оно не меняется несколько минут, а пользователь уверяет, что ничего не делает, сеанс можно считать зависшим.
- Захвачено лицензий — показывает, держит ли сеанс программную лицензию. После завершения она освободится.
Если активность у сеанса обновляется каждые пару секунд — человек просто работает, и завершать его нельзя. Зависший сеанс «замерзает»: счётчики не двигаются, но он продолжает удерживать лицензию и блокировки.
Завершение сеанса через консоль администрирования серверов
Это основной способ для клиент-серверной базы. Консоль администрирования (оснастка MMC) подключается к агенту сервера — по умолчанию порт 1540.
Если в списке оснасток консоли нет, зарегистрируйте её библиотеку. Из каталога bin установленной платформы выполните от администратора:
regsvr32 radmin.dll
После этого оснастка «Администрирование серверов 1С Предприятия» появится в консоли.
Порядок действий:
- Разверните дерево: центральный сервер → узел
Кластеры→ ваш кластер. - Откройте узел
Сеансы. Отсортируйте по столбцу с пользователем или по времени последней активности. - Найдите зависший сеанс, щёлкните правой кнопкой →
Удалить. - Подтвердите удаление.
Через несколько секунд сеанс пропадёт из списка, блокировки снимутся, лицензия вернётся в пул.
Если вместо одного сеанса удалить все, вы разом выкинете всех работающих пользователей. Перед массовым сбросом предупредите людей — иначе половина офиса потеряет несохранённые документы.
Иногда сеанс не удаляется с первого раза, потому что рабочий процесс занят длинной серверной операцией. Подождите 10–20 секунд и повторите удаление; обычно процесс к этому моменту освобождается.
Если завис не один сеанс, а весь рабочий процесс (rphost) и вместе с ним встали все, кто на нём работал, в консоли можно перезапустить этот рабочий процесс. Но это крайняя мера:
Перезапуск рабочего процесса обрывает сразу все сеансы, которые на нём держались, а не один проблемный. Делайте это, только когда процесс действительно мёртв и штатное удаление сеансов не помогает. Пересоздавать кластер или удалять базу для «лечения» зависаний не нужно — проблема решается на уровне сеансов и процессов.
Как завершить работу пользователей из режима Предприятия
Не всегда есть доступ к серверу. Тогда работают средства внутри самой программы — они подходят и для планового «выгнать всех перед обслуживанием».
Список активных пользователей. Откройте Главное меню → Все функции → Стандартные → Активные пользователи (пункт Все функции включается в настройках главного меню). В клиент-серверной базе администратор видит здесь кнопку завершения сеанса: выделяете строку пользователя и завершаете его сеанс.
Блокировка работы пользователей. Для планового отключения всех сразу используйте механизм в разделе Администрирование → Обслуживание. Там задаётся окно, в течение которого новые подключения запрещаются, а работающие сеансы завершаются к указанному времени. Пользователь заранее видит предупреждение и успевает сохранить данные.
Чем это отличается от удаления в консоли:
| Способ | Когда применять | Риск для пользователя |
|---|---|---|
| Удаление сеанса в консоли | Один конкретный сеанс завис | Мгновенный обрыв, данные теряются |
| Завершить сеанс в «Активных пользователях» | Нет доступа к серверу, нужно снять одного | Тот же обрыв, но проще добраться |
| Блокировка работы пользователей | Плановое обслуживание, бэкап, обновление | Мягко: есть предупреждение и время сохраниться |
Для обновления конфигурации или выгрузки .dt удобнее заранее включить блокировку работы пользователей, а не выдёргивать сеансы вручную перед самой операцией.
Сброс сеанса в файловой базе 1С
В файловом варианте нет кластера и консоли: «сеанс» здесь — это запущенный процесс 1cv8.exe на компьютере пользователя. Поэтому и завершается он иначе.
Если база не открывается с ошибкой вида «Файл базы данных открыт другой программой» или «Нарушение целостности структуры», значит, кто-то держит файл 1Cv8.1CD:
- Попросите пользователя закрыть 1С штатно.
- Если программа зависла и не закрывается, завершите процесс
1cv8.exeв диспетчере задач на его компьютере. - Проверьте, не держит ли каталог базы антивирус или программа резервного копирования — на время работы исключите папку базы из проверки «на лету».
Завершение 1cv8.exe через диспетчер задач — грубое прерывание. Всё, что пользователь не записал, пропадёт. Сначала убедитесь, что процесс действительно мёртв, а не выполняет длинную операцию (проведение, закрытие месяца).
Когда база лежит на сетевой папке, найти «того самого» пользователя помогает сам файловый сервер: в управлении общими ресурсами видно, кто открыл файлы каталога базы. Так вы определите компьютер, на котором остался висеть процесс, не обходя весь офис.
Отдельная причина зависаний в файловых базах — повреждённый локальный кэш. Если конкретный компьютер открывает базу подолгу или падает, очистите папку кэша 1С в профиле пользователя (каталог вида %LOCALAPPDATA%\1C\1cv8\<имя базы>). При следующем запуске кэш соберётся заново.
Файловую базу на сетевой шаре лучше вообще не держать под постоянной многопользовательской нагрузкой: при 5+ активных пользователях переходите на клиент-серверный вариант, иначе блокировки и зависания станут нормой.
Утилита rac: сброс сеансов из командной строки
rac — консольный клиент администрирования. Он удобен, когда к серверу нет графического доступа (например, вы на Linux-сервере по SSH) или когда сброс нужно автоматизировать скриптом.
rac обращается не к агенту напрямую, а к серверу администрирования ras — по умолчанию порт 1545. Убедитесь, что служба ras запущена. Сам rac лежит в каталоге bin платформы.
Типичная последовательность:
rac cluster list
Команда выведет кластеры и их идентификаторы. Скопируйте нужный cluster (длинный UUID).
rac session list --cluster=<идентификатор-кластера>
Вы получите список сеансов с их session-идентификаторами, логинами и приложениями.
rac session terminate --cluster=<идентификатор-кластера> --session=<идентификатор-сеанса>
Эта команда завершает один сеанс. Если на кластере задан администратор, добавьте параметры с его логином и паролем.
Перед тем как завершать, сверьтесь со списком: убедитесь, что берёте идентификатор именно зависшего сеанса, а не соседней строки. Логин и приложение в выводе rac session list помогают не ошибиться — особенно когда у одного пользователя несколько сеансов.
Полный список команд и параметров смотрите в справке — rac help и rac session help. Не подставляйте наугад незнакомые ключи: у terminate есть свои опции, и ошибка в синтаксисе просто вернёт сообщение об ошибке.
rac session terminate обрывает сеанс так же жёстко, как удаление в консоли. В скрипте, который «чистит» сеансы по расписанию, отбирайте только давно неактивные — иначе выгоните работающих людей.
Почему сеансы зависают и что с этим делать
Чаще всего виноват не сам сеанс, а то, что его держит. Сбросить подключение — лечить симптом; полезнее убрать причину.
1cv8.exe или файл держит антивирус либо бэкап. Закройте процесс, исключите каталог базы из проверки.Как настроить автоматическое завершение зависших сеансов
Чтобы не ловить зависшие сеансы вручную, настройте, чтобы кластер сам закрывал неактивные подключения. Это освобождает лицензии и убирает «мёртвые» сеансы без вашего участия.
В консоли администрирования откройте свойства нужной информационной базы. Там есть два параметра (в секундах):
- Время засыпания сеанса — через сколько секунд бездействия сеанс переходит в «спящий» режим и отпускает рабочий процесс. Ориентир:
600секунд (10 минут). - Время завершения спящего сеанса — через сколько секунд спящий сеанс удаляется полностью. Ориентир: от
3600секунд (1 час) и больше, в зависимости от того, насколько терпимы пользователи к тому, что их выкинет на обеде.
Эти настройки не трогают активных пользователей — только тех, кто реально ничего не делает.
Отдельно проверьте расписание регламентных и фоновых заданий. Если несколько тяжёлых заданий стартуют одновременно, они занимают рабочие процессы, и обычные сеансы начинают «подвисать» — хотя по сути ни один из них не аварийный.
Частые вопросы
Можно ли завершить один сеанс, не прерывая работу остальных?
rac session terminate по конкретному идентификатору затрагивает только этот сеанс. Остальные пользователи работу не заметят.Нужны ли права администратора, чтобы сбрасывать сеансы?
1cv8.exe на компьютере пользователя.