Монопольный режим в 1С 8.3: как выгнать всех из базы и спокойно работать

· 9 мин

Содержание

Чтобы установить монопольный доступ в 1С, в базе не должно остаться ни одного чужого сеанса. Сначала запретите новые подключения: в типовой конфигурации через Администрирование → Обслуживание → Блокировка работы пользователей, в серверной базе через консоль кластера. Затем откройте Конфигуратор и включите Администрирование → Монопольный режим. Если флаг ставится без ошибки, база ваша.

Порядок одинаков для 1С:Предприятия 8.3 в любой конфигурации: Бухгалтерия, ЗУП, УТ, ERP. Различается только то, как именно убрать пользователей, — для файловой и клиент-серверной базы это делается разными средствами.

Что даёт монопольный режим и когда без него не обойтись

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

Обычная работа в Конфигураторе монопольного доступа не требует. Можно открыть конфигурацию, поправить модуль, сохранить её — пользователи продолжат работать. Монополия нужна для операций, которые меняют структуру данных или перезаписывают базу целиком:

  • 🔧 Обновление конфигурации базы данных — когда изменения затрагивают таблицы (новые реквизиты, регистры, измерения).
  • 📦 Загрузка информационной базы из файла .dt — база перезаписывается полностью.
  • 🩺 Тестирование и исправление — проверка логической и ссылочной целостности, реиндексация, сжатие таблиц.
  • 🧩 Применение некоторых расширений, если они меняют структуру данных.

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

Перед загрузкой .dt и тестированием с исправлением сделайте резервную копию базы . Эти операции необратимы, а прерывание посередине может оставить базу в нерабочем состоянии.

Подготовка: кто сидит в базе и как их предупредить

Начните с инвентаризации. Монопольный режим не включится, пока в базе висит хотя бы один сеанс, причём не обязательно живой человек.

Что может держать базу:

  • 👤 пользователи в толстом, тонком или веб-клиенте;
  • ⚙️ фоновые и регламентные задания — обмены, загрузка курсов валют, полнотекстовое индексирование;
  • 🔌 внешние соединения: COM-подключения из других программ, обработки на сервере;
  • 🌐 веб-сервисы и HTTP-сервисы через опубликованную базу;
  • 💤 «зависшие» сеансы, которые остались после обрыва связи.

Посмотреть список подключений можно в Конфигураторе: Администрирование → Активные пользователи. В пользовательском режиме типовых конфигураций есть аналогичный список в разделе Администрирование → Обслуживание.

Чек-лист перед тем, как выгонять людей:

Подготовка к монопольному режиму
Выполнено: 0 / 6

Код разрешения — это произвольная строка, например upd2025 или любой набор символов. С ним вы сами войдёте в заблокированную базу, а остальные получат отказ.

Монопольный доступ в файловой базе 1С

В файловом варианте база — это папка с файлом 1Cv8.1CD. Сервера нет, поэтому управлять сеансами придётся средствами конфигурации и операционной системы.

Шаг 1. Заблокируйте вход пользователей

В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание → Блокировка работы пользователей. Заполните форму:

  1. Текст сообщения, которое увидят пользователи.
  2. Время начала и окончания блокировки.
  3. Код для разблокировки — тот самый код разрешения.
  4. Нажмите кнопку установки блокировки.

После этого программа покажет работающим пользователям предупреждение и через несколько минут завершит их сеансы. Новые входы будут запрещены до окончания блокировки.

Шаг 2. Войдите в Конфигуратор с кодом разрешения

Заблокированная база не пустит даже администратора, если не передать код. В окне запуска выберите базу, нажмите Изменить и в поле дополнительных параметров запуска укажите:

/UCupd2025

Вместо upd2025 подставьте свой код. Параметр /UC работает и для режима Предприятия, и для Конфигуратора.

Шаг 3. Включите монопольный режим

В Конфигураторе выберите Администрирование → Монопольный режим. Пункт работает как флажок: если рядом появилась галочка, режим установлен. Теперь можно обновлять конфигурацию, загружать .dt или запускать тестирование.

Шаг 4. Снимите блокировку

Когда работы закончены, снимите флажок монопольного режима, закройте Конфигуратор и вернитесь в Блокировка работы пользователей, чтобы снять блокировку. Если забыть, база останется закрытой до времени окончания, указанного в форме.

В сетевой папке сеанс может «висеть» после того, как человек закрыл 1С или у него отвалилась сеть. На компьютере, где лежит база, откройте compmgmt.msc → Общие папки → Открытые файлы и найдите, кто держит 1Cv8.1CD. Закрытие файла оборвёт работу этого пользователя: несохранённые данные пропадут. Делайте это, только убедившись, что человек уже не работает.

Монопольный доступ в клиент-серверном варианте

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

Через консоль администрирования кластера

  1. Откройте консоль кластера серверов 1С и подключитесь к центральному серверу.
  2. Раскройте Кластеры → <ваш кластер> → Информационные базы.
  3. Откройте свойства нужной базы. Понадобится логин и пароль администратора базы.
  4. Включите флаг «Блокировка начала сеансов включена».
  5. Заполните время начала и окончания, сообщение и «Код разрешения».
  6. Если нужно, включите «Блокировка регламентных заданий включена», чтобы фоновые обмены не мешали.
  7. Сохраните свойства.

Блокировка запрещает новые подключения, но не обрывает уже открытые сеансы. Их нужно завершить вручную: в ветке Сеансы выделите сеансы этой базы и удалите их.

Удаление сеанса — это аварийный выход для пользователя. Если он в этот момент проводил документ, транзакция откатится. Удаляйте сеансы в согласованное время, после предупреждения.

