К статье
Практический материал

Администрирование · 11 мин

Как отключить пользователей от базы 1С

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

Отключение пользователей от информационной базы 1С — типовая задача администратора: она требуется перед обновлением конфигурации, восстановлением из резервной копии, регламентным обслуживанием СУБД или тестированием и исправлением ошибок. Способ зависит от режима работы базы: файловый или клиент-серверный вариант используют разные инструменты.

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

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

Как посмотреть, кто сейчас работает в базе

Перед отключением оцените ситуацию: сколько активных сеансов, какие это пользователи и чем они заняты. В клиент-серверном варианте откройте консоль администрирования серверов 1С (1CV8 Servers), выберите кластер, раскройте нужную информационную базу и перейдите на вкладку «Сеансы». Там видно пользователя, время начала сеанса, приложение (толстый клиент, тонкий, веб-клиент, фоновое задание) и текущую активность.

В файловом режиме список смотрят в конфигураторе: меню «Администрирование» → «Активные пользователи». Этот список показывает сеансы, но не позволяет принудительно завершить чужой сеанс штатной кнопкой — для файловой базы потребуется программное завершение или блокировка.

Обратите внимание на сеансы с приложением «Фоновое задание» и «Регламентное задание». Их принудительное завершение может оборвать обмен данными или длительную обработку на середине, что иногда опаснее, чем отключение обычного пользователя.

Много сеансов одного пользователяВозможны зависшие сеансы

Сравните время начала и последнюю активность — старые неактивные сеансы можно завершать первыми

Сеанс «Фоновое задание» активенИдёт обработка или обмен

Проверьте журнал регистрации и регламентные задания перед завершением

Пользователь редактирует объектРиск потери несохранённых данных

Свяжитесь с пользователем и попросите завершить работу

Отключение через консоль администрирования серверов 1С

Это основной способ для клиент-серверных баз. Откройте оснастку «Администрирование серверов 1С Предприятия» на сервере или на машине администратора с установленными компонентами сервера, найдите нужную базу и перейдите на вкладку «Сеансы». Выделите один или несколько сеансов (с Ctrl — несколько, с Shift — диапазон) и в контекстном меню выберите «Удалить» либо нажмите Delete.

Сеанс завершается принудительно: у пользователя клиентское приложение закроется с сообщением о разрыве соединения с сервером. Все несохранённые данные в открытых формах будут потеряны. Административные права на кластер или информационную базу обязательны — без них список сеансов будет недоступен или удаление не сработает.

Если нужно выгнать всех сразу, быстрее не удалять сеансы по одному, а сочетать два действия: сначала установить блокировку соединений в свойствах базы (чтобы никто не зашёл заново), затем удалить оставшиеся сеансы. Иначе пользователи с автоподключением будут возвращаться быстрее, чем вы их отключаете.

Порядок действий в консоли серверов
  1. 1
    Откройте оснастку «Администрирование серверов 1С» и разверните нужный кластер
  2. 2
    Выберите информационную базу и перейдите на вкладку «Сеансы»
  3. 3
    При необходимости отправьте пользователям сообщение через контекстное меню
  4. 4
    Установите блокировку соединений в свойствах базы
  5. 5
    Выделите сеансы и удалите их через контекстное меню
  6. 6
    Проверьте, что вкладка «Сеансы» пуста или остались только ваши сеансы

Отключение через утилиту rac из командной строки

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

bash
rac session --cluster=<ID_кластера> list --infobase=<ID_базы>
rac session --cluster=<ID_кластера> terminate --session=<ID_сеанса>

Идентификаторы кластера и базы получают командами rac cluster list и rac infobase summary list. Если на кластер или базу задана административная аутентификация, добавьте параметры --cluster-user и --cluster-pwd. Утилиту удобно оборачивать в bat- или PowerShell-скрипт, который сначала ставит блокировку, потом завершает все сеансы — такой скрипт часто запускают перед ночным обновлением.

Проверка результата: повторный вызов rac session list должен вернуть пустой список или только ваш текущий сеанс. Если сеансы появляются снова — где-то работает автоподключение или не снят запуск регламентных заданий.

Программное завершение сеансов кодом 1С

Из встроенного языка сеансами управляет менеджер информационной базы: метод ПолучитьСеансыИнформационнойБазы() возвращает коллекцию сеансов, а ЗавершитьСеансИнформационнойБазы(номер) завершает выбранный. Для работы кода требуются административные права, а в клиент-серверном режиме — выполнение на сервере.

