Монопольный доступ к базе 1С 8.3: блокировка сеансов, консоль кластера и пакетный запуск
Содержание
Чтобы установить монопольный режим в 1С 8.3, в базе не должно остаться ни одного чужого сеанса. В типовых конфигурациях это делают через Администрирование → Обслуживание → Блокировка работы пользователей: включаете блокировку, ждёте, пока программа завершит сеансы, и заходите сами с кодом разрешения. В клиент-серверной базе то же самое можно сделать в консоли кластера или утилитой rac.
Монопольный доступ нужен не всегда. Он обязателен для обновления структуры базы данных (кроме динамического обновления), загрузки файла .dt, тестирования и исправления. Для выгрузки .dt его тоже требуют.
Перед установкой монопольного режима: что проверить
Если начать без подготовки, в разгар обновления выяснится, что бухгалтер не может сохранить документ, а регламентное задание снова открыло сеанс.
📌 Что сделать заранее:
- Предупредите людей. Назовите время начала и примерную длительность. Несохранённые документы при принудительном отключении пропадут.
- Сделайте резервную копию. Для серверной базы — средствами СУБД, для файловой — копией каталога базы при закрытой программе.
- Проверьте права. Нужен пользователь информационной базы с ролью «Полные права» или «Администратор системы». Для консоли кластера — ещё и пароль администратора кластера, если он задан.
- Найдите «невидимые» сеансы. Это фоновые и регламентные задания, внешние соединения (COM), сеансы веб-сервисов и HTTP-сервисов, обмены с сайтом и мобильными приложениями.
- Придумайте код разрешения. Любое сочетание цифр, например
4821. С ним вы войдёте в заблокированную базу.
Список текущих подключений смотрят в Администрирование → Обслуживание → Активные пользователи или в Конфигураторе через Администрирование → Активные пользователи. Колонка «Приложение» показывает, кто это: тонкий клиент, Конфигуратор, фоновое задание или COM-соединение.
Монопольный режим через блокировку работы пользователей в 1С
Этот способ подходит и для файловых, и для серверных баз. Он есть во всех конфигурациях на Библиотеке стандартных подсистем: Бухгалтерии 3.0, ЗУП 3.1, УТ 11, КА 2, ERP.
Пошагово
- Войдите в базу под администратором.
- Откройте
Администрирование → Обслуживание. В группе «Обслуживание» найдите ссылку «Блокировка работы пользователей». - Заполните сообщение, которое увидят пользователи: «С 19:00 до 20:00 обновление программы, сохраните документы».
- Укажите время начала и окончания блокировки. Окончание можно оставить пустым — тогда блокировку снимете вручную.
- Введите код разрешения (поле для кода находится в той же форме).
- Нажмите кнопку установки блокировки.
После этого программа показывает активным пользователям предупреждение и через несколько минут завершает их сеансы. Новые входы запрещаются, если в строке запуска нет кода разрешения.
Как зайти самому
Добавьте код разрешения в параметры запуска:
/UC4821
В окне выбора баз: «Изменить» → последняя страница мастера → поле «Дополнительные параметры запуска». Или запустите ярлык с параметром /UC4821 на конце. Без кода даже администратора не пустит. Если работы будут идти и в Конфигураторе, добавьте тот же параметр и в его ярлык: блокировка действует на любой режим запуска, кроме уже открытых сеансов.
Не забудьте снять блокировку. Пока она висит, утром никто не войдёт в программу. Снимают её в той же форме кнопкой снятия блокировки или по сроку окончания.
Как Конфигуратор получает монопольный режим
Сам по себе запуск Конфигуратора базу монопольно не захватывает. Разработчик спокойно смотрит конфигурацию, пока бухгалтеры работают. Монопольный доступ запрашивается в момент операции:
| Операция в Конфигураторе | Нужен ли монопольный доступ |
|---|---|
| Обновление конфигурации базы данных (обычное) | Да |
| Динамическое обновление | Нет, но изменения увидят только новые сеансы |
Загрузка информационной базы из .dt | Да |
Выгрузка информационной базы в .dt | Да |
| Тестирование и исправление | Да |
| Просмотр и редактирование конфигурации | Нет |
Если при обновлении кто-то остался в базе, платформа 8.3 показывает окно со списком мешающих сеансов. В нём есть команда завершить сеансы и повторить. Она закрывает чужие сеансы без предупреждения: всё несохранённое у пользователей пропадёт.
Не жмите «завершить сеансы» в рабочее время без предупреждения людей. Лучше поставить блокировку из предыдущего раздела и дождаться, пока программа аккуратно всех выведет.
Когда монопольный режим ставить не нужно
Блокировку часто включают «на всякий случай», и бухгалтерия простаивает зря. Без монопольного доступа спокойно выполняются:
- 📄 Обновление классификаторов, курсов валют, адресного классификатора из программы.
- 🧩 Подключение и обновление расширений, если расширение не меняет структуру данных. Если меняет, при применении платформа сама попросит завершить сеансы.
- 🔍 Просмотр журнала регистрации, настройка прав, создание пользователей.
- 💾 Резервное копирование средствами СУБД для серверной базы. Пользователи могут работать, копия будет согласованной на момент запуска.
- ⚙️ Динамическое обновление конфигурации базы данных.
Монопольный режим нужен там, где платформа перестраивает таблицы или проверяет физическую целостность базы. Всё остальное делайте в рабочее время, не выгоняя людей.
Сколько времени закладывать
Ориентиры для типовой Бухгалтерии на обычном сервере:
| Работа | Примерное время простоя |
|---|---|
| Обновление релиза конфигурации с реструктуризацией | 10–40 минут |
Загрузка .dt объёмом 5–10 ГБ | 30–90 минут |
| Тестирование и исправление файловой базы 10 ГБ | от 1 часа |
Цифры сильно зависят от дисков и объёма регистров. Первый раз засеките время на копии базы и планируйте окно с запасом в полтора раза.
Установка монопольного режима через консоль кластера серверов
Для клиент-серверной базы есть путь без входа в 1С. Он удобен, когда в базу не пускает ошибка или висит много сеансов.
Блокировка начала сеансов
- Откройте «Администрирование серверов 1С Предприятия». Консоль подключается к агенту сервера (порт 1540 по умолчанию).
- Разверните
Кластеры → <ваш кластер> → Информационные базы. - Правой кнопкой по базе → «Свойства». Введите логин и пароль администратора информационной базы.
- Включите флажок «Блокировка начала сеансов включена».
- Заполните «Сообщение», «Начало», «Конец» и «Код разрешения».
- Включите «Блокировка регламентных заданий включена», чтобы фоновые задачи не открывали новые сеансы.
- Нажмите «ОК».
Отключение активных сеансов
Блокировка в консоли не выгоняет тех, кто уже работает. Их убирают вручную:
- Откройте узел базы → «Сеансы».
- Отсортируйте по колонке «Приложение».
- Выделите сеансы и выберите «Удалить».
Удаление сеанса — это обрыв работы пользователя без сохранения. Делайте это после блокировки и предупреждения, а не вместо них.
После обновления снимите оба флажка блокировки. Регламентные задания, забытые выключенными, — частая причина «почему не загружаются банковские выписки по расписанию».
Монопольный режим в файловой базе 1С
У файловой базы нет кластера, поэтому остаются два инструмента: блокировка работы пользователей из первого способа и «Активные пользователи». Всё остальное — на уровне файлов и процессов Windows.
🔍 Особенности файлового варианта:
- Сеанс держит файл
1Cv8.1CD. Пока хоть один процесс 1С открыл базу, монопольный доступ не получить. - Сетевая папка. Если база лежит на общем ресурсе, на файловом сервере откройте «Управление компьютером» → «Общие папки» → «Открытые файлы». Там видно, с какого компьютера открыт
1Cv8.1CD. - Терминальный сервер
. В «Диспетчере задач» на вкладке «Пользователи» видно, у кого запущен
1cv8c.exeили1cv8.exe. - Веб-публикация. Если файловая база опубликована на веб-сервере, процесс веб-сервера тоже держит соединение. Остановите пул приложения или службу публикации на время работ.
Закрытие файла в «Открытых файлах» или снятие процесса 1cv8c.exe обрывает работу пользователя. Несохранённые изменения пропадут. Делайте это только после предупреждения и когда блокировка уже не помогла.
💡 Самый простой способ для маленькой файловой базы: попросить всех выйти, проверить «Активных пользователей», затем запустить Конфигуратор. Если в списке остались только вы, монопольный доступ будет получен автоматически при первой операции, которая его требует.
Автоматизация монопольного режима через командную строку
Ночные обновления делают пакетным файлом. Схема такая: заблокировать вход , вывести пользователей, обновить базу , снять блокировку.
Через параметры запуска 1cv8.exe
Библиотека стандартных подсистем понимает команды запуска ЗавершитьРаботуПользователей и РазрешитьРаботуПользователей, переданные в параметре /C.
set V8="C:\Program Files\1cv8\<версия платформы>\bin\1cv8.exe"
set IB=/S"srv1c\buh"
set AUTH=/N"Администратор" /P"пароль"
rem 1. Блокировка и завершение сеансов
%V8% ENTERPRISE %IB% %AUTH% /C"ЗавершитьРаботуПользователей" /UC"4821" /DisableStartupMessages
rem 2. Обновление конфигурации базы данных
%V8% DESIGNER %IB% %AUTH% /UC"4821" /UpdateDBCfg /Out"C:\1c-logs\update.log" /DisableStartupDialogs
rem 3. Снятие блокировки
%V8% ENTERPRISE %IB% %AUTH% /C"РазрешитьРаботуПользователей" /UC"4821" /DisableStartupMessages
Для файловой базы вместо /S"srv1c\buh" укажите /F"D:\Bases\Buh". Результат обновления смотрите в журнале из параметра /Out.
Через rac для серверной базы
Утилита rac лежит в каталоге bin платформы и работает через сервер администрирования ras (по умолчанию порт 1545). Служба ras должна быть запущена.
rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<id кластера>
rac localhost:1545 infobase update --cluster=<id кластера> --infobase=<id базы> ^
--infobase-user="Администратор" --infobase-pwd="пароль" ^
--sessions-deny=on --scheduled-jobs-deny=on ^
--denied-message="Обновление программы" --permission-code="4821"
rac localhost:1545 session list --cluster=<id кластера> --infobase=<id базы>
rac localhost:1545 session terminate --cluster=<id кластера> --session=<id сеанса>
Если у кластера задан администратор, добавьте --cluster-user и --cluster-pwd. После работ выполните ту же команду infobase update с --sessions-deny=off --scheduled-jobs-deny=off. Полный список параметров — в rac help infobase и rac help session.
Запуск по расписанию
Пакетный файл ставят в «Планировщик заданий» Windows на ночь. Запускайте его от учётной записи, у которой есть доступ к каталогу платформы и журналов. Пароль администратора базы в открытом виде в .bat лучше не хранить: заведите для обновлений отдельного пользователя 1С с нужной ролью и ограничьте доступ к самому файлу. Утром проверьте журнал /Out и снята ли блокировка — ошибка на втором шаге оставит базу закрытой.
Почему не включается монопольный режим: зависшие сеансы
Платформа отказывает в монопольном доступе, пока видит хотя бы одно чужое соединение с базой. Обычно виноват один из случаев ниже.
Перезапуск службы агента сервера 1С и снятие процессов rphost затрагивают не одну базу, а все базы кластера. Планируйте это на время, когда в программе никого нет, и предупредите пользователей других баз.
Когда фоновое задание долго не завершается, не снимайте его сразу. Посмотрите в журнале регистрации, что оно делает: прерванное на середине закрытие месяца или обмен иногда приходится перезапускать вручную.
Частые вопросы
Можно ли включить монопольный режим программно?
УстановитьМонопольныйРежим(Истина). Если в базе есть другие сеансы, метод вызовет исключение, поэтому оборачивайте его в Попытка ... Исключение. Проверить текущее состояние можно функцией МонопольныйРежим().Лицензия расходуется, пока база заблокирована?
Чем блокировка в консоли кластера отличается от блокировки в самой 1С?
Нужен ли монопольный режим для динамического обновления?
Что делать, если забыли код разрешения?
rac infobase update --sessions-deny=off. Для файловой базы код знает только тот, кто ставил блокировку, поэтому записывайте его и всегда задавайте время окончания.