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

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

Как запустить 1С в монопольном режиме

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

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

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

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

Что такое монопольный режим и когда он нужен

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

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

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

Проверка активных сеансов перед запуском

Прежде чем устанавливать монопольный режим, убедитесь, что никто не работает с базой. В файловом варианте спросите пользователей напрямую или посмотрите, нет ли открытых сеансов по файловым блокировкам. В клиент-серверном варианте откройте консоль кластера серверов, выберите базу и перейдите на вкладку «Сеансы» — там виден список всех подключённых пользователей.

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

Пользовательские сеансыОткрытые 1С:Предприятие и конфигураторы

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

Фоновые заданияОбмены, синхронизации, обработки

Вкладка «Сеансы» — фоновые задания видны отдельно

Регламентные заданияВыполняются по расписанию

Блокировка регламентных заданий в свойствах базы

Монопольный режим в файловой базе

В файловом варианте всё просто: монопольный доступ устанавливается автоматически, если базу открыл только один сеанс. Порядок действий такой:

  1. Попросите всех пользователей выйти из 1С.
  2. Убедитесь, что в сетевой папке с базой нет зависших процессов 1cv8.exe.
  3. Запустите конфигуратор и откройте нужную базу.
  4. Выполните требуемую операцию — обновление, загрузку, тестирование.

Если при запуске операции появляется сообщение «Ошибка разделенного доступа к информационной базе» или «Конфликт блокировок», значит, кто-то ещё подключён. Частая причина — зависший сеанс на одном из компьютеров или открытая база на сервере терминалов.

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

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

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

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

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

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

Завершение активных сеансов

После включения блокировки перейдите на вкладку «Сеансы» и завершите оставшиеся сеансы кнопкой «Удалить». Делайте это после предупреждения пользователей: принудительное завершение обрывает их несохранённые данные. Затем запускайте конфигуратор и работайте — блокировка не мешает сеансу конфигуратора, если в свойствах базы не снято соответствующее разрешение.

Монопольный режим программно и через параметры запуска

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

bsl
// Проверка текущего состояния
Если Не МонопольныйРежим() Тогда
    // Попытка установить монопольный режим
    УстановитьМонопольныйРежим(Истина);
КонецЕсли;

// ... выполнение операций ...

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

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

Как снять монопольный режим и вернуть доступ пользователям

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

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

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

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

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

Пользователь входит без сообщений о блокировке

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

Сообщение «Блокировка установлена администратором»

Регламентные задания
Норма

Задания выполняются по расписанию

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

Задания не запускаются после снятия блокировки сеансов

Монопольный режим в коде
Норма

МонопольныйРежим() возвращает Ложь после завершения

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

Режим остался включённым, другие сеансы не подключаются

Типичные ошибки и что делать, если режим не устанавливается

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

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

Если сеанс «висит» и не завершается через консоль, в клиент-серверном варианте можно принудительно удалить его в консоли кластера. В файловом варианте помогает завершение процесса 1cv8.exe на компьютере пользователя или перезапуск общего доступа к папке с базой.

FAQ

Что делать, если пишет «Ошибка исключительной блокировки информационной базы»?

Это значит, что с базой есть другие активные соединения. Проверьте список сеансов в консоли кластера (для серверной базы) или наличие открытых сеансов и зависших процессов 1cv8.exe (для файловой). Завершите лишние сеансы и повторите операцию.

Можно ли работать в монопольном режиме без выгона пользователей?

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

Как зайти в базу, если включена блокировка сеансов?

Если при установке блокировки был задан код разрешения, запустите 1С с параметром /UC и этим кодом. Конфигуратор подключается при блокировке без кода, если в свойствах базы не снято соответствующее разрешение.

Почему после снятия блокировки не работают обмены данными?

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

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

Формально удаление помеченных объектов может работать и при активных пользователях, но на практике помеченные объекты часто используются в открытых документах и не удаляются. Монопольный режим заметно повышает полноту и скорость удаления.

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

Используйте функцию МонопольныйРежим() — она возвращает Истина, если текущий сеанс работает в монопольном режиме, и Ложь в противном случае.

Итог

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

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