Администрирование · 9 мин
Как запустить 1С в монопольном режиме
Как запустить 1С в монопольном режиме: через конфигуратор, параметры запуска и код. Что делать, если монопольный режим не устанавливается, и как его снять.
Монопольный режим в 1С — это состояние информационной базы, при котором с ней работает только один сеанс, а все остальные пользователи и фоновые подключения блокируются. Он необходим для операций, которые меняют структуру базы или требуют гарантированного отсутствия параллельных транзакций: обновления конфигурации, загрузки и выгрузки данных, тестирования и исправления, удаления помеченных объектов.
Без монопольного режима конфигуратор просто не даст выполнить обновление конфигурации базы данных — появится сообщение о наличии активных соединений. Поэтому умение быстро установить и снять монопольный доступ — базовый навык администратора и разработчика 1С.
Способ установки зависит от варианта работы базы: файловый или клиент-серверный. В файловом варианте достаточно, чтобы все пользователи вышли, и запустить конфигуратор. В клиент-серверном варианте монопольный режим устанавливается через консоль кластера серверов 1С, и там есть свои тонкости с блокировкой сеансов и регламентных заданий.
Что такое монопольный режим и когда он нужен
Монопольный режим гарантирует, что с информационной базой работает ровно один сеанс. Пока он установлен, новые подключения отклоняются, а уже активные сеансы нужно завершить до его установки. Это защищает структуру данных от конфликтов при массовых изменениях.
Типовые ситуации, когда монопольный режим обязателен или настоятельно рекомендуется:
- обновление конфигурации базы данных (реструктуризация таблиц);
- загрузка и выгрузка информационной базы через файл .dt;
- тестирование и исправление информационной базы;
- удаление помеченных объектов в больших объёмах;
- пакетная обработка данных, которую нельзя прерывать.
Проверка активных сеансов перед запуском
Прежде чем устанавливать монопольный режим, убедитесь, что никто не работает с базой. В файловом варианте спросите пользователей напрямую или посмотрите, нет ли открытых сеансов по файловым блокировкам. В клиент-серверном варианте откройте консоль кластера серверов, выберите базу и перейдите на вкладку «Сеансы» — там виден список всех подключённых пользователей.
Обратите внимание на фоновые и регламентные задания: они тоже создают сеансы. Если в базе работает обмен данными, синхронизация или отложенное проведение, монопольный режим не установится, пока эти задания активны.
Список сеансов в консоли кластера
Вкладка «Сеансы» — фоновые задания видны отдельно
Блокировка регламентных заданий в свойствах базы
Монопольный режим в файловой базе
В файловом варианте всё просто: монопольный доступ устанавливается автоматически, если базу открыл только один сеанс. Порядок действий такой:
- Попросите всех пользователей выйти из 1С.
- Убедитесь, что в сетевой папке с базой нет зависших процессов 1cv8.exe.
- Запустите конфигуратор и откройте нужную базу.
- Выполните требуемую операцию — обновление, загрузку, тестирование.
Если при запуске операции появляется сообщение «Ошибка разделенного доступа к информационной базе» или «Конфликт блокировок», значит, кто-то ещё подключён. Частая причина — зависший сеанс на одном из компьютеров или открытая база на сервере терминалов.
- 1Завершите работу всех пользователей
- 2Проверьте отсутствие зависших процессов 1cv8.exe
- 3Откройте базу в конфигураторе
- 4Выполните операцию (обновление, загрузка, тестирование)
- 5Закройте конфигуратор и сообщите пользователям о завершении
Монопольный режим в клиент-серверной базе
В клиент-серверном варианте недостаточно просто выгнать пользователей: пока база зарегистрирована в кластере, к ней могут подключаться новые сеансы и запускаться регламентные задания. Поэтому монопольный режим устанавливается через блокировку сеансов в консоли кластера.
Установка блокировки сеансов
Откройте консоль администрирования серверов 1С, разверните кластер, найдите нужную информационную базу и откройте её свойства. Установите флажок «Блокировка начала сеансов включена», при необходимости укажите время начала и окончания блокировки, сообщение для пользователей и код разрешения. Отдельно включите «Блокировка регламентных заданий включена».
Код разрешения — полезная опция: зная его, вы сможете зайти в базу через 1С:Предприятие даже при включённой блокировке, добавив параметр /UC код в командную строку запуска. Это удобно для проверки базы после обновления до того, как вы откроете доступ пользователям.
Завершение активных сеансов
После включения блокировки перейдите на вкладку «Сеансы» и завершите оставшиеся сеансы кнопкой «Удалить». Делайте это после предупреждения пользователей: принудительное завершение обрывает их несохранённые данные. Затем запускайте конфигуратор и работайте — блокировка не мешает сеансу конфигуратора, если в свойствах базы не снято соответствующее разрешение.
Монопольный режим программно и через параметры запуска
Иногда монопольный режим нужно установить из кода — например, в пакетной обработке или при автоматизированном обновлении. Для этого используются методы глобального контекста:
// Проверка текущего состояния
Если Не МонопольныйРежим() Тогда
// Попытка установить монопольный режим
УстановитьМонопольныйРежим(Истина);
КонецЕсли;
// ... выполнение операций ...
// Снятие монопольного режима
УстановитьМонопольныйРежим(Ложь);Метод УстановитьМонопольныйРежим(Истина) вызовет исключение, если в базе есть другие активные сеансы. Поэтому в коде его оборачивают в попытку и при неудаче сообщают администратору о занятых соединениях. Для пакетного запуска конфигуратора с выполнением операций используются параметры командной строки, например /Execute для обработки или штатные ключи обновления конфигурации.
Как снять монопольный режим и вернуть доступ пользователям
После завершения работ в файловой базе достаточно закрыть конфигуратор — монопольный доступ прекратится вместе с сеансом. Пользователи смогут войти обычным образом.
В клиент-серверной базе вернитесь в консоль кластера, откройте свойства информационной базы и снимите флажки «Блокировка начала сеансов включена» и «Блокировка регламентных заданий включена». Проверьте, что регламентные задания возобновили работу, — их забывают разблокировать чаще всего, и обмены молча останавливаются.
Как проверить результат
Пользователь входит без сообщений о блокировке
Сообщение «Блокировка установлена администратором»
Задания выполняются по расписанию
Задания не запускаются после снятия блокировки сеансов
МонопольныйРежим() возвращает Ложь после завершения
Режим остался включённым, другие сеансы не подключаются
Типичные ошибки и что делать, если режим не устанавливается
Самая частая проблема — сообщение о невозможности установить монопольный режим из-за активных соединений. Причины обычно такие: зависший сеанс пользователя, работающее фоновое задание, открытый второй конфигуратор или подключение через веб-сервер/ком-соединение от внешней системы.
Если сеанс «висит» и не завершается через консоль, в клиент-серверном варианте можно принудительно удалить его в консоли кластера. В файловом варианте помогает завершение процесса 1cv8.exe на компьютере пользователя или перезапуск общего доступа к папке с базой.
FAQ
Что делать, если пишет «Ошибка исключительной блокировки информационной базы»?
Это значит, что с базой есть другие активные соединения. Проверьте список сеансов в консоли кластера (для серверной базы) или наличие открытых сеансов и зависших процессов 1cv8.exe (для файловой). Завершите лишние сеансы и повторите операцию.
Можно ли работать в монопольном режиме без выгона пользователей?
Нет, монопольный режим по определению требует единственного сеанса. Альтернатива для некоторых задач — динамическое обновление конфигурации, но оно подходит только для небольших изменений без реструктуризации данных и требует последующего перезапуска сеансов.
Как зайти в базу, если включена блокировка сеансов?
Если при установке блокировки был задан код разрешения, запустите 1С с параметром /UC и этим кодом. Конфигуратор подключается при блокировке без кода, если в свойствах базы не снято соответствующее разрешение.
Почему после снятия блокировки не работают обмены данными?
Скорее всего, включена блокировка регламентных заданий — она снимается отдельным флажком в свойствах информационной базы в консоли кластера. Снимите её, и задания возобновят выполнение по расписанию.
Нужен ли монопольный режим для удаления помеченных объектов?
Формально удаление помеченных объектов может работать и при активных пользователях, но на практике помеченные объекты часто используются в открытых документах и не удаляются. Монопольный режим заметно повышает полноту и скорость удаления.
Как узнать, установлен ли монопольный режим, из кода?
Используйте функцию МонопольныйРежим() — она возвращает Истина, если текущий сеанс работает в монопольном режиме, и Ложь в противном случае.
Что важно запомнить
В файловой базе монопольный режим достигается выходом всех пользователей и запуском конфигуратора. В клиент-серверной — через блокировку сеансов и регламентных заданий в консоли кластера. Перед операциями делайте резервную копию, после — не забудьте снять обе блокировки.