Дальше всё как в файловой базе: запуск Конфигуратора с /UC<код> и флажок Администрирование → Монопольный режим.

Чем серверная база отличается на практике

ЧтоФайловая базаКлиент-серверная база
Где запретить входТолько средствами конфигурацииКонсоль кластера или конфигурация
Как оборвать сеансЗакрыть файл в общих папках WindowsУдалить сеанс в консоли или через rac
Регламентные заданияВыполняются в сеансе пользователяБлокируются отдельным флагом
Что мешает чаще всегоЗависший процесс у пользователяФоновые задания и веб-сервисы

Если в консоли висят сеансы с приложением «Фоновое задание», они будут появляться снова, пока не включена блокировка регламентных заданий. Поэтому сначала флаг, потом удаление сеансов.

Почему монопольный режим не устанавливается

Типичная картина: нажимаете пункт меню, а платформа отвечает сообщением вида Невозможно установить монопольный режим. Причина почти всегда одна — в базе есть кто-то ещё. Вопрос только в том, кто именно.

Диагностика: выберите симптом

Частые ошибки и как их избежать

  • ❌ Удалять сеансы без блокировки. Пользователи просто зайдут снова. Порядок всегда такой: запрет входа → завершение сеансов → монополия.
  • ❌ Забыть код разрешения. Если код утерян, а база серверная, снимите флаг блокировки в консоли кластера. В файловой базе дождитесь окончания времени блокировки или попросите администратора, который её ставил.
  • ❌ Удалять служебные файлы базы вручную. Файл 1Cv8.1CL в папке файловой базы можно удалить, только когда вы уверены, что с базой никто не работает, и после копии. Иначе рискуете повредить данные.
  • ❌ Оставить блокировку после работ. Утром бухгалтерия не войдёт, а вы будете в отпуске. Снимайте блокировку сразу и проверяйте вход под обычным пользователем.

Автоматизация: скрипты для блокировки и завершения сеансов

Если обновления идут по ночам или баз много, ручная работа в консоли надоедает быстро. Для серверных баз есть утилита rac — клиент сервера администрирования. Она лежит в папке bin установленной платформы и общается со службой ras (по умолчанию порт 1545). Служба ras должна быть запущена на сервере.

Базовые команды, без которых скрипт не написать:

rem Список кластеров — нужен UUID кластера
rac cluster list

rem Список баз кластера — нужен UUID базы
rac infobase summary list --cluster=<cluster_uuid>

rem Сеансы конкретной базы
rac session list --cluster=<cluster_uuid> --infobase=<infobase_uuid>

rem Завершить сеанс
rac session terminate --cluster=<cluster_uuid> --session=<session_uuid>

Блокировку начала сеансов ставят командой изменения свойств базы:

rac infobase update --cluster=<cluster_uuid> --infobase=<infobase_uuid> ^
  --infobase-user="Администратор" --infobase-pwd="пароль" ^
  --sessions-deny=on --scheduled-jobs-deny=on ^
  --denied-message="Обновление базы, вход закрыт до 06:00" ^
  --permission-code="upd2025"

Снимают её той же командой с --sessions-deny=off --scheduled-jobs-deny=off. Если на кластере задан администратор, добавьте к командам --cluster-user и --cluster-pwd. Полный список параметров — в справке rac help infobase и rac help session.

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

Пакетное обновление после блокировки

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

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER /S"srv1c\buh" ^
  /N"Администратор" /P"пароль" /UCupd2025 ^
  /UpdateDBCfg /Out"C:\logs\update.log" /DisableStartupDialogs

Для файловой базы вместо /S"сервер\база" укажите /F"D:\Bases\Buh". Платформа сама попытается получить монопольный доступ. Если в базе кто-то остался, в журнале update.log будет ошибка, а изменения структуры не применятся.

Блокировка из самой конфигурации

В конфигурациях на БСП есть параметры запуска, которые делают то же, что форма блокировки:

  • /CЗавершитьРаботуПользователей — установить блокировку и завершить сеансы;
  • /CРазрешитьРаботуПользователей — снять блокировку.

Запуск в режиме Предприятия с таким параметром и кодом /UC удобно встроить в ночной bat-файл, если база файловая и rac недоступен.

Для разработчиков: во встроенном языке есть УстановитьМонопольныйРежим(Истина) и функция МонопольныйРежим(), которая проверяет, установлен ли режим. Их используют в обработках, которым нужна гарантия, что никто не меняет данные параллельно.

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

Сколько времени держать базу в монопольном режиме?
Ровно столько, сколько идёт операция. Обновление релиза типовой конфигурации обычно занимает от нескольких минут до часа, в зависимости от объёма базы. Сразу после завершения снимите режим и блокировку.
Можно ли работать в Предприятии, пока я в монопольном режиме в Конфигураторе?
Нет, никто, включая вас, не откроет второй сеанс. Монопольный режим допускает ровно одно подключение. Чтобы проверить результат в пользовательском режиме, сначала снимите флажок.
Нужен ли монопольный режим для выгрузки базы в .dt?
Выгрузка не меняет данные, но для согласованной копии платформа требует, чтобы в базе не было других пользователей. Поэтому на практике перед выгрузкой тоже освобождают базу.
Блокировка действует на веб-клиент и мобильное приложение?
Да. Запрет начала сеансов распространяется на любые подключения к базе, независимо от типа клиента. Уже открытые сеансы нужно завершить отдельно.
Что делать, если внешняя утилита chdbfl.exe пишет, что база занята?
Утилита проверки файловой базы работает только с файлом, который никто не открыл. Закройте все экземпляры 1С на всех компьютерах и проверьте открытые файлы в общих папках Windows.