Администрирование · 11 мин
Монопольный режим в 1С: что это значит и как с ним работать
Что значит монопольный режим в 1С, зачем он нужен при обновлении и обработке данных, как включить его в клиент-серверном и файловом варианте и снять при зависании.
Монопольный режим в 1С — это состояние информационной базы, при котором с ней работает только один сеанс, а все остальные пользователи и фоновые процессы блокируются. Пока режим активен, никто не может войти в базу, провести документ или запустить регламентное задание: платформа выдаёт сообщение об ошибке установки монопольного режима или ожидает его завершения.
Такой режим нужен для операций, которые меняют структуру базы или массово обрабатывают данные: обновление конфигурации, реструктуризация таблиц, тестирование и исправление, загрузка больших объёмов информации. Если бы параллельно работали пользователи, изменения структуры метаданных привели бы к конфликтам, повреждению данных или аварийному завершению сеансов.
Администраторы сталкиваются с монопольным режимом в двух ситуациях: когда его нужно включить осознанно для обслуживания базы и когда он «завис» и мешает всем работать. Ниже разобраны оба сценария: как установить режим в файловом и клиент-серверном варианте, как снять его штатно и принудительно, и какие ошибки встречаются чаще всего.
Что именно блокирует монопольный режим
При установке монопольного доступа платформа проверяет, нет ли других активных сеансов с информационной базой. Если они есть, установка режима завершается ошибкой «Ошибка разделенного доступа к базе» или «Конфликт блокировок при выполнении транзакции». Это нормальное поведение: платформа защищает данные от одновременного изменения.
Блокируются не только интерактивные сеансы пользователей. Под действие режима попадают фоновые и регламентные задания, сеансы веб-сервисов, подключения через COM-соединение и внешние обработки, запущенные другими пользователями. Поэтому перед установкой монопольного режима нужно завершить все виды подключений, а не только попросить коллег выйти из программы.
В файловом варианте блокировка реализуется через файл 1Cv8.1CL в каталоге базы и механизмы блокировок платформы. В клиент-серверном варианте монопольный доступ контролирует сервер 1С:Предприятия и СУБД. Из-за этой разницы способы установки и снятия режима в двух вариантах работы отличаются.
Когда монопольный режим действительно нужен
Обновление конфигурации базы данных — самая частая причина. При реструктуризации платформа изменяет физическую структуру таблиц, и любой активный сеанс в этот момент создаёт риск повреждения данных. Именно поэтому конфигуратор требует монопольный доступ перед принятием изменений.
Также режим необходим для тестирования и исправления информационной базы, загрузки и выгрузки данных через типовые обработки, массового перепроведения документов за длительный период и выполнения обработок, которые меняют большие объёмы данных без транзакционной защиты от параллельной работы.
Есть и обратная сторона: ряд операций монопольного режима не требует. Обычное проведение документов, формирование отчётов, запуск фоновых заданий и даже многие обработки корректно работают в разделённом режиме. Включать монопольный доступ «на всякий случай» не стоит — это останавливает работу всей организации.
Как выбрать действие
Как включить монопольный режим в файловом варианте
В файловой базе проще всего установить монопольный доступ через конфигуратор. Достаточно открыть базу в конфигураторе — если никто больше не подключён, сеанс уже работает монопольно. Если пользователи в базе есть, конфигуратор предложит завершить их сеансы при попытке обновления конфигурации базы данных.
Второй способ — запуск толстого или тонкого клиента с параметром командной строки. Для этого в строке запуска указывают ключ монопольного режима:
"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" ENTERPRISE /F"C:\Bases\MyBase" /C"Монопольно"Программно режим устанавливается методом УстановитьМонопольныйРежим(Истина), а проверка текущего состояния выполняется функцией МонопольныйРежим(), которая возвращает Истина или Ложь. Это удобно в обработках обслуживания: сначала проверка, потом установка, в конце — обязательное снятие.
Важное ограничение файлового варианта: если база открыта у пользователя даже «в свёрнутом виде», монопольный режим не установится. Сеанс нужно завершить полностью — закрыть программу, а не только окно документа.
Как включить монопольный режим в клиент-серверном варианте
В клиент-серверной архитектуре основной инструмент — консоль кластера серверов 1С. Откройте ветку нужной информационной базы, перейдите на закладку «Сеансы», чтобы увидеть все активные подключения, включая фоновые задания и сеансы веб-сервисов.
Чтобы пользователи не успевали войти обратно, пока вы завершаете сеансы, сначала установите блокировку сеансов: в свойствах информационной базы в консоли задайте дату начала блокировки и, при необходимости, код разрешения для служебного входа. После этого завершите оставшиеся сеансы и выполняйте обслуживание.
Также в клиент-серверном варианте работают программные методы УстановитьМонопольныйРежим() и запуск с параметрами, но консоль кластера надёжнее: она показывает реальную картину подключений и позволяет контролировать блокировку централизованно.
- 1Предупредите пользователей и запланируйте обслуживание на нерабочее время
- 2Сделайте резервную копию базы: выгрузку в dt или средствами СУБД
- 3В клиент-серверном варианте установите блокировку сеансов в консоли кластера
- 4Завершите все сеансы, включая фоновые задания и подключения сервисов
- 5Откройте базу в конфигураторе или установите режим программно
- 6Выполните обслуживание и снимите режим — снимите блокировку сеансов
- 7Проверьте, что пользователи могут войти и работать штатно
Как снять монопольный режим и что делать при «зависании»
Штатно режим снимается автоматически при завершении сеанса, который его установил, либо вызовом УстановитьМонопольныйРежим(Ложь). Если обслуживание завершено, а пользователи войти не могут, значит, сеанс с монопольным доступом ещё жив — найдите его в консоли кластера и завершите.
Типичная ситуация «зависшего» режима: администратор запустил обновление, сеанс конфигуратора упал или был разорван по сети, а блокировка осталась. В клиент-серверном варианте достаточно удалить «мёртвый» сеанс в консоли. В файловом варианте помогает перезапуск открытых сеансов; в крайнем случае проверяют наличие зависших процессов 1cv8.exe на компьютерах пользователей.
Отдельно проверьте блокировку сеансов в свойствах базы: иногда монопольный режим давно снят, но вход запрещает забытая блокировка с датой окончания в будущем. Сообщение пользователя при этом похоже, но причина другая.
Частые ошибки и ограничения
Самая распространённая ошибка — попытка установить монопольный режим, не завершив фоновые задания. Пользователи вышли, а регламентное задание обмена или расчёта продолжает держать сеанс, и платформа честно отказывает в монопольном доступе.
Вторая ошибка — забыть снять режим после обслуживания. Утром сотрудники не могут войти в базу, бухгалтерия стоит, а причина — конфигуратор, оставленный открытым на сервере с вечера. Заведите правило: обслуживание считается завершённым только после проверки входа под обычным пользователем.
Третья ошибка — использовать монопольный режим там, где достаточно блокировки сеансов. Если цель — просто не пустить пользователей на время загрузки данных, блокировка сеансов с кодом разрешения решает задачу без полного монопольного доступа.
Как проверить результат и границы самостоятельной работы
Проверить текущее состояние можно программно функцией МонопольныйРежим() или косвенно — по списку сеансов в консоли кластера: если сеанс один и это ваш, режим фактически монопольный. После снятия режима контрольная проверка — вход в базу под учётной записью рядового пользователя.
Самостоятельно безопасно выполнять установку и снятие монопольного режима, блокировку сеансов и завершение «мёртвых» подключений. Операции с реструктуризацией больших баз, тестированием и исправлением с удалением объектов и восстановлением после сбоя обновления лучше доверять специалисту с опытом администрирования — цена ошибки здесь измеряется потерянными данными.
Как проверить результат
Пользователь входит и работает штатно
Сообщение о монопольном режиме или блокировке сеансов
Только рабочие сеансы пользователей
Висит сеанс конфигуратора или неизвестный фоновый сеанс
Блокировка сеансов отключена
Установлена дата блокировки в будущем
Что важно запомнить
Монопольный режим — это работа с базой в один сеанс с блокировкой остальных подключений. Он нужен для обновления конфигурации и обслуживания, включается через конфигуратор, консоль кластера или программно, и всегда должен сниматься после завершения работ. Перед установкой делайте резервную копию и завершайте все сеансы, включая фоновые.
Частые вопросы
Почему возникает ошибка «Ошибка разделенного доступа к базе»?
Платформа сообщает, что монопольный режим установить нельзя, потому что с базой работают другие сеансы. Завершите все подключения, включая фоновые задания и сеансы сервисов, и повторите попытку. В клиент-серверном варианте список сеансов виден в консоли кластера.
Можно ли работать в базе, пока включён монопольный режим?
Нет, в этом и смысл режима: работает только один сеанс, установивший его. Остальные пользователи при попытке входа получат отказ до снятия режима.
Чем монопольный режим отличается от блокировки сеансов?
Блокировка сеансов запрещает новые подключения, но уже активные сеансы продолжают работать, пока их не завершат. Монопольный режим гарантирует, что в базе остаётся ровно один сеанс. Для обновления конфигурации нужен именно монопольный доступ; для паузы в работе пользователей часто достаточно блокировки.
Что делать, если монопольный режим «завис» после сбоя?
В клиент-серверном варианте найдите и удалите зависший сеанс в консоли кластера, затем проверьте блокировку сеансов в свойствах базы. В файловом варианте убедитесь, что на всех компьютерах закрыты процессы 1cv8.exe, обращающиеся к базе.
Нужна ли резервная копия перед включением монопольного режима?
Сам по себе режим данных не меняет, но он почти всегда предшествует операциям обслуживания, которые меняют. Поэтому правило простое: перед любым обслуживанием в монопольном режиме делайте выгрузку базы или копию средствами СУБД.
Как программно проверить и установить монопольный режим?
Функция МонопольныйРежим() возвращает Истина, если режим установлен. Метод УстановитьМонопольныйРежим(Истина) включает его, УстановитьМонопольныйРежим(Ложь) — снимает. В обработках обслуживания снятие стоит помещать в блок с гарантированным выполнением, чтобы режим не остался включённым после ошибки.