Отключаем пользователей от базы 1С перед обновлением: Конфигуратор, блокировка сеансов и консоль кластера
Содержание
В самом Конфигураторе нет кнопки «выгнать всех». Он показывает, кто сидит в базе (Администрирование → Активные пользователи), а при обновлении конфигурации базы данных в клиент-серверном варианте предлагает команду «Завершить сеансы и повторить». Чтобы гарантированно отключить всех пользователей
1С и не пустить их обратно, ставят блокировку начала сеансов, а затем принудительно завершают активные сеансы: в типовой конфигурации, в консоли кластера серверов или командой rac.
Порядок отличается для клиент-серверной и файловой базы, а ночное обновление удобно отдать скрипту. Всё сказанное относится к платформе 8.3 и типовым конфигурациям на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP).
Перед тем как выгонять пользователей: подготовка
Принудительное завершение сеанса — это обрыв. Пользователь теряет несохранённый документ, незавершённая транзакция откатывается. Поэтому сначала договоритесь, а потом отключайте.
Что сделать заранее:
- 📢 Предупредить людей. Письмо или сообщение в чат за 15–30 минут: «В 19:00 база закрывается на обновление, сохраните документы».
- 🕐 Выбрать окно. Не в день сдачи отчётности и не во время закрытия месяца, когда бухгалтер час ждёт расчёт себестоимости.
- ⏸ Проверить фоновые задачи. Обмен с сайтом, загрузка банковских выписок, регламентные задания тоже держат сеансы. Их придётся остановить вместе с людьми.
- 💾 Сделать копию. Если отключение нужно ради обновления или тестирования базы, сначала выгрузите
.dtили сделайте резервную копию СУБД. - 🔑 Проверить права. Для блокировки через типовую конфигурацию нужна роль администратора, для консоли кластера — логин и пароль администратора кластера, если он задан.
Монопольный доступ нужен не всегда. Он требуется для обновления структуры базы без динамического обновления, загрузки .dt, тестирования и исправления. Для правки отчёта в расширении или выгрузки конфигурации в файл выгонять людей не нужно.
Как через Конфигуратор посмотреть, кто сидит в базе
Откройте базу в режиме Конфигуратора и выберите Администрирование → Активные пользователи. Появится список текущих подключений.
В списке видно:
| Колонка | Что показывает |
|---|---|
| Пользователь | Имя пользователя информационной базы |
| Приложение | Тонкий клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение |
| Начало работы | Когда открыт сеанс |
| Компьютер | Имя машины, с которой зашёл пользователь |
Отсюда сеанс не завершить, но список полезен. Вы сразу видите, кому звонить, и замечаете «невидимых» участников: фоновые задания, второй Конфигуратор у коллеги-программиста, COM-соединение от внешней системы.
Если в списке висит сеанс человека, который давно ушёл домой, значит у него открыт клиент на компьютере или на терминальном сервере. Такие сеансы и приходится завершать принудительно.
Блокировка входа и монопольный режим
Выгнать пользователей мало: через минуту кто-то запустит 1С снова. Поэтому сначала запрещают новые входы, и только потом отключают тех, кто уже внутри.
Блокировка через типовую конфигурацию
В конфигурациях на БСП есть встроенная обработка. Зайдите в режиме 1С:Предприятие под администратором, откройте раздел Администрирование, группу обслуживания, команду «Блокировка работы пользователей» (в разных релизах группа называется по-разному, ищите в разделе по слову «Блокировка»).
Заполните форму:
- Сообщение — текст, который увидят пользователи: «Идёт обновление, вход после 21:00».
- Начало и окончание — интервал блокировки. Можно поставить начало через 10 минут, чтобы люди успели сохраниться.
- Код разрешения — пароль, с которым администратор войдёт в заблокированную базу. Например,
UPD2024. - Нажмите «Установить блокировку».
После начала блокировки программа сама предупреждает работающих пользователей и завершает их сеансы. В клиент-серверной базе она попросит логин и пароль администратора кластера, если он задан.
Как войти в заблокированную базу
Блокировка действует и на Конфигуратор. Войти можно только с кодом разрешения — параметром /UC. В окне запуска 1С выберите базу, нажмите «Изменить», на последней странице в поле дополнительных параметров запуска впишите:
/UCUPD2024
Или запустите из командной строки:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /UCUPD2024
Что такое монопольный режим
Монопольный режим — состояние, когда с базой работает ровно один сеанс. Его устанавливает платформа, когда операция этого требует, или код конфигурации (УстановитьМонопольныйРежим(Истина)). Включить его кнопкой, пока в базе есть другие сеансы, нельзя: сначала их нужно отключить. Блокировка начала сеансов как раз и создаёт условия, при которых монопольный режим получится установить.
Принудительно завершить сеансы пользователей 1С
Когда вход закрыт, остаётся отключить тех, кто внутри. Способов три, выбирайте по ситуации.
| Способ | Когда подходит | Риски |
|---|---|---|
| Блокировка БСП с автозавершением | Плановое обновление, есть 10–15 минут | Почти нет, людей предупредили |
| «Завершить сеансы и повторить» в Конфигураторе | Нужно обновить конфигурацию базы прямо сейчас | Пользователи теряют несохранённое |
Консоль кластера или rac | Сеанс завис, БСП нет, база не открывается | Обрыв без предупреждения |
Через Конфигуратор при обновлении
Запустите Конфигурация → Обновить конфигурацию базы данных (F7). Если изменения нельзя применить динамически, а в базе есть другие сеансы, платформа сообщит об ошибке установки монопольного режима и предложит варианты, среди которых «Завершить сеансы и повторить». Эта команда отключает всех пользователей и сразу повторяет обновление.
Перед нажатием убедитесь, что никто не проводит документы в эту минуту: сеансы обрываются без предупреждения.
Через «Активные пользователи» в режиме предприятия
В типовых конфигурациях есть одноимённая форма в режиме 1С:Предприятие. В клиент-серверной базе там можно выделить сеансы и выполнить команду завершения. Удобно, когда нужно выгнать двух-трёх человек, а не всех.
Отключение пользователей через консоль кластера серверов 1С
Консоль «Администрирование серверов 1С:Предприятия» работает только с клиент-серверными базами. Её ставят вместе с сервером 1С или отдельно, в составе дистрибутива платформы.
Порядок действий:
- Откройте консоль, разверните
Central 1C:Enterprise 8.3 Servers → имя сервера → Кластеры → кластер → Информационные базы. - Найдите нужную базу и откройте её свойства.
- Включите флажок «Блокировка начала сеансов включена», задайте время начала и окончания, сообщение и код разрешения.
- Если нужно остановить регламентные задания, включите «Блокировка регламентных заданий включена».
- Сохраните свойства (понадобится логин и пароль администратора информационной базы).
- Разверните базу, откройте ветку «Сеансы».
- Выделите все сеансы (Ctrl+A), правой кнопкой выберите «Удалить».
После удаления сеанса у пользователя появится сообщение о разрыве соединения. Если блокировка уже стоит, войти снова он не сможет.
Удаляйте именно сеансы, а не рабочие процессы. Перезапуск рабочего процесса rphost отключит пользователей всех баз на этом сервере, а не только вашей. Делать это можно только в согласованное окно, когда сервер обслуживает одну базу или все базы свободны.
Свой сеанс консоли и Конфигуратора
Если вы уже открыли Конфигуратор, его сеанс тоже будет в списке. Не удаляйте его, иначе потеряете несохранённые изменения конфигурации. Ориентируйтесь по колонке «Приложение» и имени компьютера.
Как выгнать пользователей из файловой базы
В файловом варианте нет кластера и нет консоли. Есть только файл 1Cv8.1CD в каталоге базы, который открыт у всех работающих пользователей.
Что работает:
- ✅ Блокировка БСП. Работает и в файловой базе: клиенты сами получают предупреждение и закрываются к началу блокировки. Нужно, чтобы программы у пользователей были запущены и не зависли.
- ✅ Список в Конфигураторе.
Администрирование → Активные пользователипоказывает, кого обзвонить. - ✅ Закрытие файла на файловом сервере. Если база лежит в общей папке на Windows-сервере, откройте
Управление компьютером → Общие папки → Открытые файлы, найдите1Cv8.1CDи закройте его у нужного пользователя.
Закрытие файла с сервера — крайняя мера: если в этот момент шла запись, базу придётся проверять через «Тестирование и исправление». Перед этим сделайте копию каталога базы.
Если база на компьютере пользователя
Когда база лежит на одном из рабочих компьютеров, а остальные подключаются к ней по сети, открытые файлы смотрят там же: в оснастке «Управление компьютером» этого компьютера. Альтернатива — попросить людей закрыть 1С и проверить, что процесс 1cv8c.exe или 1cv8.exe пропал в диспетчере задач.
Если пользователей нет, а Конфигуратор пишет, что база занята, проверьте зависшие процессы 1С на терминальном сервере. Сеанс, закрытый крестиком при сбое сети, может остаться висеть до перезагрузки клиента.
Скрипт: как отключить всех пользователей 1С автоматически
Ночное обновление удобно запускать по расписанию. Есть два пути.
Через параметры запуска типовой конфигурации
Конфигурации на БСП понимают специальные параметры запуска /C:
/C"ЗавершитьРаботуПользователей"— устанавливает блокировку и завершает сеансы;/C"РазрешитьРаботуПользователей"— снимает блокировку.
Пример bat-файла для клиент-серверной базы:
@echo off
set V8="C:\Program Files\1cv8\common\1cestart.exe"
set BASE=/S"srv1c\buh"
set USR=/N"Администратор" /P"пароль"
rem 1. Блокируем вход и выгоняем пользователей
%V8% ENTERPRISE %BASE% %USR% /C"ЗавершитьРаботуПользователей" /UCUPD2024 /DisableStartupMessages
rem 2. Здесь — обновление, выгрузка .dt и т.д. с ключом /UCUPD2024
rem 3. Снимаем блокировку
%V8% ENTERPRISE %BASE% %USR% /C"РазрешитьРаботуПользователей" /UCUPD2024 /DisableStartupMessages
Код разрешения в первом вызове задаёт пароль блокировки, дальше его указывают во всех служебных запусках.
Через rac на сервере
Утилита rac лежит в каталоге bin платформы и работает через сервер администрирования ras (по умолчанию порт 1545). Сервис ras должен быть запущен.
Пример на PowerShell, который блокирует вход и удаляет все сеансы одной базы:
$rac = "C:\Program Files\1cv8\8.3.xx.xxxx\bin\rac.exe"
$host_ = "localhost:1545"
$baseName = "buh"
# Кластер
$cluster = ((& $rac cluster list $host_ | Select-String '^cluster\s*:') -split ':')[1].Trim()
# Информационная база
$lines = & $rac infobase summary list --cluster=$cluster $host_
for ($i = 0; $i -lt $lines.Count; $i++) {
if ($lines[$i] -match '^name\s*:\s*(.+)$' -and $Matches[1].Trim() -eq $baseName) {
$ib = ($lines[$i-1] -split ':')[1].Trim()
}
}
# Блокировка начала сеансов и регламентных заданий
& $rac infobase update --cluster=$cluster --infobase=$ib `
--infobase-user="Администратор" --infobase-pwd="пароль" `
--sessions-deny=on --scheduled-jobs-deny=on `
--denied-message="Обновление базы" --permission-code="UPD2024" $host_
# Завершение всех сеансов базы
& $rac session list --cluster=$cluster --infobase=$ib $host_ |
Select-String '^session\s*:' | ForEach-Object {
$sid = ($_ -split ':')[1].Trim()
& $rac session terminate --cluster=$cluster --session=$sid $host_
}
Если у кластера задан администратор, добавьте к командам --cluster-user и --cluster-pwd. Полный список ключей для вашей версии показывает rac help session и rac help infobase.
Снять блокировку после работ — та же команда infobase update с --sessions-deny=off --scheduled-jobs-deny=off.
Пароли в скрипте храните так, чтобы файл не читали посторонние: отдельная учётная запись для планировщика и права на файл только у неё.
Если пользователи не отключаются: частые проблемы
Ещё одна частая ловушка — забыть снять блокировку. Утром бухгалтерия не может войти, а администратор ещё спит. Ставьте время окончания блокировки в форме или в консоли, тогда она снимется сама.