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

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

Монопольный режим в 1С 8.3: как зайти и что мешает установке

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

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

Способ входа в монопольный режим зависит от того, как развёрнута база: файловый вариант или клиент-серверный (через сервер 1С:Предприятия и СУБД). В обоих случаях задача одна — завершить все сеансы пользователей и фоновые задания, а затем открыть конфигуратор или выполнить нужную операцию. Ниже разобраны оба сценария, способы принудительного завершения сеансов и типичные причины, из-за которых монопольный доступ не устанавливается.

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

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

Монопольный доступ требуется для следующих операций:

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

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

Как проверить, кто занимает базу

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

В клиент-серверном варианте откройте консоль кластера серверов 1С:Предприятия (утилита «Администрирование серверов 1С Предприятия»), разверните нужный кластер, найдите базу в ветке «Информационные базы» и перейдите на вкладку «Сеансы». Здесь видно пользователя, компьютер, время начала сеанса и режим работы.

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

Открытое окно 1СОбычный сеанс пользователя

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

Фоновое заданиеРегламентные операции, обмены

Вкладка «Сеансы» — тип «Фоновое задание»

Зависший сеансПользователь давно неактивен

Время бездействия в консоли кластера

Соединение без сеансаОстаточное подключение

Вкладка «Соединения» в консоли кластера

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

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

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

Завершение сеансов через консоль кластера

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

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

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

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

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

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

  1. Сообщите всем пользователям о необходимости выйти из 1С и дождитесь подтверждения.
  2. Проверьте, не запущен ли 1С на самом сервере или компьютере, где размещён файл базы, — там часто остаётся забытое окно.
  3. Убедитесь, что не выполняются обмены данными и фоновые операции, запускаемые планировщиком Windows или сторонними скриптами.
  4. Откройте конфигуратор и выполните операцию. Если монопольный режим не установился — кто-то ещё подключён.

Если пользователь ушёл, оставив сеанс открытым на своём компьютере, а доступа к этому компьютеру у вас нет, можно попробовать завершить процесс 1cv8.exe удалённо через диспетчер задач удалённого рабочего стола или штатные средства администрирования Windows (например, taskkill с указанием машины — при наличии прав). Крайний вариант — временно переименовать или переместить файл базы недопустимо, это грубое нарушение: так делать нельзя.

Установка монопольного режима из кода и командной строки

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

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

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

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

Для пакетного обновления конфигурации из командной строки используется запуск конфигуратора с параметрами DESIGNER и /UpdateDBCfg — при наличии других сеансов команда завершится ошибкой, поэтому сеансы завершают заранее через консоль кластера или утилиту RAC.

bash
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /S"Server\Base" /N"Администратор" /P"пароль" /UpdateDBCfg /DisableStartupDialogs

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Только ваш сеанс

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

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

Запуск операции (обновление, загрузка)
Норма

Операция началась без ошибки блокировки

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

Сообщение об ошибке установки монопольного режима

Вкладка «Сеансы» в консоли кластера
Норма

Один сеанс конфигуратора

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

Новые сеансы появляются после завершения

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

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

Итог

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

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

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

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

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

Что делать, если сеанс «завис» и не удаляется из консоли кластера?

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

Мешает ли монопольному режиму динамическое обновление?

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

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

Запустите 1С с дополнительным параметром командной строки /UCкод, где «код» — строка разрешения, заданная при установке блокировки. В диалоге запуска параметр указывается в поле «Дополнительные параметры запуска». Без кода войти до окончания блокировки нельзя.

Почему после выхода всех пользователей файловая база всё равно занята?

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

Опасно ли принудительно завершать сеансы пользователей?

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