Зависшие сеансы или активные подключения, блокирующие обновление конфигурации и выполнение регламентных операций, требуют от администратора 1С немедленного принудительного завершения работы пользователей в базе данных, чтобы избежать повреждения информации и простоя критических бизнес-процессов.
В экосистеме 1С:Предприятие существует несколько методов управления активными сеансами, каждый из которых имеет свои особенности и область применения. Выбор конкретного способа зависит от архитектуры вашей системы (файловая или клиент-серверная), уровня прав доступа и того, насколько агрессивно нужно действовать. В этой статье мы подробно разберем все доступные инструменты, от штатных средств платформы до прямого взаимодействия с сервером приложений.
Понимание механизма блокировок и сессий является ключевым навыком для любого специалиста, поддерживающего работу учетной системы. Неправильное завершение работы пользователей может вызвать потерю несохраненных данных, поэтому к процедуре «выкидывания» стоит подходить осознанно, используя правильные инструменты для конкретной версии платформы.
Штатные средства управления сеансами в режиме Предприятия
Самый безопасный и рекомендуемый способ завершения работы других пользователей — использование встроенного функционала администрирования. Этот метод позволяет корректно закрыть соединения, минимизируя риск повреждения данных. Для доступа к этой функции вам потребуются права на администрирование системы.
Перейдите в раздел Администрирование, затем выберите пункт Настройки пользователей и прав. В открывшемся окне найдите ссылку Активные пользователи или Сеансы. Здесь отображается таблица всех текущих подключений с подробной информацией о каждом сеансе, включая имя пользователя, компьютер, с которого выполнено подключение, и время начала сеанса.
Выделите необходимые строки в списке и нажмите кнопку Завершить сеанс. Система отправит запрос на завершение работы клиентского приложения. Если пользователь в этот момент сохраняет документ, 1С попытается завершить транзакцию перед закрытием. Однако, если процесс завис на уровне СУБД, этот метод может не сработать мгновенно.
⚠️ Внимание: При завершении сеанса через интерфейс все несохраненные данные в формах пользователя будут утеряны. Предупредите коллег о планируемых работах, чтобы они успели провести документы.
Используйте фильтр в списке активных сеансов, чтобы быстро найти зависшие подключения конкретного пользователя или с определенного терминального сервера.
Важно отметить, что данный метод работает только тогда, когда вы сами можете зайти в базу. Если база заблокирована монопольным режимом другим процессом или обновлением, этот способ будет недоступен, и придется использовать более глубокие инструменты администрирования.
Использование монопольного режима для блокировки новых входов
Часто задача состоит не только в том, чтобы выгнать текущих пользователей, но и предотвратить вход новых во время проведения технических работ. Для этого в 1С предусмотрен механизм монопольного режима. Его активация запрещает создание новых сеансов, но не всегда разрывает уже существующие мгновенно.
Чтобы установить монополию, зайдите в конфигуратор или режим предприятия с правами администратора. В меню выберите Администрирование -> Монопольный режим. Установите галочку включения. Теперь система будет отклонять попытки подключения новых клиентов, выдавая сообщение о том, что работа в базе запрещена.
Для принудительного завершения старых сессий в этом режиме часто используется механизм «вытеснения». В некоторых версиях платформы при включении монопольного режима появляется опция Завершить все сеансы. Активация этой опции инициирует массовую рассылку команд на закрытие клиентских приложений.
| Тип режима | Влияние на новых пользователей | Влияние на текущих пользователей | Риск потери данных |
|---|---|---|---|
| Обычный | Доступ разрешен | Работают штатно | Низкий |
| Монопольный | Доступ запрещен | Работают до завершения транзакции | Средний |
| Консоль сервера | Зависит от настроек | Принудительный разрыв | Высокий |
Использование монопольного режима — это стандартная практика перед запуском обработок обновления конфигурации. Конфигуратор часто требует exclusive access для внесения изменений в структуру метаданных, и наличие активных пользователей является блокирующим фактором.
☑️ Подготовка к монопольному режиму
Администрирование через Консоль сервера 1С:Предприятия
В клиент-серверном варианте работы (с использованием сервера 1С:Предприятие 8.3 Server) наиболее мощным инструментом является Консоль сервера. Это отдельное приложение, позволяющее управлять кластером серверов, реестрами информационных баз и активными сессиями на низком уровне.
Запустите консоль сервера (обычно ярлык находится в меню Пуск в папке 1С). Раскройте дерево кластера, найдите нужную информационную базу в разделе «Информационные базы». Внутри базы вы увидите раздел Сеансы. Здесь отображаются все активные соединения, даже те, которые не видны в интерфейсе самой базы.
Вы можете выбрать конкретный сеанс или группу сеансов, нажать правую кнопку мыши и выбрать пункт Завершить. В отличие от завершения через интерфейс 1С, этот метод разрывает соединение на уровне сервера приложений, что часто эффективнее при зависаниях. Также здесь доступна функция Установить максимальное количество сеансов в 0, что фактически закрывает базу для всех.
⚠️ Внимание: Консоль сервера требует прав локального администратора на сервере 1С или наличия сертификата безопасности для удаленного подключения. Без надлежащих прав вы не сможете увидеть список сеансов.
Особенность работы через консоль заключается в том, что она взаимодействует напрямую с менеджером кластера. Это позволяет «выкинуть» пользователей даже в тех случаях, когда сама база данных 1С не отвечает на запросы интерфейса. Однако, такое вмешательство может оставить «висячие» транзакции на уровне СУБД, которые потребуют последующей очистки.
Что делать, если Консоль сервера не видит базу?
Убедитесь, что служба сервера 1С запущена. Проверьте настройки брандмауэра и доступность порта кластера (по умолчанию 1541). Также проверьте, добавлен ли ваш пользователь в группу администраторов кластера.
Управление сеансами через утилиту rac (Command Line)
Для автоматизации процессов или работы в среде, где нет графического интерфейса (например, на Linux-серверах или через скрипты), используется консольная утилита rac (1C:Enterprise 8 Remote Administration Client). Это профессиональный инструмент, позволяющий выполнять все действия консоли сервера через командную строку.
Синтаксис команды для завершения сеансов выглядит следующим образом. Сначала необходимо получить список сеансов, а затем завершить их по идентификатору. Команда требует указания адреса кластера, порта и имени информационной базы.
rac session list --cluster=server_name --port=1541 --base=db_name
rac session close --cluster=server_name --port=1541 --session=session_id
Использование rac позволяет создавать скрипты для автоматического сброса сессий перед ночным обновлением или резервным копированием. Вы можете написать bat-файл или shell-скрипт, который будет проверять наличие пользователей и принудительно их отключать, не требуя вмешательства человека.
Ключевым преимуществом этого метода является скорость и возможность интеграции в системы мониторинга. Если вы используете Zabbix или аналогичные системы, можно настроить триггер, который при превышении количества сессий будет вызывать скрипт с утилитой rac для стабилизации нагрузки на сервер.
Утилита rac — единственный способ программно управлять сеансами на серверах без графического интерфейса и идеально подходит для DevOps-процессов.
Принудительное завершение на уровне операционной системы
В крайних случаях, когда программные методы не работают (например, при полном зависании процесса rphost или 1cv8), приходится прибегать к средствам операционной системы. Этот метод является «варварским» и должен использоваться только тогда, когда другие варианты исчерпаны.
В среде Windows откройте Диспетчер задач. Найдите процессы с именем 1cv8.exe (клиентские приложения) или rphost.exe (рабочие процессы сервера). Завершение процесса 1cv8.exe на компьютере пользователя эквивалентно выдергиванию шнура питания — данные не сохранятся. Завершение rphost.exe на сервере разорвет все сессии, обслуживаемые этим рабочим процессом.
В Linux-среде для этого используются команды kill или pkill. Например, команда pkill -9 1cv8 немедленно уничтожит все клиентские процессы. Более мягкий вариант — kill -15 (SIGTERM), который дает процессу шанс корректно завершить работу, но при зависании он часто игнорируется.
- 🔴 Риск: Высокая вероятность повреждения файлов базы (в файловом варианте) или необходимости восстановления транзакций в SQL.
- 🟠 Применение: Только при полном зависании системы, когда интерфейс и консоль сервера не отвечают.
- 🟢 Альтернатива: Попробуйте сначала перезапустить службу «Агент сервера 1С:Предприятия», это часто очищает зависшие сессии мягче, чем kill -9.
⚠️ Внимание: Никогда не убивайте процессы
rmngr(менеджер кластера) илиragent(агент), если у вас есть активные пользователи. Это приведет к падению всего кластера и может потребовать перезагрузки сервера.
После принудительного завершения процессов на уровне ОС настоятельно рекомендуется проверить целостность базы данных. В файловом варианте запустите chdbfl.exe, а в варианте с SQL выполните проверку консистентности средствами СУБД.
Блокировка доступа через файл блокировки (для файловых баз)
Если вы работаете с файловой версией базы данных и нужно срочно запретить всем вход, можно воспользоваться механизмом файла блокировки. Это простой, но эффективный метод, не требующий запуска самой платформы 1С.
В каталоге с файлами базы данных (там, где лежит файл 1Cv8.1CD) создайте пустой файл с именем 1Cv8.lock (или 1CV8LOK.DAT в старых версиях). При попытке запуска 1С проверит наличие этого файла и выдаст сообщение о том, что база заблокирована для использования.
Этот метод не «выкидывает» тех, кто уже внутри, но предотвращает подключение новых. Чтобы выгнать текущих, файл блокировки нужно использовать в комбинации с другими методами, например, сообщить пользователям о необходимости выйти, так как база переводится в режим обслуживания.
Удаление файла 1Cv8.lock снимает блокировку и позволяет пользователям снова работать. Убедитесь, что у вас есть права на запись в каталог базы, иначе создать файл не получится. Этот способ часто используется системными администратора при копировании баз по сети, чтобы обеспечить консистентность файлов во время передачи.
Часто задаваемые вопросы (FAQ)
Что будет, если выключить сервер 1С при наличии активных пользователей?
Все несохраненные данные будут потеряны. При следующем запуске сервера и базы может потребоваться длительное восстановление журналов регистрации или проверка целостности таблиц SQL. В файловом варианте высок риск повреждения файла 1Cv8.1CD.
Можно ли выгнать только одного конкретного пользователя?
Да, в режиме «Активные пользователи» или в Консоли сервера можно выбрать конкретную сессию по имени пользователя или компьютеру и завершить только её, не затрагивая остальных сотрудников.
Почему не получается завершить сеанс, он появляется снова?
Это может означать, что у пользователя настроен автоматический переподключитель, или клиентское приложение зависло в цикле переподключения. В таком случае поможет только завершение процесса 1cv8.exe на компьютере пользователя или перезагрузка его рабочей станции.
Как узнать, кто мешает установить монопольный режим?
При попытке включения монопольного режима 1С обычно выдает список пользователей, которые в данный момент работают в базе и мешают установке блокировки. Запишите их имена и попросите завершить работу.
Влияет ли завершение сеанса на проведение документов в фоне?
Да, если в момент разрыва соединения выполнялось проведение документа или запись в регистр, операция прервется. Это может привести к рассинхронизации данных, поэтому после массового сброса сессий рекомендуется запустить тесты целостности данных.