К статье
Практический материал

Администрирование · 8 мин

Монопольный режим в 1С: что это такое и как с ним работать

Что такое монопольный режим в 1С, зачем он нужен, как включить и отключить его в файловой и клиент-серверной базе, а также что делать, если режим не устанавливается.

Монопольный режим в 1С — это состояние информационной базы, при котором с ней работает только один сеанс, а все остальные пользователи отключены или не могут подключиться. Такой режим требуется для операций, которые меняют структуру базы или массово обрабатывают данные: обновление конфигурации, загрузка и выгрузка базы, тестирование и исправление, изменение плана обмена. Без монопольного доступа платформа просто не даст выполнить эти действия и выдаст ошибку «Операция не может быть выполнена в многопользовательском режиме».

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

Для каких операций требуется монопольный режим

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

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

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

Как включить монопольный режим в файловой базе

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

Порядок действий в этом случае такой: откройте в конфигураторе меню «Администрирование» — «Активные пользователи», посмотрите, кто находится в базе, и попросите их выйти. После того как список опустеет (кроме вашего сеанса), повторите операцию — монопольный режим установится сам.

Порядок включения монопольного режима
  1. 1
    Предупредите пользователей о плановых работах и попросите выйти из программы
  2. 2
    Откройте конфигуратор и проверьте список активных пользователей (Администрирование — Активные пользователи)
  3. 3
    Убедитесь, что в списке остался только ваш сеанс
  4. 4
    Выполните требуемую операцию: обновление, загрузку или тестирование
  5. 5
    После завершения сообщите пользователям, что можно входить в базу

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

В клиент-серверной базе управлять сеансами удобнее через консоль кластера серверов 1С. Там можно посмотреть список сеансов по конкретной базе, отправить пользователям сообщение о необходимости выйти и принудительно завершить зависшие сеансы — те, где клиентское приложение закрылось аварийно, но сеанс на сервере остался висеть.

Дополнительно администратор может установить блокировку начала сеансов: в свойствах информационной базы в консоли кластера задается дата и время начала блокировки, код разрешения и сообщение для пользователей. Пока блокировка активна, новые пользователи не смогут войти, а вы сможете спокойно дождаться завершения текущих сеансов и выполнить обслуживание. Зная код разрешения, при необходимости можно войти в базу, указав его в параметре запуска /UC.

Программная установка монопольного режима

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

УстановитьМонопольныйРежим(Истина);

Если МонопольныйРежим() Тогда

// выполняем операции, требующие монопольного доступа

КонецЕсли;

УстановитьМонопольныйРежим(Ложь);

Метод УстановитьМонопольныйРежим(Истина) вернет управление только если других сеансов нет; при наличии активных пользователей будет вызвано исключение. Поэтому в коде такие вызовы обычно оборачивают в попытку/исключение и корректно сообщают администратору о причине отказа. После завершения работы режим нужно обязательно снять, иначе остальные пользователи не смогут войти в базу.

bsl
Попытка
    УстановитьМонопольныйРежим(Истина);
Исключение
    Сообщить("Не удалось установить монопольный режим: есть активные сеансы");
КонецПопытки;

Что делать, если монопольный режим не устанавливается

Самая частая причина — зависшие сеансы. Пользователь закрыл программу аварийно (отключилось питание, пропала сеть), а сеанс на сервере или в файловой базе числится активным. В клиент-серверном варианте такие сеансы завершаются через консоль кластера; в файловом — обычно достаточно подождать таймаут или перезапустить подключение.

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

Типичные ошибки
01
Начинать обновление без предупреждения пользователей — работа людей прерывается, несохраненные данные теряются
02
Забыть снять монопольный режим после программной обработки — пользователи не могут войти в базу
03
Принудительно убивать процессы вместо штатного завершения сеансов — риск повреждения данных
04
Не сделать резервную копию перед операциями в монопольном режиме — при сбое восстановить базу не из чего

Проверка результата и меры безопасности

Перед любой операцией в монопольном режиме сделайте резервную копию: выгрузку в файл .dt через конфигуратор или штатное копирование средствами СУБД для клиент-серверного варианта. Это единственная надежная страховка на случай сбоя в процессе реструктуризации или загрузки данных.

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

Контрольные точки

Как проверить результат

Вход пользователей в базу
Норма

Пользователи подключаются без сообщений о блокировке

Тревожный признак

Ошибка «Нарушение прав доступа» или сообщение о блокировке сеансов

Список активных сеансов
Норма

Сеансы создаются и завершаются штатно

Тревожный признак

Висят сеансы от неработающих компьютеров

Журнал регистрации
Норма

Нет ошибок реструктуризации или обновления

Тревожный признак

Ошибки фоновых заданий и обновления конфигурации

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

Чем монопольный режим отличается от блокировки сеансов?

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

Можно ли работать в базе, пока идет обновление конфигурации?

Нет. Обновление конфигурации базы данных требует монопольного доступа, и платформа не позволит запустить его при наличии других сеансов. Попытки обойти это ограничение чреваты повреждением структуры данных.

Пользователь вышел, но сеанс все равно висит. Что делать?

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

Что произойдет, если забыть снять монопольный режим в коде?

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

Нужна ли резервная копия перед работой в монопольном режиме?

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

Итог

Что важно запомнить

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