Администрирование · 12 мин
Как открыть 1С в монопольном режиме
Как запустить 1С в монопольном режиме: через конфигуратор, параметр запуска и код. Что делать, если монопольный доступ не устанавливается, и как проверить результат.
Монопольный режим в 1С — это состояние информационной базы, при котором с ней работает только один сеанс, а все остальные подключения блокируются. Без него невозможно выполнить обновление конфигурации, тестирование и исправление, загрузку данных через обработку и ряд других административных операций. Если база файловая — достаточно, чтобы никто из пользователей не держал её открытой; если клиент-серверная — дополнительно нужно снять блокировку соединений на кластере.
Ниже разобраны все рабочие способы установить монопольный доступ: через конфигуратор, параметр командной строки, программно и через консоль кластера. Отдельно описаны типичные причины, по которым монопольный режим не устанавливается, и способы проверить, что он действительно включён. Инструкции актуальны для платформы 8.3 как в файловом, так и в клиент-серверном варианте.
Что такое монопольный режим и когда он нужен
Монопольный режим гарантирует, что в информационной базе активен ровно один сеанс — тот, который этот режим установил. Платформа блокирует новые подключения и не даёт другим сеансам выполнять операции, изменяющие данные или структуру базы. Это защита от конфликтов: например, обновление конфигурации, запущенное при открытых пользовательских сеансах, может завершиться ошибкой или оставить базу в несогласованном состоянии.
Типовые ситуации, когда монопольный доступ обязателен:
- обновление конфигурации базы данных (реструктуризация таблиц);
- тестирование и исправление информационной базы;
- загрузка и выгрузка базы в файл .dt;
- массовые обработки данных, меняющие большие объёмы информации;
- очистка базы, свёртка итогов, удаление помеченных объектов в большом объёме.
Подготовка: завершите сеансы пользователей
Главное условие установки монопольного режима — отсутствие других активных сеансов. Если хотя бы один пользователь держит базу открытой, платформа откажет с сообщением о невозможности установить монопольный доступ. Поэтому сначала предупредите сотрудников и попросите выйти из программы.
Проверить и завершить сеансы можно несколькими способами. В конфигураторе откройте «Администрирование» → «Активные пользователи» — там виден список подключённых сеансов, но удалить их отсюда нельзя, только посмотреть. Полноценное завершение сеансов в клиент-серверном варианте выполняется через консоль кластера серверов 1С: ветка «Сеансы» → выделить нужные → «Удалить». В файловом варианте сеансы завершаются закрытием программы у пользователя либо снятием процесса 1cv8.exe на его компьютере.
Не забудьте про фоновые задания и регламентные операции. Запущенный обмен данными или фоновое задание — это тоже сеанс, который помешает монопольному доступу. В консоли кластера проверьте вкладку «Сеансы» на наличие процессов вида «Фоновое задание» и завершите их.
Способ 1: установить монопольный режим через конфигуратор
Самый наглядный способ подходит для разовых операций. Откройте базу в конфигураторе под пользователем с правами администратора. Дальше порядок действий зависит от того, есть ли в меню нужный пункт.
- 1Завершите все сеансы пользователей и фоновые задания
- 2Откройте базу в конфигураторе под администратором
- 3Выберите «Администрирование» → «Монопольный режим» → «Установить»
- 4При отказе проверьте список активных пользователей и повторите
- 5Выполните нужные операции и снимите монопольный режим тем же пунктом меню
В некоторых версиях платформы пункт называется «Монопольный режим» без подменю — при выборе он просто переключает состояние. Если база клиент-серверная, конфигуратор может запросить параметры блокировки: дату и время окончания и сообщение для пользователей. После установки режима в заголовке окна конфигуратора обычно появляется пометка о монопольном доступе.
Когда работы закончены, снимите монопольный режим тем же пунктом меню. Если закрыть конфигуратор, не сняв блокировку в клиент-серверном варианте, пользователи не смогут войти до истечения времени блокировки — об этом подробнее ниже.
Способ 2: запуск с параметром командной строки
Если нужно открыть базу сразу в монопольном режиме, удобно использовать параметр запуска. Создайте ярлык или 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"Монопольно" или программно. В клиент-серверном варианте дополнительно управляйте блокировкой сеансов. Перед работами делайте резервную копию, после — снимайте режим и проверяйте вход пользователей.
Частые вопросы
Можно ли установить монопольный режим, не выгоняя пользователей?
Нет. Платформа откажет в установке, пока в базе есть хотя бы один другой активный сеанс. Единственный корректный путь — завершить сеансы: попросить пользователей выйти или удалить сеансы через консоль кластера. В серверном варианте удобно сначала включить блокировку новых подключений, чтобы никто не вошёл повторно, пока вы ждёте освобождения базы.
Чем монопольный режим отличается от блокировки сеансов?
Монопольный режим — состояние конкретного сеанса, дающее ему исключительный доступ к данным. Блокировка сеансов — настройка информационной базы на сервере, которая запрещает новые подключения всем, кроме тех, кто знает код разрешения. На практике на сервере их часто используют вместе: блокировка не пускает пользователей, монопольный режим защищает выполнение операций.
Что делать, если после аварийного закрытия база «застряла» в монопольном режиме?
В файловом варианте проверьте, не остался ли зависший процесс 1cv8.exe на каком-либо компьютере, и завершите его. В клиент-серверном откройте консоль кластера и удалите «мёртвые» сеансы и соединения — они могут висеть до истечения таймаута. Если установлена блокировка сеансов, снимите её в свойствах информационной базы.
Нужны ли особые права для установки монопольного режима?
Да. Пользователь должен обладать административными правами на информационную базу — как минимум правом «Администрирование» и «Монопольный режим» (в типовых ролях это входит в полные права). Обычный пользователь с ограниченной ролью установить монопольный доступ не сможет.
Можно ли работать в режиме «Предприятие» монопольно?
Да. Запустите базу в режиме предприятия с параметром /C"Монопольно" либо установите режим программно в начале сеанса через УстановитьМонопольныйРежим(Истина). Это используется для массовых обработок данных, которые нельзя выполнять при параллельной работе пользователей.
Опасно ли прерывать работу при включённом монопольном режиме?
Риск зависит от операции. Если в этот момент идёт реструктуризация при обновлении конфигурации, прерывание может оставить базу в повреждённом состоянии — поэтому перед обновлением обязательно делается копия. Простое закрытие конфигуратора без активных операций безопасно, но в серверном варианте не забудьте потом снять блокировку сеансов.