bsl
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
    Если Сеанс.НомерСеанса <> НомерСеансаИнформационнойБазы() Тогда
        ЗавершитьСеансИнформационнойБазы(Сеанс.НомерСеанса);
    КонецЕсли;
КонецЦикла;

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

В типовых конфигурациях на базе БСП (Библиотека стандартных подсистем) есть готовый механизм: «Администрирование» → «Обслуживание» → «Блокировка работы пользователей». Он устанавливает блокировку, рассылает пользователям сообщение с просьбой выйти и по расписанию завершает оставшиеся сеансы — без написания кода.

Блокировка соединений: как не дать пользователям зайти снова

Отключение сеансов без блокировки — половина дела: пользователи тут же переподключатся. В клиент-серверном режиме блокировка ставится в свойствах информационной базы в консоли серверов: флажок «Блокировка регламентных заданий включена» и параметры блокировки соединений с датой начала, сообщением и кодом разрешения.

Код разрешения (разрешительный код) позволяет администратору зайти в заблокированную базу: его указывают как параметр запуска /UC в командной строке клиента. Сообщение блокировки увидит каждый, кто попытается войти, — напишите там причину и ориентировочное время окончания работ.

В файловом режиме блокировку ставят программно через УстановитьБлокировкуСоединенийИнформационнойБазы() или через типовой механизм БСП. Физически создаётся служебный файл блокировки в каталоге базы: пока он существует, новые соединения отклоняются.

Особенности файловой базы и типичные ошибки

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

Частая проблема файловых баз — «зависшие» соединения после аварийного завершения клиента: база сообщает, что пользователи ещё работают, хотя никого нет. Обычно помогает проверка списка активных пользователей, завершение процессов 1cv8.exe на машинах пользователей и, в крайнем случае, ожидание тайм-аута соединений. Не удаляйте файл 1Cv8.1CD и служебные файлы, пока не убедитесь, что соединений действительно нет.

Типичные ошибки
01
Завершение сеансов без блокировки — пользователи переподключаются, и отключение превращается в бесконечный цикл
02
Отключение без предупреждения — потеря несохранённых документов и конфликты с сотрудниками
03
Завершение собственного сеанса в цикле программного отключения — обработка обрывается на середине
04
Игнорирование фоновых заданий — обмен или загрузка данных обрывается на середине транзакции
05
Ручное удаление служебных файлов файловой базы при активных соединениях — риск повреждения данных

Как проверить, что все отключены

После завершения сеансов обновите список в консоли серверов или в «Активных пользователях»: должны остаться только ваши административные сеансы. Дополнительно проверьте, что блокировка соединений активна — попытка входа обычным пользователем должна завершаться сообщением о блокировке.

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

Контрольные точки

Как проверить результат

Список сеансов в консоли или в «Активных пользователях»
Норма

Пусто или только сеанс администратора

Тревожный признак

Появляются новые сеансы — блокировка не установлена

Попытка входа тестовым пользователем
Норма

Сообщение о блокировке информационной базы

Тревожный признак

Пользователь входит в базу — блокировка не сработала

Регламентные задания
Норма

Выполнение остановлено, задания не запускаются

Тревожный признак

Задания продолжают стартовать и создавать сеансы

Итог

Что важно запомнить

Сначала предупредите пользователей и установите блокировку соединений, затем завершайте оставшиеся сеансы через консоль серверов, rac или программно. Проверьте отсутствие активных фоновых заданий, а после работ снимите блокировку. Ручное вмешательство в файлы базы — только когда все соединения гарантированно закрыты.

Частые вопросы

Можно ли отключить пользователей без прав администратора?

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

Пользователь снова заходит в базу сразу после отключения. Что делать?

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

Что будет с непроведёнными документами при принудительном отключении?

Несохранённые изменения в открытых формах будут потеряны. Данные, уже записанные в базу, не пострадают: транзакционный механизм 1С и СУБД откатывает незавершённые транзакции, сохраняя целостность базы.

Как отключить пользователей файловой базы, если консоли серверов нет?

Используйте программное завершение сеансов через обработку с методом «ЗавершитьСеансИнформационнойБазы», типовой механизм «Блокировка работы пользователей» в конфигурациях на БСП или договоритесь с сотрудниками о выходе и установите блокировку соединений.

Опасно ли завершать сеансы фоновых заданий?

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

Как зайти в базу, когда включена блокировка соединений?

Используйте код разрешения, заданный при установке блокировки: запустите клиент с параметром /UC<код> или укажите код в форме блокировки, если конфигурация её показывает. После окончания работ снимите блокировку в свойствах базы или программно.