Необходимость экстренно завершить активные сеансы в серверной базе 1С чаще всего возникает при попытке установить обновление конфигурации или исправить критическую ошибку, требующую монопольного доступа, поскольку в отличие от файлового варианта простое закрытие программы на рабочих местах здесь не гарантирует освобождения соединений.
Некорректное завершение работы может привести к потере данных или повреждению таблиц блокировок, поэтому важно понимать разницу между простым отключением клиента и полным завершением сеанса на стороне сервера приложений. Администратор должен обладать правами доступа к консоли управления или утилите командной строки, чтобы выполнить необходимые действия безопасно для целостности базы данных.
В данной статье мы подробно рассмотрим все доступные способы прекращения сеансов, начиная от стандартных средств платформы и заканчивая использованием утилиты ras. Вы узнаете, как идентифицировать зависшие процессы и какие команды следует вводить для очистки очередей заданий без риска остановки работы всего сервера.
Консоль администрирования кластера серверов
Самым наглядным и безопасным инструментом для управления активными подключениями является графическая консоль администрирования. Запустив её, вы получаете полный обзор текущего состояния кластера, включая список всех работающих информационных баз и подключенных к ним пользователей. Для начала работы необходимо подключиться к центральному серверу 1С:Предприятия, указав его имя или IP-адрес.
В дереве объектов консоли найдите нужный кластер, затем раскройте ветку с информационными базами. Выбрав конкретную базу, перейдите в раздел Активные сеансы. Здесь отображается таблица со всеми текущими подключениями, где видны имена пользователей, компьютеры, с которых они работают, и время начала сеанса. Выделение одной или нескольких строк позволяет вызвать контекстное меню.
⚠️ Внимание: Принудительное завершение сеанса через консоль может привести к откату транзакции пользователя. Убедитесь, что в этот момент критически важные документы не проводятся.
Для удаления пользователей кликните правой кнопкой мыши по выделенным записям и выберите пункт Удалить. Система запросит подтверждение действия, после чего отправит сигнал на разрыв соединения. Сервер приложений корректно обработает этот запрос, освободит ресурсы и удалит запись из списка активных сеансов. Этот метод предпочтителен при плановых работах, так как дает визуальный контроль над процессом.
Использование утилиты командной строки ras
Для автоматизации процессов или работы на серверах без графического интерфейса идеально подходит утилита ras (Remote Administration Server). Она входит в стандартный дистрибутив платформы и позволяет выполнять все те же действия, что и консоль, но в текстовом режиме. Это особенно удобно при написании скриптов для ночного обслуживания или интеграции с системами мониторинга.
Синтаксис команды для получения списка сеансов выглядит следующим образом:
ras cluster list --cluster=UUID_кластера
Зная идентификатор кластера и информационной базы, можно сформировать команду для принудительного завершения всех сеансов. Утилита отправляет запрос непосредственно менеджеру кластера, который реагирует практически мгновенно. Это самый быстрый способ очистить базу от пользователей в экстренной ситуации.
Чтобы выгнать всех пользователей из конкретной базы, используется команда session delete. Важно правильно указать UUID информационной базы, так как ошибка в одном символе приведет к воздействию на другой ресурс или к ошибке выполнения. Пример полной команды для очистки базы:
ras session delete --cluster=UUID_кластера --infobase=UUID_базы
Используйте команду ras cluster info для получения UUID кластера, если вы не знаете его наизусть. Это сэкономит время при вводе команд.
Управление сеансами через Конфигуратор
Если у вас нет доступа к серверу операционной системы, но есть права администратора внутри самой платформы 1С, можно воспользоваться режимом Конфигуратор. Этот метод работает только при запуске в толстом клиенте и требует наличия соответствующих прав в ролевой модели информационной базы. Он менее предпочтителен для массового отключения, так как зависит от текущей доступности базы.
Зайдите в меню Администрирование и выберите пункт Активные пользователи. Откроется список всех, кто сейчас находится в системе. Здесь можно увидеть не только имя пользователя, но и выполняемое им действие, а также компьютер, с которого установлено соединение. Это помогает выявить тех, кто забыл закрыть программу или чей сеанс завис.
Выделив ненужные записи, нажмите кнопку Удалить на панели инструментов или используйте контекстное меню. Система предложит подтвердить операцию. В отличие от серверных методов, здесь разрыв соединения инициируется со стороны клиента-администратора, но сигнал все равно проходит через сервер приложений. Метод эффективен, когда консоль администрирования недоступна.
⚠️ Внимание: Если база работает в файловом варианте, этот способ может не сработать, если файл заблокирован операционной системой. Для серверных баз метод полностью функционален.
Очистка таблиц блокировок и завершение фоновых заданий
Иногда пользователи формально отключены, но в базе остаются «мертвые» блокировки или зависшие фоновые задания, которые мешают проведению регламентных операций. В этом случае простого разрыва сеанса недостаточно. Необходимо проверить таблицу блокировок данных и очистить её от записей, владельцы которых уже не активны.
Для анализа состояния используйте обработку Монитор блокировок, доступную в режиме Предприятия для администраторов. Она покажет, какие объекты захвачены и кем. Если вы видите блокировку от пользователя, которого уже выгнали из системы, значит, процесс на сервере не освободил ресурс корректно. В таких случаях требуется вмешательство на уровне СУБД или перезапуск службы.
Также стоит проверить очередь фоновых заданий. Зависшее задание может удерживать соединение с базой данных, имитируя активность пользователя. Перейдите в раздел Фоновые задания и удалите все задачи со статусом Ошибка или Выполняется, если они висят слишком долго. Это освободит потоки сервера и позволит завершить остаточные сеансы.
Почему блокировки не снимаются автоматически?
Обычно платформа 1С сама снимает блокировки при разрыве соединения. Однако, при аварийном завершении процесса сервера приложений или сетевых сбоях, транзакция в СУБД может остаться открытой, удерживая (locks).
Аварийные методы: перезапуск служб
В крайних случаях, когда стандартные средства не работают, сеансы не удаляются, а консоль зависает, приходится прибегать к более радикальным мерам. Перезапуск службы сервера 1С:Предприятия (rmngr и rphost) гарантированно разорвет все соединения. Однако этот метод является «грубым» и должен использоваться только тогда, когда другие варианты исчерпаны.
Перед перезапуском службы убедитесь, что на сервере не выполняются критические регламентные задания, такие как ночное закрытие периода или выгрузка данных. Остановка службы прервет эти процессы, что может потребовать длительного восстановления целостности данных или повторного запуска тяжелых процедур с нуля.
Выполнить перезапуск можно через оснастку services.msc в Windows или через терминал в Linux. Найдите службу с именем, содержащим 1C:Enterprise 8.3 Server Agent, и выполните команду перезапуска. После старта службы все предыдущие сеансы будут уничтожены, и база станет доступна для нового подключения в монопольном режиме.
| Метод | Безопасность данных | Скорость | Требования |
|---|---|---|---|
| Консоль администрирования | Высокая | Средняя | Доступ к серверу ОС |
| Утилита ras | Высокая | Высокая | Командная строка |
| Конфигуратор | Средняя | Низкая | Права в базе 1С |
| Перезапуск службы | Низкая | Низкая | Права админа ОС |
Перезапуск службы — это крайняя мера. Всегда пытайтесь сначала завершить сеансы через консоль или утилиту ras, чтобы сохранить целостность транзакций.
Профилактика и настройка параметров кластера
Чтобы проблема «зависших» пользователей возникала реже, стоит обратить внимание на настройки кластера серверов. Существует параметр, ограничивающий время жизни неактивного сеанса. Если пользователь свернул окно 1С и ушел обедать, через заданный интервал сервер автоматически разорвет соединение, освободив лицензию и ресурсы.
Настройка производится в свойствах информационной базы внутри консоли администрирования. Найдите параметр Время жизни неактивного сеанса и установите разумное значение, например, 30 или 60 минут. Это позволит автоматически «выгонять» тех, кто забыл выйти из системы, не требуя вмешательства администратора.
Также рекомендуется настроить журналирование регистрации. Это поможет в будущем анализировать причины зависаний: были ли это проблемы сети, ошибки в коде конфигурации или сбои оборудования. Анализ логов позволяет предотвратить повторение ситуаций, требующих аварийного вмешательства.
⚠️ Внимание: Параметры кластера могут отличаться в разных версиях платформы 1С. Сверяйте доступные настройки с документацией к вашей конкретной версии сервера приложений.
☑️ Чек-лист перед обновлением конфигурации
Часто задаваемые вопросы (FAQ)
Можно ли выгнать конкретного пользователя, оставив остальных работать?
Да, это возможно. В консоли администрирования или через утилиту ras можно выбрать конкретный сеанс по имени пользователя или идентификатору и завершить только его. Остальные участники работы с базой не заметят никаких изменений.
Что делать, если кнопка «Удалить» в консоли неактивна?
Скорее всего, у вашей учетной записи недостаточно прав для администрирования кластера. Убедитесь, что вы запустили консоль от имени пользователя, входящего в группу администраторов сервера 1С, или проверьте настройки безопасности кластера.
Влияет ли завершение сеанса на сохраненные документы?
Если пользователь нажал кнопку «Записать и провести», данные уже зафиксированы в базе. Прерывание сеанса в этот момент безопасно. Риск потери данных существует только если документ был в процессе проведения и транзакция не была зафиксирована СУБД.
Как узнать, кто мешает установить монопольный режим?
При попытке включения монопольного режима система выдаст список активных пользователей, которые мешают этому действию. Этих пользователей и нужно завершить в первую очередь через консоль администрирования.
Нужно ли перезагружать сервер после удаления всех сеансов?
Нет, перезагрузка сервера не требуется. После корректного удаления сеансов через консоль или утилиту ras ресурсы освобождаются мгновенно, и база готова к работе в монопольном режиме или для проведения обновлений.