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