Администрирование · 10 мин
Как установить монопольный доступ в 1С
Как установить монопольный доступ в 1С: пошаговая инструкция для файловой и клиент-серверной базы, способы отключения пользователей, типичные ошибки и FAQ.
Монопольный режим в 1С — это состояние информационной базы, при котором с ней работает только один сеанс, а все остальные пользователи и фоновые соединения блокируются. Без монопольного доступа невозможно выполнить ряд критических операций: загрузку и выгрузку базы через конфигуратор, обновление конфигурации, тестирование и исправление, полное удаление помеченных объектов, изменение структуры метаданных.
Главная сложность — монопольный режим нельзя включить, пока в базе есть активные сеансы других пользователей, регламентные задания или фоновые процессы. Поэтому установка монопольного доступа фактически состоит из двух этапов: завершение чужих сеансов и включение самого режима. Ниже разобраны оба этапа для файлового и клиент-серверного вариантов работы.
Когда требуется монопольный режим
Платформа 1С сама сообщает о необходимости монопольного доступа: при попытке выполнить операцию появляется ошибка вида «Ошибка разделенного доступа к базе» или «Конфликт блокировок при выполнении транзакции». Это сигнал, что операция требует исключительного контроля над базой.
Типовые ситуации, где монопольный режим обязателен:
- обновление конфигурации базы данных (реструктуризация таблиц);
- загрузка и выгрузка информационной базы в файл .dt;
- тестирование и исправление базы (chdbfl и штатное ТиИ);
- полное удаление помеченных объектов;
- изменение конфигурации с реструктуризацией данных;
- очистка базы, массовая перенумерация, пакетные сервисные обработки.
Обычная работа пользователей, проведение документов и формирование отчётов монопольного режима не требуют — включать его «на всякий случай» не нужно, так как это останавливает работу всей организации.
Как завершить сеансы пользователей перед включением
Первый шаг — убедиться, что в базе никто не работает. В файловом варианте откройте конфигуратор, перейдите в меню «Администрирование» → «Активные пользователи». Вы увидите список сеансов с указанием компьютера, пользователя и времени начала работы.
Если сеансы есть, у пользователей есть два варианта завершения. Корректный — попросить всех выйти из программы самостоятельно, предварительно предупредив их по почте или в мессенджере. Принудительный — завершить сеансы через консоль кластера (в клиент-серверном варианте) или через параметр блокировки. Принудительное завершение может привести к потере несохранённых данных у пользователей, поэтому применяйте его только после предупреждения.
Отдельная проблема — «зависшие» сеансы: пользователь давно вышел, но сеанс в списке активных остаётся. В клиент-серверном варианте такие сеансы удаляются через консоль администрирования сервера 1С (выделить сеанс → «Удалить»). В файловом варианте помогает удаление файла 1Cv8.1CL в каталоге базы — но только когда все пользователи точно вышли.
Установка монопольного режима в файловом варианте
В файловой базе монопольный режим включается автоматически при запуске операции, которая его требует, — если нет других сеансов. Например, при загрузке базы из .dt конфигуратор сам попытается установить монопольный доступ и выдаст ошибку, если кто-то подключён.
Порядок действий:
- Закройте все сеансы 1С:Предприятия и лишние конфигураторы, подключённые к этой базе.
- Откройте конфигуратор, проверьте список активных пользователей — он должен быть пуст, кроме вашего сеанса конфигуратора.
- Запустите нужную операцию: загрузку базы, тестирование и исправление, обновление конфигурации.
- При появлении ошибки разделённого доступа повторно проверьте активные сеансы и фоновые процессы.
Дополнительно можно установить блокировку сеансов заранее: в типовых конфигурациях на базе Библиотеки стандартных подсистем есть обработка «Блокировка работы пользователей» (раздел «Администрирование» → «Обслуживание»). Она задаёт период, в течение которого пользователи не смогут войти в базу, и код разблокировки для администратора.
- 1Предупредите пользователей и попросите выйти из программы
- 2Откройте конфигуратор и проверьте список активных пользователей
- 3При необходимости установите блокировку входа через обработку блокировки сеансов
- 4Запустите требуемую операцию — монопольный режим включится автоматически
- 5После завершения снимите блокировку и сообщите пользователям о возможности работы
Установка монопольного режима в клиент-серверном варианте
В клиент-серверной архитектуре управление сеансами выполняется через консоль администрирования серверов 1С:Предприятия. Откройте консоль, найдите нужную базу в дереве кластера, раскройте ветку «Сеансы» — здесь видны все подключения, включая фоновые задания и системные сеансы.
Для установки монопольного доступа удобнее использовать не удаление сеансов по одному, а блокировку базы целиком. В свойствах информационной базы в консоли кластера установите флажок «Блокировка начала сеансов включена», укажите время начала и окончания блокировки, а также код разрешения — произвольную строку, с которой сможете войти вы. После этого новые сеансы создаваться не будут, а существующие нужно завершить вручную через список сеансов.
Не забудьте про регламентные задания: в свойствах базы есть отдельный флажок «Блокировка регламентных заданий включена». Фоновые задания (обмены, расчёты, синхронизации) тоже удерживают соединение с базой и мешают монопольному режиму. После завершения работ снимите обе блокировки, иначе пользователи и фоновые процессы не смогут работать.
Программная установка монопольного режима
Разработчики могут управлять монопольным режимом из встроенного языка. Метод УстановитьМонопольныйРежим(Истина) включает режим, УстановитьМонопольныйРежим(Ложь) — отключает, а функция МонопольныйРежим() возвращает текущее состояние. Это используется в сервисных обработках и регламентных процедурах, которым нужен исключительный доступ к данным.
Пример кода:
Если Не МонопольныйРежим() Тогда
Попытка
УстановитьМонопольныйРежим(Истина);
Исключение
Сообщить("Не удалось установить монопольный режим: есть активные сеансы");
Возврат;
КонецПопытки;
КонецЕсли;
// ... выполнение операции ...
УстановитьМонопольныйРежим(Ложь);
Также монопольный режим можно запросить при запуске конфигуратора из командной строки с помощью параметра /UC с кодом разрешения — это позволяет войти в заблокированную базу для обслуживания, минуя блокировку сеансов.
УстановитьМонопольныйРежим(Истина);
// выполнение операции
УстановитьМонопольныйРежим(Ложь);Типичные ошибки и способы их решения
Самая частая ошибка — «Ошибка разделенного доступа к информационной базе» при попытке загрузить базу или обновить конфигурацию. Причина всегда одна: есть активное соединение. Проверьте не только пользовательские сеансы, но и фоновые задания, открытые вторые конфигураторы, подключения через веб-сервисы и COM-соединения — они тоже считаются сеансами.
Вторая типичная ситуация — администратор установил блокировку сеансов, завершил обслуживание, но забыл её снять. Пользователи не могут войти в базу и получают сообщение о блокировке. Решение — снять флажок в консоли кластера или завершить период блокировки в обработке. Чтобы избежать этого, всегда задавайте конкретное время окончания блокировки, а не бессрочную.
Третья ошибка — попытка обойтись без монопольного режима, выполняя тяжёлую обработку в разделённом доступе. Это приводит к конфликтам блокировок, взаимоблокировкам и порче данных при обрыве. Если операция штатно требует монопольного доступа, не ищите обходных путей — выделите регламентное окно и выполните её корректно.
Как проверить результат
Признак успешной установки монопольного режима — целевая операция запускается без ошибки разделённого доступа. В конфигураторе при активном монопольном режиме это можно проверить программно через МонопольныйРежим() или косвенно: в списке активных пользователей остаётся только ваш сеанс.
После завершения обслуживания выполните обратную проверку: снимите блокировки сеансов и регламентных заданий, попросите одного из пользователей войти в базу и убедитесь, что фоновые задания запустились по расписанию. Только после этого обслуживание можно считать завершённым.
Как проверить результат
Только ваш сеанс
Есть другие сеансы или фоновые задания
Операция началась без ошибок
Ошибка разделённого доступа
Вход выполняется штатно
Сообщение о блокировке сеансов
Часто задаваемые вопросы
Можно ли установить монопольный режим, не выгоняя пользователей?
Нет. Монопольный режим по определению требует, чтобы в базе остался только один сеанс. Единственная доступная смягчающая мера — установить блокировку новых сеансов заранее и дождаться, пока пользователи завершат работу сами.
Что делать, если сеанс «завис» и пользователь давно вышел?
В клиент-серверном варианте удалите сеанс в консоли кластера: ветка «Сеансы» → выделить → «Удалить». В файловом варианте, когда все точно вышли, закройте конфигуратор и удалите файл 1Cv8.1CL из каталога базы, затем войдите снова.
Мешает ли монопольному режиму запущенный веб-сервер с публикацией базы?
Да. Подключения через веб-сервисы, HTTP-сервисы и тонкий клиент через веб-сервер создают сеансы. На время обслуживания остановите публикацию или завершите соответствующие сеансы через консоль кластера.
Чем отличается блокировка сеансов от монопольного режима?
Блокировка сеансов запрещает новые подключения, но не завершает существующие — это инструмент подготовки. Монопольный режим — фактическое состояние базы, когда работает один сеанс. Обычно сначала ставится блокировка, затем завершаются сеансы, и только потом операция включает монопольный режим.
Как войти в базу, если администратор забыл код разблокировки?
В клиент-серверном варианте снимите блокировку напрямую в консоли кластера — код там можно посмотреть и изменить в свойствах базы. В файловом варианте блокировку, установленную обработкой, можно снять, запустив конфигуратор и удалив соответствующую константу через режим отладки, либо дождаться окончания периода блокировки.
Что важно запомнить
Монопольный режим включается автоматически при запуске операции, которая его требует, — но только если в базе нет других сеансов. Порядок безопасной работы: предупредить пользователей, установить блокировку новых сеансов, завершить активные сеансы и фоновые задания, выполнить операцию, снять блокировки и проверить вход пользователей.