Администрирование · 11 мин
Как отключить пользователей от базы 1С
Как отключить пользователей от базы 1С: консоль кластера, консольные команды, код завершения сеансов, файловые базы. Пошаговые инструкции и типичные ошибки.
Отключение пользователей от информационной базы 1С — типовая задача администратора: она требуется перед обновлением конфигурации, восстановлением из резервной копии, регламентным обслуживанием СУБД или тестированием и исправлением ошибок. Способ зависит от режима работы базы: файловый или клиент-серверный вариант используют разные инструменты.
Важно понимать разницу между сеансом и соединением. Сеанс — это активная работа пользователя с базой, соединение — технический канал между клиентом и сервером (или файлом базы). Завершение сеанса освобождает базу, а принудительный разрыв соединения без корректного завершения сеанса может оставить «зависшие» процессы и блокировки.
Принудительное отключение — крайняя мера. Если у пользователя открыта непроведённая транзакция или редактируется документ, данные могут быть потеряны, а в редких случаях возникают ошибки целостности. Поэтому сначала применяют мягкие методы: рассылку сообщений и установку блокировки соединений, а завершение сеансов используют для тех, кто не вышел сам.
Как посмотреть, кто сейчас работает в базе
Перед отключением оцените ситуацию: сколько активных сеансов, какие это пользователи и чем они заняты. В клиент-серверном варианте откройте консоль администрирования серверов 1С (1CV8 Servers), выберите кластер, раскройте нужную информационную базу и перейдите на вкладку «Сеансы». Там видно пользователя, время начала сеанса, приложение (толстый клиент, тонкий, веб-клиент, фоновое задание) и текущую активность.
В файловом режиме список смотрят в конфигураторе: меню «Администрирование» → «Активные пользователи». Этот список показывает сеансы, но не позволяет принудительно завершить чужой сеанс штатной кнопкой — для файловой базы потребуется программное завершение или блокировка.
Обратите внимание на сеансы с приложением «Фоновое задание» и «Регламентное задание». Их принудительное завершение может оборвать обмен данными или длительную обработку на середине, что иногда опаснее, чем отключение обычного пользователя.
Сравните время начала и последнюю активность — старые неактивные сеансы можно завершать первыми
Проверьте журнал регистрации и регламентные задания перед завершением
Свяжитесь с пользователем и попросите завершить работу
Отключение через консоль администрирования серверов 1С
Это основной способ для клиент-серверных баз. Откройте оснастку «Администрирование серверов 1С Предприятия» на сервере или на машине администратора с установленными компонентами сервера, найдите нужную базу и перейдите на вкладку «Сеансы». Выделите один или несколько сеансов (с Ctrl — несколько, с Shift — диапазон) и в контекстном меню выберите «Удалить» либо нажмите Delete.
Сеанс завершается принудительно: у пользователя клиентское приложение закроется с сообщением о разрыве соединения с сервером. Все несохранённые данные в открытых формах будут потеряны. Административные права на кластер или информационную базу обязательны — без них список сеансов будет недоступен или удаление не сработает.
Если нужно выгнать всех сразу, быстрее не удалять сеансы по одному, а сочетать два действия: сначала установить блокировку соединений в свойствах базы (чтобы никто не зашёл заново), затем удалить оставшиеся сеансы. Иначе пользователи с автоподключением будут возвращаться быстрее, чем вы их отключаете.
- 1Откройте оснастку «Администрирование серверов 1С» и разверните нужный кластер
- 2Выберите информационную базу и перейдите на вкладку «Сеансы»
- 3При необходимости отправьте пользователям сообщение через контекстное меню
- 4Установите блокировку соединений в свойствах базы
- 5Выделите сеансы и удалите их через контекстное меню
- 6Проверьте, что вкладка «Сеансы» пуста или остались только ваши сеансы
Отключение через утилиту rac из командной строки
Для автоматизации и работы без графической консоли используют консольную утилиту rac из каталога установки сервера 1С. Она позволяет получить список сеансов и завершить их по идентификатору. Типичный сценарий: сначала запрашивают список сеансов базы, затем завершают каждый в цикле.
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С
Из встроенного языка сеансами управляет менеджер информационной базы: метод ПолучитьСеансыИнформационнойБазы() возвращает коллекцию сеансов, а ЗавершитьСеансИнформационнойБазы(номер) завершает выбранный. Для работы кода требуются административные права, а в клиент-серверном режиме — выполнение на сервере.
Сеансы = ПолучитьСеансыИнформационнойБазы();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.НомерСеанса <> НомерСеансаИнформационнойБазы() Тогда
ЗавершитьСеансИнформационнойБазы(Сеанс.НомерСеанса);
КонецЕсли;
КонецЦикла;Такой код обычно помещают в служебную внешнюю обработку или регламентное задание. Важно исключить собственный сеанс из завершения, иначе обработка оборвёт сама себя до окончания цикла. Дополнительно полезно отфильтровать сеансы фоновых заданий, если их нужно сохранить.
В типовых конфигурациях на базе БСП (Библиотека стандартных подсистем) есть готовый механизм: «Администрирование» → «Обслуживание» → «Блокировка работы пользователей». Он устанавливает блокировку, рассылает пользователям сообщение с просьбой выйти и по расписанию завершает оставшиеся сеансы — без написания кода.
Блокировка соединений: как не дать пользователям зайти снова
Отключение сеансов без блокировки — половина дела: пользователи тут же переподключатся. В клиент-серверном режиме блокировка ставится в свойствах информационной базы в консоли серверов: флажок «Блокировка регламентных заданий включена» и параметры блокировки соединений с датой начала, сообщением и кодом разрешения.
Код разрешения (разрешительный код) позволяет администратору зайти в заблокированную базу: его указывают как параметр запуска /UC в командной строке клиента. Сообщение блокировки увидит каждый, кто попытается войти, — напишите там причину и ориентировочное время окончания работ.
В файловом режиме блокировку ставят программно через УстановитьБлокировкуСоединенийИнформационнойБазы() или через типовой механизм БСП. Физически создаётся служебный файл блокировки в каталоге базы: пока он существует, новые соединения отклоняются.
Особенности файловой базы и типичные ошибки
В файловом варианте нет сервера приложений, поэтому консоль кластера не поможет. Рабочие варианты: попросить всех выйти и установить блокировку соединений, программно завершить сеансы из сеанса конфигуратора или перезагрузить компьютеры/сервер, где открыт файл базы. Последний способ грубый и допустим только как крайняя мера.
Частая проблема файловых баз — «зависшие» соединения после аварийного завершения клиента: база сообщает, что пользователи ещё работают, хотя никого нет. Обычно помогает проверка списка активных пользователей, завершение процессов 1cv8.exe на машинах пользователей и, в крайнем случае, ожидание тайм-аута соединений. Не удаляйте файл 1Cv8.1CD и служебные файлы, пока не убедитесь, что соединений действительно нет.
Как проверить, что все отключены
После завершения сеансов обновите список в консоли серверов или в «Активных пользователях»: должны остаться только ваши административные сеансы. Дополнительно проверьте, что блокировка соединений активна — попытка входа обычным пользователем должна завершаться сообщением о блокировке.
Перед регламентными работами убедитесь, что остановлены регламентные и фоновые задания: в консоли серверов за это отвечает флажок в свойствах базы, в файловом режиме — блокировка регламентных заданий программно или через БСП. После окончания работ не забудьте снять блокировку и сообщить пользователям, что можно работать.
Как проверить результат
Пусто или только сеанс администратора
Появляются новые сеансы — блокировка не установлена
Сообщение о блокировке информационной базы
Пользователь входит в базу — блокировка не сработала
Выполнение остановлено, задания не запускаются
Задания продолжают стартовать и создавать сеансы
Что важно запомнить
Сначала предупредите пользователей и установите блокировку соединений, затем завершайте оставшиеся сеансы через консоль серверов, rac или программно. Проверьте отсутствие активных фоновых заданий, а после работ снимите блокировку. Ручное вмешательство в файлы базы — только когда все соединения гарантированно закрыты.
Частые вопросы
Можно ли отключить пользователей без прав администратора?
Нет. Завершение чужих сеансов и установка блокировки соединений требуют административных прав на кластер или информационную базу. Обычный пользователь может завершить только собственный сеанс, просто закрыв программу.
Пользователь снова заходит в базу сразу после отключения. Что делать?
Вы завершаете сеансы, но не установили блокировку соединений. Включите блокировку в свойствах базы (клиент-сервер) или через механизм БСП (файловый режим), задайте сообщение и код разрешения — тогда новые подключения будут отклоняться.
Что будет с непроведёнными документами при принудительном отключении?
Несохранённые изменения в открытых формах будут потеряны. Данные, уже записанные в базу, не пострадают: транзакционный механизм 1С и СУБД откатывает незавершённые транзакции, сохраняя целостность базы.
Как отключить пользователей файловой базы, если консоли серверов нет?
Используйте программное завершение сеансов через обработку с методом «ЗавершитьСеансИнформационнойБазы», типовой механизм «Блокировка работы пользователей» в конфигурациях на БСП или договоритесь с сотрудниками о выходе и установите блокировку соединений.
Опасно ли завершать сеансы фоновых заданий?
Да, если задание выполняет обмен данными или длительную обработку: оно оборвётся на середине. Перед завершением проверьте в журнале регистрации, какие задания активны, и по возможности дождитесь их окончания или отключите расписание заранее.
Как зайти в базу, когда включена блокировка соединений?
Используйте код разрешения, заданный при установке блокировки: запустите клиент с параметром /UC<код> или укажите код в форме блокировки, если конфигурация её показывает. После окончания работ снимите блокировку в свойствах базы или программно.