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

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

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

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

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

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

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

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

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

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

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

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

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

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

В окне «Монопольный доступ» видно, какие сеансы мешают установке: имя пользователя, компьютер, время начала работы. Это помогает понять, кого именно нужно попросить выйти, прежде чем прибегать к принудительному завершению.

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

Как завершить сеансы пользователей

Если пользователи не выходят сами, сеансы придётся завершить принудительно. Способ зависит от типа базы.

Файловая база

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

Клиент-серверная база

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

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

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

Для автоматизации обслуживания монопольный режим можно установить без интерактивных действий — через параметры командной строки или встроенный язык.

При пакетном запуске конфигуратора для обновления конфигурации базы данных используется параметр /UpdateCfg или /UpdateDBCfg совместно с ключом монопольного доступа. Типовая строка выглядит так:

cmd
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /F"D:\Bases\Trade" /N"Администратор" /P"пароль" /UpdateDBCfg /DisableStartupDialogs

Платформа сама попытается установить монопольный доступ при выполнении /UpdateDBCfg. Если в базе есть активные сеансы, команда завершится ошибкой — поэтому в скриптах обслуживания серверных баз сначала программно завершают сеансы через RAS (сервер администрирования) или COM-соединение с агентом кластера.

Из встроенного языка монопольный режим проверяется и устанавливается функциями МонопольныйРежим() и УстановитьМонопольныйРежим(Истина). Это используется в обработках обновления и сервисных процедурах:

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

Как проверить, что режим установлен

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

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

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

Окно «Администрирование → Монопольный доступ» в конфигураторе
Норма

Указано, что монопольный режим установлен, чужих сеансов нет

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

Режим не установлен, в списке висят активные сеансы

Попытка входа обычного пользователя
Норма

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

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

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

Программная проверка функцией МонопольныйРежим()
Норма

Возвращает Истина

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

Возвращает Ложь

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

Типичные ошибки и ограничения

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

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

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

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

Сравнение вариантов

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

Подходит для разового обслуживания файловой базы. Ограничение: не завершает чужие сеансы автоматически

Блокировка сеансов в консоли кластера

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

Пакетный запуск с /UpdateDBCfg

Для автоматизированного обновления по расписанию. Не работает, если в базе остались активные сеансы

Программная установка через УстановитьМонопольныйРежим()

Для сервисных обработок и обновляторов. Требует полных прав и обработки исключений

Маршрут решения

Как выбрать действие

Файловая база, нужно быстро обновить конфигурациюКонфигуратор → Администрирование → Монопольный доступ, завершите лишние сеансы в том же окне
Серверная база, плановое обновление в нерабочее времяУстановите блокировку сеансов в консоли кластера с кодом разрешения и сообщением для пользователей
Обновление по расписанию через скриптСначала завершите сеансы через RAS или консоль, затем запускайте 1cv8.exe с /UpdateDBCfg
Монопольный режим не устанавливается, хотя пользователи вышлиПроверьте фоновые задания и спящие сеансы в консоли кластера — они тоже блокируют доступ
Итог

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

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

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

Почему не устанавливается монопольный режим, хотя все пользователи вышли?

Чаще всего мешают фоновые и регламентные задания, которые создают собственные сеансы, или «зависшие» сеансы, не завершённые корректно. Откройте консоль кластера (для серверной базы) или список активных пользователей и проверьте наличие сеансов типа «Фоновое задание». Завершите их и повторите установку.

Можно ли установить монопольный режим, не выгоняя пользователей?

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

Что будет с несохранёнными данными пользователей при принудительном завершении сеанса?

Открытые, но не записанные документы и введённые данные будут потеряны — платформа не сохраняет их при обрыве сеанса. Поэтому перед принудительным завершением предупредите сотрудников и дайте им несколько минут на сохранение работы.

Как снять монопольный режим, если конфигуратор закрылся с ошибкой?

Для файловой базы достаточно повторно открыть конфигуратор и снять режим через «Администрирование → Монопольный доступ». Если база серверная и вход заблокирован блокировкой сеансов — снимите её в свойствах информационной базы в консоли кластера или войдите с кодом разрешения.

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

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

Можно ли установить монопольный режим в 1С:Фреш или другом облачном сервисе?

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