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

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

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

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

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

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

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

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

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

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

Подготовка: завершите сеансы пользователей

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

Проверить и завершить сеансы можно несколькими способами. В конфигураторе откройте «Администрирование» → «Активные пользователи» — там виден список подключённых сеансов, но удалить их отсюда нельзя, только посмотреть. Полноценное завершение сеансов в клиент-серверном варианте выполняется через консоль кластера серверов 1С: ветка «Сеансы» → выделить нужные → «Удалить». В файловом варианте сеансы завершаются закрытием программы у пользователя либо снятием процесса 1cv8.exe на его компьютере.

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

Способ 1: установить монопольный режим через конфигуратор

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

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

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

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

Способ 2: запуск с параметром командной строки

Если нужно открыть базу сразу в монопольном режиме, удобно использовать параметр запуска. Создайте ярлык или bat-файл с такой командой:

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

Здесь /F — путь к файловой базе (для серверной используйте /S в формате «Сервер\ИмяБазы»), /N и /P — имя и пароль пользователя, /C — команда, передаваемая системе, в данном случае установка монопольного режима. Вместо DESIGNER можно указать ENTERPRISE, если нужен монопольный сеанс в режиме предприятия, например для запуска обработки.

Способ удобен для автоматизации: ночное обновление, регламентное тестирование, пакетная загрузка данных. Добавьте команду в планировщик заданий Windows — и обслуживание будет выполняться без участия администратора. Учтите, что пароль в bat-файле хранится открытым текстом, поэтому ограничьте доступ к такому файлу.

Способ 3: установить монопольный режим программно

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

// Проверить текущее состояние

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

// Установить монопольный доступ

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

КонецЕсли;

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

// Снять монопольный режим

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

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

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

Особенности клиент-серверного варианта

На сервере 1С монопольный режим тесно связан с блокировкой соединений информационной базы. Если администратор кластера установил блокировку (например, через консоль кластера: свойства информационной базы → флаг «Блокировка начала сеансов включена»), то даже конфигуратор не войдёт без кода разрешения. И наоборот: для установки монопольного режима блокировку нужно либо снять, либо указать разрешительный код в параметре запуска /UC.

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

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

Через конфигуратор

Подходит для разовых ручных операций; наглядно, но требует присутствия администратора

Параметр /C"Монопольно"

Удобен для скриптов и планировщика; требует аккуратного хранения пароля в файле

Программно из кода

Лучший вариант для обработок обслуживания; нужно обрабатывать исключение при занятых сеансах

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

Только для клиент-серверного варианта; защищает от подключений на время регламентных работ

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

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

Менее очевидные причины: сеанс самого конфигуратора, дублирующийся при неудачном повторном запуске; соединение, оставшееся после аварийного закрытия (в консоли кластера оно может «висеть» несколько минут, пока не истечёт таймаут); включённая блокировка сеансов без указания кода разрешения. В файловом варианте помогает поиск открытых файлов базы по сети — через «Управление компьютером» → «Открытые файлы» на машине, где лежит база.

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

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

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

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

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

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

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

Виден только один сеанс — текущий

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

Есть другие сеансы или фоновые задания

Попытка входа с другого ПК
Норма

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

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

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

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

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

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

Возвращает Ложь — доступ не установлен

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

Итог

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

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

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

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

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

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

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

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

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

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

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

Можно ли работать в режиме «Предприятие» монопольно?

Да. Запустите базу в режиме предприятия с параметром /C"Монопольно" либо установите режим программно в начале сеанса через УстановитьМонопольныйРежим(Истина). Это используется для массовых обработок данных, которые нельзя выполнять при параллельной работе пользователей.

Опасно ли прерывать работу при включённом монопольном режиме?

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