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

Существует несколько способов решить эту задачу, начиная от стандартных инструментов интерфейса и заканчивая жесткими методами через консоль управления сервером. Выбор конкретного метода зависит от архитектуры вашей системы (файловая или клиент-серверная), а также от прав доступа, которыми обладает администратор. Неправильное завершение сеансов может привести к потере несохраненных данных пользователями, поэтому к этой процедуре следует подходить осторожно.

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

Использование режима Предприятия для отключения

Самый простой и безопасный способ завершить сеансы пользователей доступен непосредственно из интерфейса 1С:Предприятие. Для этого необходимо зайти в базу данных в режиме 1С:Предприятие с правами полного доступа. В верхней панели меню следует выбрать пункт Администрирование, а затем перейти в раздел Активные пользователи.

В открывшемся списке отобразятся все текущие сеансы с подробной информацией: имя пользователя, компьютер, с которого выполнен вход, время начала сеанса и выполняемое действие. Администратор может выделить один или несколько сеансов с помощью мыши, удерживая клавишу Ctrl или Shift. После выделения необходимо нажать кнопку Завершить или Завершить все, чтобы принудительно разорвать соединение.

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

⚠️ Внимание: При завершении сеанса через интерфейс 1С у пользователя может появиться сообщение о разрыве соединения, но несохраненные данные в его документах будут утеряны безвозвратно.

💡

Перед массовым завершением сеансов попробуйте отправить всем пользователям сообщение через "Сервис" -> "Отправить сообщение", предупредив их о технических работах за 5-10 минут.

Управление сеансами через Консоль сервера 1С

Для клиент-серверного варианта работы с базой данных (на платформе SQL Server или PostgreSQL) наиболее мощным инструментом является Консоль управления сервером 1С:Предприятия. Запустить её можно через меню Пуск на сервере или воспользовавшись командой mmc с добавлением соответствующего оснастки. В дереве консоли необходимо раскрыть кластер серверов и найти нужный информационный ресурс.

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

Преимуществом использования консоли является возможность детальной фильтрации и управления. Вы можете сортировать сеансы по времени начала или имени пользователя, что упрощает поиск "зависших" подключений. Также здесь можно увидеть PID процесса, что полезно для дальнейшей диагностики на уровне операционной системы.

📊 Каким способом вы чаще всего завершаете сеансы?
Через интерфейс 1С
Через Консоль сервера
Перезагрузкой сервера
Через командную строку

Блокировка начала новых сеансов

Часто возникает ситуация, когда нужно не просто отключить текущих пользователей, но и запретить вход новым, пока проводятся технические работы. Для этого в свойствах информационной базы на сервере 1С существует специальный флаг блокировки. В Консоли сервера, кликнув правой кнопкой мыши по базе, выберите Свойства и установите галочку Блокировка начала сеансов.

В поле Параметры блокировки можно указать сообщение, которое увидят пользователи при попытке входа. Например: «Технические работы с 02:00 до 04:00. Вход временно запрещен». Это профессиональный подход к администрированию, который предотвращает панику среди сотрудников и объясняет причину недоступности системы.

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

☑️ Алгоритм безопасного обновления

Выполнено: 0 / 5

Использование утилит командной строки

Для автоматизации процессов администрирования и работы в скриптах часто используются консольные утилиты, поставляемые вместе с платформой 1С. Основной утилитой для управления кластером является rmngr (Ring Manager), однако для работы с сеансами чаще применяют ring или специализированные скрипты на основе oscript.

Одной из популярных сторонних, но де-факто стандартных утилит является 1cclear или аналоги, позволяющие очищать список сеансов одной командой. Однако, если вы хотите использовать только штатные средства, можно воспользоваться утилитой rac (Remote Administration Client). Она позволяет выполнять те же действия, что и графическая консоль, но в текстовом режиме.

Пример команды для получения списка сеансов через rac выглядит следующим образом:

rac session list --cluster=адрес_кластера --base=имя_базы

Для завершения сеанса потребуется знать его идентификатор (UUID). Команда завершения будет включать этот идентификатор и параметры авторизации администратора кластера. Использование командной строки незаменимо при настройке расписаний задач в планировщике Windows или при администрировании удаленных серверов без графического интерфейса.

⚠️ Внимание: При работе с утилитами командной строки убедитесь, что учетная запись, от имени которой запускается скрипт, имеет права администратора кластера 1С, иначе команды будут возвращать ошибку доступа.

Принудительное завершение на уровне ОС

В крайних случаях, когда инструменты самой платформы 1С не реагируют (например, при зависании процесса ragent или rphost), приходится прибегать к методам операционной системы. На сервере под управлением Windows можно использовать Диспетчер задач или утилиту taskkill. На Linux-серверах для этого используются команды kill или pkill.

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

Использовать этот метод следует только тогда, когда сеанс не удается завершить штатными средствами в течение длительного времени. Перед убийством процесса рекомендуется проверить, не выполняет ли он критическую операцию, такую как проведение документов или закрытие месяца.

Метод завершения Уровень воздействия Безопасность данных Скорость работы
Интерфейс 1С Прикладной Высокая Средняя
Консоль сервера Сервер приложений Высокая Высокая
Утилиты rac/ring Сервер приложений Высокая Очень высокая
Диспетчер задач (OS) Операционная система Низкая Мгновенная
Почему зависают процессы rphost?

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

Анализ причин зависания сеансов

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

Для анализа используйте журнал регистрации 1С. В нем можно отфильтровать события по типу Сеанс и посмотреть длительность выполнения операций. Также полезно мониторить нагрузку на сервер СУБД. Если процессор загружен на 100% во время работы конкретного пользователя, проблема скорее всего в неоптимизированном запросе.

Рекомендуется настроить регламентные задания для автоматического завершения давно неактивных сеансов. Это можно сделать с помощью внешних обработок или скриптов, которые раз в час проверяют список пользователей и отключают тех, кто не проявлял активности более 2-3 часов.

💡

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

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

Да, способы завершения сеансов не зависят от типа клиента (тонкий, толстый или веб-клиент). Консоль сервера и утилиты командной строки управляют процессами на стороне сервера приложений, поэтому тип клиентского приложения не имеет значения.

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

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

Как узнать, кто занимает лицензию 1С?

В списке активных сеансов (как в интерфейсе 1С, так и в Консоли сервера) отображается информация о типе используемой лицензии. Это позволяет выявить пользователей, занимающих дорогие лицензии "Проф", когда они могли бы работать на более дешевых.

Требуется ли перезагрузка сервера после завершения всех сеансов?

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

Можно ли завершить сеанс удаленно, не заходя на сервер?

Да, если у вас есть доступ к Консоли управления сервером 1С с рабочей станции администратора и открыты необходимые порты кластера, вы можете управлять сеансами удаленно. Также возможно использование утилиты rac по сети.