Как выгнать зависших пользователей из базы 1С и получить монопольный доступ
Содержание
Сам Конфигуратор 1С 8.3 сеансы пользователей только показывает: Администрирование → Активные пользователи. Завершают их другими средствами. Для серверной базы — в консоли «Администрирование серверов 1С Предприятия» (сеанс → контекстное меню → Удалить) или командой rac session terminate. Для файловой и серверной базы на типовой конфигурации — через форму «Блокировка работы пользователей»: она предупреждает людей и закрывает их сеансы сама.
Какой способ выбрать, зависит от ситуации. Нужно срочно убрать один зависший сеанс — консоль кластера. Нужно освободить базу под обновление ночью — блокировка с кодом разрешения. Файловая база без доступа к пользователям — закрытие файла 1Cv8.1CD на стороне сервера, но это крайняя мера.
С чего начать: кто сейчас держит базу
Перед тем как что-то завершать, посмотрите список подключений. Иначе легко оборвать бухгалтера, который проводит закрытие месяца , и оставить на месте настоящую причину — фоновое задание.
В Конфигураторе. Откройте Администрирование → Активные пользователи. В списке видно:
- 👤 имя пользователя информационной базы;
- 💻 компьютер, с которого он подключён;
- 🧩 приложение: «1С:Предприятие» (толстый или тонкий клиент), «Конфигуратор», «Фоновое задание», «COM-соединение», веб-клиент;
- 🕐 время начала работы.
Этот список работает и для файловой, и для серверной базы. Кнопки «завершить» в нём нет — это справочная форма.
В консоли кластера (только серверная база). Разверните Центральные серверы → <сервер> → Кластеры → <кластер> → Информационные базы → <база> → Сеансы. Здесь информации больше:
| Колонка | Что из неё понять |
|---|---|
| Пользователь, Компьютер | Кто и откуда подключён |
| Приложение | Клиент, фоновое задание, COM, Конфигуратор |
| Начало работы | Сеанс висит с прошлого вечера — первый кандидат |
| Спящий | Клиент потерял связь, сеанс ждёт возврата |
| Время вызова (текущее) | Сеанс прямо сейчас выполняет долгий серверный вызов |
| Блокировки СУБД | Сеанс держит блокировки в базе данных |
В самой программе. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть форма «Активные пользователи» в разделе Администрирование. Для серверной базы в ней есть команда «Завершить сеанс»: программа запросит пароль администратора кластера, если он задан.
Сеансы с приложением «Фоновое задание» почти всегда запускают регламентные задания: загрузку курсов валют, обмен, полнотекстовый индекс. Если завершить такой сеанс и не заблокировать регламентные задания, через минуту он появится снова.
Как принудительно остановить сеанс: пошагово по способам
Способ 1. Консоль администрирования серверов
Подходит для серверной базы, когда нужно убрать один или несколько конкретных сеансов.
- Запустите оснастку «Администрирование серверов 1С Предприятия» на сервере или на компьютере с установленными компонентами администрирования.
- Если центрального сервера нет в дереве — добавьте его:
Действие → Создать → Центральный сервер 1С:Предприятия, имя сервера, порт агента1540. - Откройте список сеансов нужной базы (путь выше).
- Выделите сеанс, в контекстном меню выберите
Удалить. Можно выделить несколько строк с Ctrl или Shift. - Подтвердите. Пользователь увидит сообщение о том, что сеанс завершён администратором, и клиент закроется.
Несохранённые данные пользователя пропадут: открытый незаписанный документ будет потерян. Перед удалением активного сеанса предупредите человека по телефону или в мессенджере.
Способ 2. Утилита rac из командной строки
Удобна для удалённой работы и скриптов. Для неё должен быть запущен сервер администрирования ras (по умолчанию порт 1545).
rem список кластеров — берём UUID кластера
rac cluster list
rem список баз кластера — берём UUID базы
rac infobase summary list --cluster=<UUID_кластера>
rem сеансы конкретной базы
rac session list --cluster=<UUID_кластера> --infobase=<UUID_базы>
rem завершить сеанс
rac session terminate --cluster=<UUID_кластера> --session=<UUID_сеанса>
Если в кластере заведены администраторы, добавьте к командам --cluster-user=<имя> --cluster-pwd=<пароль>. Если ras работает на другом компьютере, укажите его адрес последним аргументом: rac session list ... server01:1545. Остальные ключи смотрите в rac help session.
Способ 3. Блокировка работы пользователей в программе
Самый мягкий способ. Работает и в файловой базе, где консоли кластера нет.
- В программе откройте раздел
Администрированиеи найдите команду «Блокировка работы пользователей» (в Бухгалтерии 3.0 она в подразделе обслуживания). - Заполните сообщение для пользователей: «Обновление базы, работа возобновится в 22:30».
- Укажите время начала и окончания блокировки.
- Задайте код разрешения, например
7731. - Нажмите «Установить блокировку».
Работающие пользователи получат предупреждение. Когда наступит время начала, их сеансы закроются. Сами вы зайдёте в базу с ключом запуска /UC7731 — в стартере его прописывают в поле дополнительных параметров запуска базы.
Способ 4. Блокировка начала сеансов в консоли кластера
Для серверной базы то же самое можно сделать на уровне платформы, без входа в программу. Откройте свойства базы в консоли кластера и включите:
- ☑️ «Блокировка начала сеансов включена»;
- 📝 «Сообщение блокировки» и «Код разрешения»;
- ⏰ время начала и окончания;
- ☑️ «Блокировка регламентных заданий включена».
Эта блокировка запрещает новые подключения. Уже открытые сеансы после неё нужно удалить способом 1 или 2.
Способ 5. Файловая база: закрыть файл на сервере
В файловом режиме нет ни кластера, ни сеансов в его смысле. Каждый клиент держит открытым файл 1Cv8.1CD.
Если пользователь ушёл домой с открытой 1С, а блокировка через программу не сработала:
- На компьютере, где лежит папка базы, откройте
Управление компьютером → Общие папки → Открытые файлы. - Найдите строки с путём к
1Cv8.1CDи именем пользователя. - Закройте их через контекстное меню.
Если база открыта на терминальном сервере, процесс 1cv8.exe или 1cv8c.exe нужного пользователя можно завершить в диспетчере задач.
Обрыв записи в файловую базу может повредить 1Cv8.1CD. Делайте это, только когда пользователь точно ничего не проводит, и после этого проверьте базу утилитой «Тестирование и исправление» на копии.
Монопольный режим: когда он нужен и что ему мешает
Монопольный доступ нужен не для любой работы в Конфигураторе. Его требуют:
- 🔄 обновление конфигурации базы данных со сменой структуры (новые реквизиты, регистры);
- 📥 загрузка информационной базы из файла
.dt; - 🛠 «Тестирование и исправление информационной базы»;
- 🗑 удаление помеченных объектов в некоторых конфигурациях.
Выгрузка в .dt, правка модулей и сравнение конфигураций монопольного доступа не требуют.
Чтобы получить монопольный режим, в базе не должно быть никаких других сеансов. Мешают не только пользователи:
- Фоновые и регламентные задания — постоянно перезапускаются.
- COM-соединения: внешние обработки, обмен с сайтом, интеграции.
- Веб-сервисы и HTTP-сервисы, если база опубликована на веб-сервере.
- Второй Конфигуратор, открытый вами же на другом компьютере.
- Спящие сеансы от оборванных подключений.
Поэтому порядок такой: сначала блокировка новых сеансов и регламентных заданий, потом удаление оставшихся, потом обновление.
В актуальных версиях платформы при ошибке монопольного режима Конфигуратор для серверной базы может сам предложить завершить мешающие сеансы и повторить операцию. Без прав администратора кластера это не сработает.
Почему сеансы зависают и блокируют работу
Зависший сеанс — это не всегда «пользователь забыл выйти». Разберите причину, чтобы не завершать одно и то же каждый день.
Ещё одна частая причина — оборванный сеанс терминального сервера. Пользователь закрыл окно RDP крестиком, его сеанс Windows остался висеть, а вместе с ним и 1С. Настройте на терминальном сервере лимит для отключённых сеансов Windows — проблема уйдёт сама.
Кому разрешено управлять сеансами: права и пароли
Управление сеансами завязано на два независимых уровня прав.
Уровень информационной базы.
- Для входа в Конфигуратор и просмотра активных пользователей нужно право «Администрирование». В типовых конфигурациях оно входит в профиль «Администратор».
- Для монопольного режима — право «Монопольный режим».
- Блокировку работы пользователей в программе может установить только пользователь с полными правами.
Уровень кластера серверов.
- Пока в кластере не заведён ни один администратор, консолью может пользоваться любой, кто имеет к ней сетевой доступ. Это небезопасно.
- Заведите администратора кластера: в консоли
Кластер → Администраторы → Создать. После этого любые действия с сеансами потребуют его имя и пароль — в консоли, вracи в форме «Активные пользователи» программы. - Отдельно можно завести администраторов центрального сервера (агента): узел
Администраторыпод центральным сервером.
| Действие | Права в базе | Права в кластере |
|---|---|---|
| Смотреть активных пользователей в Конфигураторе | Администрирование | Не нужны |
| Удалить сеанс в консоли или rac | Не нужны | Администратор кластера |
| Завершить сеанс из формы программы | Полные права | Администратор кластера |
| Блокировка начала сеансов в консоли | Не нужны | Администратор кластера |
| Блокировка работы пользователей в программе | Полные права | Для серверной базы — администратор кластера |
Пароль администратора кластера храните в менеджере паролей отдела ИТ, а не в голове одного человека. Если он потерян, придётся останавливать службу агента сервера 1С и восстанавливать настройки кластера из резервной копии — это обрыв работы для всех баз на сервере.
Как не тратить время на ручное завершение сеансов
Регулярные обновления и обслуживание лучше вести по сценарию, а не вылавливать пользователей по одному.
Ночное обновление через параметры запуска
В конфигурациях на БСП есть служебные параметры запуска:
/CЗавершитьРаботуПользователей— устанавливает блокировку и ждёт, пока все выйдут;/CРазрешитьРаботуПользователей— снимает блокировку.
Их используют в пакетных файлах вместе с ключом /UC<код>. Пример запуска для серверной базы (номер платформы в пути подставьте свой):
"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" ENTERPRISE /S"srv01\buh" /N"Администратор" /P"пароль" /UC7731 /CЗавершитьРаботуПользователей
После этого в скрипте идёт обновление в пакетном режиме Конфигуратора и снятие блокировки. Пароль в открытом виде в bat-файле не оставляйте: храните скрипт на сервере с доступом только для администратора.
Отчёт по сеансам через rac
Короткий скрипт, который раз в час выгружает список сеансов в журнал, помогает найти «хронических» нарушителей:
rac session list --cluster=<UUID_кластера> --infobase=<UUID_базы> > C:\logs\sessions_%DATE:~-4%%DATE:~3,2%%DATE:~0,2%.txt
По такому журналу видно, кто оставляет 1С открытой на ночь и с каких компьютеров идут обрывы.
Профилактика
Частые вопросы
Можно ли завершить чужой сеанс прямо из Конфигуратора?
Увидит ли пользователь, что его отключили?
Сколько лицензий занимает зависший сеанс?
rac session list --licenses.