Монопольный режим в 1С 8.3: как выгнать всех из базы и спокойно работать
Содержание
Чтобы установить монопольный доступ в 1С, в базе не должно остаться ни одного чужого сеанса. Сначала запретите новые подключения: в типовой конфигурации через Администрирование → Обслуживание → Блокировка работы пользователей, в серверной базе через консоль кластера. Затем откройте Конфигуратор и включите Администрирование → Монопольный режим. Если флаг ставится без ошибки, база ваша.
Порядок одинаков для 1С:Предприятия 8.3 в любой конфигурации: Бухгалтерия, ЗУП, УТ, ERP. Различается только то, как именно убрать пользователей, — для файловой и клиент-серверной базы это делается разными средствами.
Что даёт монопольный режим и когда без него не обойтись
Монопольный режим означает, что с информационной базой работает только один сеанс — ваш. Платформа гарантирует, что никто не подключится, пока режим не снят.
Обычная работа в Конфигураторе монопольного доступа не требует. Можно открыть конфигурацию, поправить модуль, сохранить её — пользователи продолжат работать. Монополия нужна для операций, которые меняют структуру данных или перезаписывают базу целиком:
- 🔧 Обновление конфигурации базы данных — когда изменения затрагивают таблицы (новые реквизиты, регистры, измерения).
- 📦 Загрузка информационной базы из файла
.dt— база перезаписывается полностью. - 🩺 Тестирование и исправление — проверка логической и ссылочной целостности, реиндексация, сжатие таблиц.
- 🧩 Применение некоторых расширений, если они меняют структуру данных.
Если изменения в конфигурации не трогают структуру таблиц (например, поправили только код модуля), платформа может применить их динамически, без монополии. Но для обновления типового релиза рассчитывайте на монопольный режим.
Перед загрузкой .dt и тестированием с исправлением сделайте резервную копию базы . Эти операции необратимы, а прерывание посередине может оставить базу в нерабочем состоянии.
Подготовка: кто сидит в базе и как их предупредить
Начните с инвентаризации. Монопольный режим не включится, пока в базе висит хотя бы один сеанс, причём не обязательно живой человек.
Что может держать базу:
- 👤 пользователи в толстом, тонком или веб-клиенте;
- ⚙️ фоновые и регламентные задания — обмены, загрузка курсов валют, полнотекстовое индексирование;
- 🔌 внешние соединения: COM-подключения из других программ, обработки на сервере;
- 🌐 веб-сервисы и HTTP-сервисы через опубликованную базу;
- 💤 «зависшие» сеансы, которые остались после обрыва связи.
Посмотреть список подключений можно в Конфигураторе: Администрирование → Активные пользователи. В пользовательском режиме типовых конфигураций есть аналогичный список в разделе Администрирование → Обслуживание.
Чек-лист перед тем, как выгонять людей:
Код разрешения — это произвольная строка, например upd2025 или любой набор символов. С ним вы сами войдёте в заблокированную базу, а остальные получат отказ.
Монопольный доступ в файловой базе 1С
В файловом варианте база — это папка с файлом 1Cv8.1CD. Сервера нет, поэтому управлять сеансами придётся средствами конфигурации и операционной системы.
Шаг 1. Заблокируйте вход пользователей
В типовых конфигурациях на базе БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание → Блокировка работы пользователей. Заполните форму:
- Текст сообщения, которое увидят пользователи.
- Время начала и окончания блокировки.
- Код для разблокировки — тот самый код разрешения.
- Нажмите кнопку установки блокировки.
После этого программа покажет работающим пользователям предупреждение и через несколько минут завершит их сеансы. Новые входы будут запрещены до окончания блокировки.
Шаг 2. Войдите в Конфигуратор с кодом разрешения
Заблокированная база не пустит даже администратора, если не передать код. В окне запуска выберите базу, нажмите Изменить и в поле дополнительных параметров запуска укажите:
/UCupd2025
Вместо upd2025 подставьте свой код. Параметр /UC работает и для режима Предприятия, и для Конфигуратора.
Шаг 3. Включите монопольный режим
В Конфигураторе выберите Администрирование → Монопольный режим. Пункт работает как флажок: если рядом появилась галочка, режим установлен. Теперь можно обновлять конфигурацию, загружать .dt или запускать тестирование.
Шаг 4. Снимите блокировку
Когда работы закончены, снимите флажок монопольного режима, закройте Конфигуратор и вернитесь в Блокировка работы пользователей, чтобы снять блокировку. Если забыть, база останется закрытой до времени окончания, указанного в форме.
В сетевой папке сеанс может «висеть» после того, как человек закрыл 1С или у него отвалилась сеть. На компьютере, где лежит база, откройте compmgmt.msc → Общие папки → Открытые файлы и найдите, кто держит 1Cv8.1CD. Закрытие файла оборвёт работу этого пользователя: несохранённые данные пропадут. Делайте это, только убедившись, что человек уже не работает.
Монопольный доступ в клиент-серверном варианте
В серверной базе все сеансы живут на сервере 1С:Предприятия, и управлять ими удобнее с его стороны. Есть два пути: консоль кластера и та же обработка блокировки в самой конфигурации.
Через консоль администрирования кластера
- Откройте консоль кластера серверов 1С и подключитесь к центральному серверу.
- Раскройте
Кластеры → <ваш кластер> → Информационные базы. - Откройте свойства нужной базы. Понадобится логин и пароль администратора базы.
- Включите флаг «Блокировка начала сеансов включена».
- Заполните время начала и окончания, сообщение и «Код разрешения».
- Если нужно, включите «Блокировка регламентных заданий включена», чтобы фоновые обмены не мешали.
- Сохраните свойства.
Блокировка запрещает новые подключения, но не обрывает уже открытые сеансы. Их нужно завершить вручную: в ветке Сеансы выделите сеансы этой базы и удалите их.
Удаление сеанса — это аварийный выход для пользователя. Если он в этот момент проводил документ, транзакция откатится. Удаляйте сеансы в согласованное время, после предупреждения.
Дальше всё как в файловой базе: запуск Конфигуратора с /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 недоступен.
Для разработчиков: во встроенном языке есть УстановитьМонопольныйРежим(Истина) и функция МонопольныйРежим(), которая проверяет, установлен ли режим. Их используют в обработках, которым нужна гарантия, что никто не меняет данные параллельно.