Администрирование · 9 мин
Как завершить сеанс пользователя 1С из конфигуратора
Как завершить сеанс пользователя 1С из конфигуратора: кластер серверов, консоль администрирования, блокировка сеансов, код на встроенном языке и типичные ошибки.
Завершить сеанс пользователя в 1С требуется при обновлении конфигурации базы данных, восстановлении из архива, монопольных операциях или когда сеанс «завис» и удерживает блокировки. Способ зависит от режима работы: в файловой базе инструменты ограничены, в клиент-серверном варианте сеансы управляются через консоль кластера серверов 1С. Сам конфигуратор не содержит кнопки «отключить пользователя», но из него можно установить блокировку сеансов, а для принудительного завершения используются консоль кластера или программные средства.
Важно понимать разницу между тремя действиями: завершение сеанса (принудительный разрыв работы конкретного пользователя), блокировка сеансов (запрет новых подключений и мягкое завершение текущих) и установка монопольного режима (доступ к базе только для одного сеанса). Для обновления конфигурации обычно достаточно блокировки, а принудительный разрыв — крайняя мера, так как несохранённые данные пользователя будут потеряны.
Какие сеансы бывают и что именно вы завершаете
В 1С различают сеансы и соединения. Сеанс — это логический объект работы пользователя или фонового задания с информационной базой; соединение — технический канал связи. Один сеанс может иметь несколько соединений, а зависший сеанс иногда остаётся в списке даже после закрытия программы пользователем. Именно такие «висящие» сеансы чаще всего мешают обновлению конфигурации, требуя монопольного доступа.
Прежде чем завершать сеанс, проверьте в списке активных пользователей (в конфигураторе: Администрирование → Активные пользователи), кто именно работает. Там видно имя пользователя, компьютер, время начала сеанса и режим работы. Это помогает не отключить случайно бухгалтера, проводящего документы, и найти действительно зависший сеанс.
Завершение сеанса через консоль кластера серверов
Основной способ для клиент-серверной 1С — консоль администрирования серверов 1С (оснастка «Администрирование серверов 1С Предприятия»). Откройте её на сервере или на компьютере администратора, найдите нужный кластер, раскройте ветку с информационной базой и перейдите в раздел «Сеансы». В списке отображаются все активные сеансы с указанием пользователя, приложения (толстый клиент, тонкий клиент, веб-клиент, фоновое задание) и времени активности.
Выделите нужный сеанс и выберите в контекстном меню команду «Удалить». Сеанс будет завершён немедленно: у пользователя появится сообщение о разрыве соединения, а несохранённые данные (например, незаписанный документ) пропадут. Перед удалением рабочего сеанса предупредите пользователя или убедитесь, что это зависший процесс — например, сеанс без активности длительное время, а пользователь уже ушёл.
- 1Откройте оснастку «Администрирование серверов 1С Предприятия» и подключитесь к нужному кластеру
- 2Раскройте кластер → информационную базу → ветку «Сеансы»
- 3Найдите сеанс по имени пользователя, приложению и времени бездействия
- 4Предупредите пользователя, если это активный рабочий сеанс
- 5Правой кнопкой по сеансу → «Удалить»
- 6Проверьте, что сеанс исчез из списка, а у пользователя закрылся клиент
Блокировка сеансов через конфигуратор
Если задача — не убить один сеанс, а выгнать всех пользователей для обновления, используйте блокировку сеансов. В конфигураторе откройте меню Администрирование → Обслуживание → Блокировка установки соединений с информационной базой (в разных версиях платформы пункт может называться «Блокировка сеансов»). Установите флаг блокировки, укажите код разрешения (пароль для входа администратора во время блокировки) и сообщение, которое увидят пользователи.
В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) есть более удобный механизм — обработка «Блокировка работы пользователей» в разделе администрирования. Она не только запрещает новые подключения, но и по расписанию принудительно завершает активные сеансы с предупреждением пользователей за несколько минут. Это самый безопасный способ подготовить базу к обновлению без ручного отключения каждого.
Программное завершение сеансов
Для автоматизации сеансы можно завершать кодом на встроенном языке. В файловом режиме доступен метод ЗавершитьРаботуСистемы() для текущего сеанса. Для управления чужими сеансами в клиент-серверном варианте используется COM-соединение с агентом кластера (V83.COMConnector и объект агента) или административный интерфейс RAS (расширение администрирования сервера) с HTTP-запросами.
Через RAS сеанс завершается запросом DELETE к ресурсу сеанса. Это удобно для скриптов регламентного обслуживания: например, ночного завершения всех сеансов перед резервным копированием. Учтите, что для работы RAS нужно включать отдельной службой и настраивать аутентификацию администратора кластера.
// Получение списка сеансов текущей ИБ (внутри сервера 1С)
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Сообщить(Сеанс.ИмяПользователя + " / " + Сеанс.ИмяПриложения);
КонецЦикла;Файловая база: ограничения и обходные пути
В файловой информационной базе нет кластера серверов, поэтому консоль администрирования недоступна. Завершить чужой сеанс напрямую из конфигуратора нельзя — можно только попросить пользователей выйти, установить блокировку сеансов или завершить процесс 1cv8.exe на компьютере пользователя (вручную или удалённо через диспетчер задач / PowerShell).
Если файловая база опубликована на веб-сервере, сеансами управляет уже веб-сервер, и зависшие подключения снимаются перезапуском пула приложений или службы веб-сервера. Для локальной файловой базы, открытой по сети, зависший сеанс иногда «отвисает» сам через несколько минут после разрыва связи с компьютером пользователя.
Сравнение способов завершения сеансов
Точечное удаление любого сеанса в клиент-серверной базе; требует прав администратора кластера
Мягкое отключение всех с предупреждением; подходит для регламентных работ, но не мгновенно
Единственный вариант для файловой базы; грубо, риск повреждения данных при записи
Автоматизация регламентных отключений; требует настройки службы и навыков администрирования
Риски и проверка результата
Принудительное завершение сеанса во время записи данных может оставить незавершённые транзакции. Клиент-серверная СУБД (MS SQL, PostgreSQL) откатит такую транзакцию автоматически, но в файловой базе резкое завершение процесса во время записи способно повредить файл 1Cv8.1CD. Поэтому в файловом режиме избегайте «убийства» процессов, если пользователь мог записывать документы.
После завершения сеансов проверьте результат: в консоли кластера список сеансов должен очиститься (кроме вашего), а при попытке установить монопольный режим или обновить конфигурацию базы данных не должно быть ошибки «База данных используется другими пользователями». Если ошибка остаётся, ищите фоновые задания и сеансы регламентных операций — они тоже блокируют монопольный доступ.
Частые вопросы
Что важно запомнить
В клиент-серверной 1С сеансы завершают через консоль кластера (ветка «Сеансы» → «Удалить»), для массового отключения используют блокировку сеансов из конфигуратора или типовую обработку. В файловой базе прямого завершения нет — только блокировка или завершение процесса. Перед принудительным разрывом предупреждайте пользователей и проверяйте фоновые задания.
Можно ли завершить сеанс прямо из окна конфигуратора?
Отдельной кнопки «отключить пользователя» в конфигураторе нет. Из конфигуратора доступны список активных пользователей (Администрирование → Активные пользователи) и установка блокировки сеансов. Принудительное завершение конкретного сеанса выполняется через консоль кластера серверов или программно.
Пользователь вышел, но сеанс висит в списке. Что делать?
Это типичный зависший сеанс. В клиент-серверной базе удалите его через консоль кластера — это безопасно, так как реальной работы уже нет. Если такие сеансы появляются регулярно, проверьте настройки таймаутов кластера: параметры «интервал перезапуска» и «допустимый объём памяти» рабочих процессов.
Как отключить всех пользователей перед обновлением конфигурации?
Оптимальный путь: установите блокировку сеансов с сообщением и временем завершения, дождитесь выхода пользователей, затем удалите оставшиеся сеансы (включая фоновые задания) через консоль кластера. В типовых конфигурациях используйте обработку «Блокировка работы пользователей» — она автоматизирует весь цикл.
Что произойдёт с данными пользователя при принудительном завершении?
Несохранённые данные (открытый незаписанный документ, заполненная форма) будут потеряны. Записанные данные не пострадают: в клиент-серверной базе СУБД откатит незавершённую транзакцию. В файловой базе резкое завершение процесса во время записи может повредить файл базы, поэтому там лучше использовать мягкую блокировку.
Как войти в базу, если установлена блокировка сеансов?
Используйте код разрешения, заданный при установке блокировки: его вводят при входе или передают параметром запуска /UC<код>. Администратор кластера также может снять или изменить блокировку через свойства информационной базы в консоли кластера без входа в саму базу.
Почему монопольный режим не устанавливается, хотя всех отключил?
Чаще всего остаются фоновые задания, сеансы веб-сервисов или COM-соединения — проверьте полный список сеансов в консоли кластера, а не только сеансы пользователей. Также убедитесь, что не запущен второй конфигуратор или внешняя обработка с подключением к этой же базе.