Монопольный режим в 1С: выгоняем всех из базы и не пускаем обратно
Содержание
Закрыть активных пользователей в 1С проще всего из самой программы: в БП 3.0, ЗУП 3.1 и УТ 11 откройте раздел Администрирование → Обслуживание (в старых релизах — Поддержка и обслуживание), команду «Блокировка работы пользователей», включите запрет входа и запишите. Через несколько минут программа сама завершит сеансы и не пустит новых. Для клиент-серверной базы есть второй путь — консоль администрирования кластера, где сеанс удаляется вручную, а вход запрещается в свойствах базы.
Оба способа нужны, чтобы перевести базу в монопольный режим: обновить структуру, загрузить .dt, запустить тестирование и исправление. Если сеанс «висит» и не уходит даже после блокировки, виноваты обычно фоновые задания или внешние соединения.
Монопольный режим: зачем выгонять всех из базы
Монопольный режим — состояние, когда с базой работает ровно один сеанс: ваш. Платформа требует его не для всего подряд, а для конкретных операций:
- 🔧 обновление конфигурации базы данных, если меняется структура таблиц (а динамическое обновление невозможно или нежелательно);
- 📦 загрузка информационной базы из файла
.dt; - 🩺 тестирование и исправление информационной базы;
- 🔄 переход на новую версию конфигурации через помощник обновления.
Обычная работа в Конфигураторе, выгрузка .dt, просмотр журнала регистрации монополии не требуют. Поэтому не стоит выгонять бухгалтерию «на всякий случай» — сначала убедитесь, что операция действительно её требует.
Что считается активным пользователем
В список активных попадают не только люди за компьютерами. Сеанс открывают:
- 👤 пользователи в тонком, толстом и веб-клиенте;
- ⚙️ Конфигуратор (в том числе ваш собственный, открытый во втором окне);
- ⏱ фоновые и регламентные задания — обмены, загрузка курсов, полнотекстовый поиск;
- 🔌 COM-соединения и внешние программы, HTTP- и веб-сервисы.
Последние две группы — главная причина, почему «всех выгнали, а база всё равно занята». Регламентные задания стартуют по расписанию снова, если их не заблокировать.
Перед стартом
Определите вариант базы: файловая или клиент-серверная. Это видно в списке баз при запуске — у серверной в строке подключения указаны Srvr= и Ref=, у файловой — File= и путь к каталогу. От варианта зависят доступные способы.
Предупредите людей заранее: сообщение в мессенджере за 15–30 минут честнее, чем внезапно закрытое окно с несохранённым документом.
Как закрыть активных пользователей из интерфейса 1С
Этот способ работает в типовых конфигурациях на БСП: БП 3.0, ЗУП 3.1, УТ 11, КА, ERP. Для файловых и серверных баз одинаково.
Посмотреть, кто сейчас в базе
- Откройте
Администрирование → Обслуживание. - Найдите группу команд про пользователей и сеансы, нажмите «Активные пользователи».
- В списке видно имя пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание) и время начала сеанса.
Тот же список есть в Конфигураторе: Администрирование → Активные пользователи. В клиент-серверной базе из обработки «Активные пользователи» можно завершить выделенный сеанс, если указаны параметры администратора кластера.
Включить блокировку работы пользователей
- В том же разделе откройте «Блокировка работы пользователей».
- Включите флажок запрета работы.
- Заполните сообщение — его увидят пользователи. Например: «Обновление 1С с 19:00 до 19:40, сохраните документы».
- Укажите время начала и окончания. Если начало через 10 минут, пользователи получат предупреждение и успеют сохраниться.
- Задайте код разрешения — любую строку, например
upd2410. Он пригодится для входа во время блокировки. - Запишите настройку.
Когда наступит время начала, программа завершит сеансы, а новые входы будут отклонены. Пользователь при попытке войти увидит ваше сообщение.
Чтобы самому войти в заблокированную базу, добавьте к параметрам запуска /UC и код разрешения: /UCupd2410. Параметр прописывается в поле «Дополнительные параметры запуска» в свойствах базы в окне запуска.
После работ вернитесь в ту же форму и снимите блокировку. Если время окончания было указано, запрет снимется сам — но лучше не полагаться на часы, работы часто затягиваются.
Консоль кластера серверов: ручное отключение сеансов
Для клиент-серверной базы самый надёжный инструмент — «Администрирование серверов 1С:Предприятия» (оснастка MMC). Она ставится вместе с платформой, если при установке выбран компонент администрирования. Консоль подключается к агенту сервера (порт 1540 по умолчанию).
Удалить конкретный сеанс
- Запустите консоль, разверните
Центральные серверы 1С:Предприятия → <сервер> → Кластеры → <кластер>. - Откройте
Информационные базы → <ваша база> → Сеансы. - В правой панели — все сеансы: пользователь, компьютер, приложение, время начала.
- Выделите нужные строки (можно несколько через Shift или Ctrl), правая кнопка мыши → «Удалить».
Пользователь получит сообщение о завершении сеанса администратором. Несохранённые изменения в открытых формах пропадут.
Удаление сеанса не спрашивает, сохранён ли документ. Предупредите людей до того, как жать «Удалить».
Запретить новые подключения
Удалённый сеанс без запрета входа вернётся через минуту: пользователь просто перезапустит программу. Поэтому:
- Правая кнопка на базе в дереве → «Свойства».
- Включите «Блокировка начала сеансов включена».
- Укажите время начала и окончания блокировки, сообщение и код разрешения.
- Включите «Блокировка регламентных заданий включена» — иначе фоновые задания продолжат подключаться.
- Нажмите «ОК». Консоль запросит логин и пароль администратора информационной базы.
Если в кластере назначен администратор, консоль спросит и его учётные данные — уже при открытии кластера.
Не завершайте рабочий процесс rphost ради одного зависшего сеанса. Это оборвёт сеансы всех баз, которые обслуживает процесс, а не только вашей. Прибегайте к этому только в нерабочее время.
Отключение пользователей при обновлении конфигурации
Помощник обновления в типовых конфигурациях закрывает пользователей сам. Путь: Администрирование → Обслуживание → Обновление версии программы. На одном из шагов помощник предлагает обновить сразу или в назначенное время, создать резервную копию — и при запуске устанавливает блокировку, завершает сеансы, обновляет и снимает блокировку.
Для этого помощнику нужны:
- 🔑 пароль администратора информационной базы;
- 🖥 для серверной базы — параметры администрирования кластера (если администратор кластера назначен);
- 🚫 отсутствие внешних соединений, которые программа не может закрыть сама: открытых Конфигураторов, COM-подключений сторонних программ.
Если обновляете вручную через Конфигуратор
Порядок такой:
- Установите блокировку одним из способов выше, обязательно с блокировкой регламентных заданий.
- Дождитесь, пока в списке активных пользователей останется только ваш Конфигуратор.
- Сделайте выгрузку
.dtили резервную копию средствами СУБД. - Выполните
Конфигурация → Обновить конфигурацию базы данных(F7). - Снимите блокировку и проверьте вход обычным пользователем.
Если структура не меняется, в серверной базе платформа может применить изменения динамически, без монополии. Но для типовых обновлений от фирмы-разработчика рассчитывайте на монопольный режим.
Файловая база: где прячутся «зависшие» сеансы
В файловом варианте нет кластера и консоли. Сеансы живут в файле 1Cv8.1CD, а занятость базы — это открытый этот файл у кого-то из процессов. Блокировка через «Блокировку работы пользователей» работает: открытые клиенты получат команду и закроются сами.
Сложности начинаются, когда клиент не отвечает: компьютер ушёл в сон, оборвалась сеть, программа зависла.
Сеанс висит после сбоя
Признак: в «Активных пользователях» числится человек, который давно ушёл домой. Что проверить по порядку:
- Компьютер пользователя. Если доступ есть — закройте
1cv8.exeили1cv8c.exeв диспетчере задач. - Терминальный сервер . В диспетчере задач на вкладке «Пользователи» найдите сеанс сотрудника и завершите его процесс 1С. Процессы других пользователей не трогайте.
- Сетевая папка. На компьютере, где лежит каталог базы, откройте
compmgmt.msc → Общие папки → Открытые файлы. Найдите1Cv8.1CD, посмотрите, какой пользователь его держит, правая кнопка → «Закрыть открытый файл». - Веб-публикация. Если база опубликована на IIS или Apache, файл может держать процесс веб-сервера. Перезапустите пул приложений IIS или службу Apache — это отключит всех, кто работает через браузер.
Закрытие файла или процесса обрывает работу пользователя без сохранения. Делайте это, когда убедились, что человек не работает, или после предупреждения.
Почему нельзя просто удалить файлы рядом с базой
Иногда советуют удалить из каталога базы всё, кроме 1Cv8.1CD. Временные файлы и каталог журнала действительно не хранят данных учёта, но при открытой базе удалить их не получится, а при закрытой — это не нужно: блокирует базу именно открытый 1Cv8.1CD. Сначала найдите, кто его держит.
Командная строка и скрипты для массового отключения
Когда обновления ставятся ночью по расписанию, ручные клики не годятся. Есть два штатных инструмента.
rac: консоль кластера из командной строки
Утилита rac лежит в каталоге bin платформы и работает через сервер администрирования ras (по умолчанию порт 1545). Сначала запустите ras — как службу или командой:
"C:\Program Files\1cv8\8.3.25.1374\bin\ras.exe" cluster --daemon
Номер версии в пути подставьте свой. Дальше последовательность:
rem 1. Узнать идентификатор кластера
rac cluster list
rem 2. Узнать идентификатор базы
rac infobase summary list --cluster=<uuid-кластера>
rem 3. Запретить вход и регламентные задания
rac infobase update --cluster=<uuid-кластера> --infobase=<uuid-базы> ^
--infobase-user=Администратор --infobase-pwd=<пароль> ^
--sessions-deny=on --scheduled-jobs-deny=on ^
--denied-message="Обновление 1С" --permission-code=upd2410
rem 4. Список сеансов базы
rac session list --cluster=<uuid-кластера> --infobase=<uuid-базы>
rem 5. Завершить сеанс
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если в кластере назначен администратор, добавляйте --cluster-user и --cluster-pwd к командам, работающим с кластером. Полный список параметров для вашей версии выводит rac help и rac help session.
Для снятия запрета повторите шаг 3 с --sessions-deny=off --scheduled-jobs-deny=off.
В скрипте шаг 5 выполняется в цикле по всем session из вывода шага 4. Удобнее писать на PowerShell: разобрать вывод rac session list, вытащить строки session : и для каждой вызвать terminate.
Параметры запуска 1С: работает и для файловой базы
Типовые конфигурации на БСП понимают служебные команды в параметре /C. Это позволяет закрыть пользователей
без консоли кластера — в том числе в файловой базе:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE ^
/F"D:\Bases\Buh" /N"Администратор" /P"пароль" ^
/C"ЗавершитьРаботуПользователей" /UC"upd2410"
Программа установит блокировку, дождётся закрытия сеансов и завершится. После работ — тот же запуск с /C"РазрешитьРаботуПользователей". Для серверной базы вместо /F указывается /S"сервер\база".
Не храните пароль администратора в открытом виде в .bat, лежащем в общей папке. Держите скрипт в каталоге, доступном только учётной записи планировщика.
Почему пользователи не отключаются: ошибки и что с ними делать
Ещё одна частая ситуация — помощник обновления не может завершить сеансы и обновление откладывается. Обычно виновато внешнее соединение: обмен с сайтом через COM, сторонняя программа отчётности, открытый Конфигуратор у программиста. Найдите его в списке активных пользователей по полю «Приложение» и закройте у источника — иначе после удаления оно переподключится.