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

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

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

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

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

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

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

Зачем нужен монопольный режим и когда он обязателен

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

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

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

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

Как зайти монопольно в файловой базе

В файловой базе (файл 1Cv8.1CD в общей папке) нет серверных механизмов блокировки, поэтому монопольность обеспечивается простым правилом: кто первый вошёл с требованием монопольного доступа — того и режим.

Стандартный порядок действий:

  1. Оповестите пользователей и дождитесь, пока все выйдут из базы. Проверить активных пользователей можно в конфигураторе: «Администрирование» → «Активные пользователи».
  2. Закройте все запущенные копии 1С на своём компьютере.
  3. Запустите конфигуратор и выполните нужную операцию (например, «Конфигурация» → «Обновить конфигурацию базы данных»). Конфигуратор сам попытается установить монопольный доступ.
  4. Если нужно монопольно зайти в режиме «Предприятие», запустите базу с ключом /C или используйте параметр блокировки через код (см. раздел про программную установку).

Признак успеха: операция запустилась без сообщений о конфликте блокировок, а в списке активных пользователей числится только ваш сеанс.

Монопольный вход в файловую базу
  1. 1
    Попросите всех пользователей выйти из 1С
  2. 2
    Проверьте активные сеансы в конфигураторе
  3. 3
    Закройте фоновые подключения (обмены, агенты на других ПК)
  4. 4
    Запустите конфигуратор и выполните операцию
  5. 5
    Убедитесь, что ошибок блокировок нет

Что мешает зайти монопольно в файловой базе

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

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

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

В клиент-серверном варианте (1С:Сервер + MS SQL, PostgreSQL и т.п.) выгонять пользователей вручную не обязательно — есть штатный механизм блокировки сеансов. Это правильный и безопасный способ.

Через консоль кластера (оснастка «Администрирование серверов 1С:Предприятия»):

  1. Откройте консоль, найдите нужную информационную базу в списке.
  2. Откройте свойства базы (правый клик → «Свойства»).
  3. Установите флажок «Блокировка начала сеансов включена».
  4. Задайте время начала и окончания блокировки, при необходимости — сообщение для пользователей и код разрешения (по нему можно будет войти, несмотря на блокировку).
  5. В ветке «Сеансы» завершите текущие сеансы пользователей (правый клик → «Удалить»).
  6. Выполните свои операции, затем снимите блокировку.

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

Программная установка монопольного режима

Встроенный язык 1С позволяет управлять монопольным доступом из кода. Две ключевые функции:

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

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

Сообщить("Монопольный режим уже установлен");

КонецЕсли;

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

Попытка

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

Исключение

Сообщить("Не удалось: " + ОписаниеОшибки());

КонецПопытки;

// Снятие после завершения работ

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

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

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

Что делать при ошибке «нарушение монопольного режима»

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

Диагностируйте по шагам:

  • Откройте список активных пользователей (конфигуратор → «Администрирование» → «Активные пользователи») и посмотрите, кто в базе.
  • В клиент-серверной базе проверьте сеансы в консоли кластера — там видны и «зависшие» сеансы, которых нет в списке активных пользователей.
  • Проверьте, не включена ли блокировка сеансов, установленная ранее другим администратором, — при ней монопольный режим может вести себя неочевидно.
  • Убедитесь, что не работают фоновые задания и внешние подключения (COM, веб-сервисы, http-сервисы).

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

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

Риски и как не потерять данные

Главное правило: любая операция в монопольном режиме, меняющая структуру или массово перезаписывающая данные, начинается с резервной копии. Для файловой базы — копия файла 1Cv8.1CD при всех вышедших пользователях, для клиент-серверной — бэкап средствами СУБД или выгрузка в .dt.

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

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

Проверка результата

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

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

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

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

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

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

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

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

Есть другие сеансы — монопольность не установлена

Запуск обновления конфигурации
Норма

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

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

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

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

Блокировка снята, пользователи входят

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

Все получают сообщение о блокировке

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

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

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

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

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

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

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

Опасно ли принудительно удалять сеансы в консоли кластера?

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

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

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

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

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

Итог

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

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