Как выгнать зависших пользователей из базы 1С и получить монопольный доступ

· 9 мин

Содержание

Сам Конфигуратор 1С 8.3 сеансы пользователей только показывает: Администрирование → Активные пользователи. Завершают их другими средствами. Для серверной базы — в консоли «Администрирование серверов 1С Предприятия» (сеанс → контекстное меню → Удалить) или командой rac session terminate. Для файловой и серверной базы на типовой конфигурации — через форму «Блокировка работы пользователей»: она предупреждает людей и закрывает их сеансы сама.

Какой способ выбрать, зависит от ситуации. Нужно срочно убрать один зависший сеанс — консоль кластера. Нужно освободить базу под обновление ночью — блокировка с кодом разрешения. Файловая база без доступа к пользователям — закрытие файла 1Cv8.1CD на стороне сервера, но это крайняя мера.

С чего начать: кто сейчас держит базу

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

В Конфигураторе. Откройте Администрирование → Активные пользователи. В списке видно:

  • 👤 имя пользователя информационной базы;
  • 💻 компьютер, с которого он подключён;
  • 🧩 приложение: «1С:Предприятие» (толстый или тонкий клиент), «Конфигуратор», «Фоновое задание», «COM-соединение», веб-клиент;
  • 🕐 время начала работы.

Этот список работает и для файловой, и для серверной базы. Кнопки «завершить» в нём нет — это справочная форма.

В консоли кластера (только серверная база). Разверните Центральные серверы → <сервер> → Кластеры → <кластер> → Информационные базы → <база> → Сеансы. Здесь информации больше:

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

В самой программе. В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть форма «Активные пользователи» в разделе Администрирование. Для серверной базы в ней есть команда «Завершить сеанс»: программа запросит пароль администратора кластера, если он задан.

Сеансы с приложением «Фоновое задание» почти всегда запускают регламентные задания: загрузку курсов валют, обмен, полнотекстовый индекс. Если завершить такой сеанс и не заблокировать регламентные задания, через минуту он появится снова.

Как принудительно остановить сеанс: пошагово по способам

Способ 1. Консоль администрирования серверов

Подходит для серверной базы, когда нужно убрать один или несколько конкретных сеансов.

  1. Запустите оснастку «Администрирование серверов 1С Предприятия» на сервере или на компьютере с установленными компонентами администрирования.
  2. Если центрального сервера нет в дереве — добавьте его: Действие → Создать → Центральный сервер 1С:Предприятия, имя сервера, порт агента 1540.
  3. Откройте список сеансов нужной базы (путь выше).
  4. Выделите сеанс, в контекстном меню выберите Удалить. Можно выделить несколько строк с Ctrl или Shift.
  5. Подтвердите. Пользователь увидит сообщение о том, что сеанс завершён администратором, и клиент закроется.

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

Способ 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. Блокировка работы пользователей в программе

Самый мягкий способ. Работает и в файловой базе, где консоли кластера нет.

  1. В программе откройте раздел Администрирование и найдите команду «Блокировка работы пользователей» (в Бухгалтерии 3.0 она в подразделе обслуживания).
  2. Заполните сообщение для пользователей: «Обновление базы, работа возобновится в 22:30».
  3. Укажите время начала и окончания блокировки.
  4. Задайте код разрешения, например 7731.
  5. Нажмите «Установить блокировку».

Работающие пользователи получат предупреждение. Когда наступит время начала, их сеансы закроются. Сами вы зайдёте в базу с ключом запуска /UC7731 — в стартере его прописывают в поле дополнительных параметров запуска базы.

Способ 4. Блокировка начала сеансов в консоли кластера

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

  • ☑️ «Блокировка начала сеансов включена»;
  • 📝 «Сообщение блокировки» и «Код разрешения»;
  • ⏰ время начала и окончания;
  • ☑️ «Блокировка регламентных заданий включена».

Эта блокировка запрещает новые подключения. Уже открытые сеансы после неё нужно удалить способом 1 или 2.

Способ 5. Файловая база: закрыть файл на сервере

В файловом режиме нет ни кластера, ни сеансов в его смысле. Каждый клиент держит открытым файл 1Cv8.1CD.

Если пользователь ушёл домой с открытой 1С, а блокировка через программу не сработала:

  1. На компьютере, где лежит папка базы, откройте Управление компьютером → Общие папки → Открытые файлы.
  2. Найдите строки с путём к 1Cv8.1CD и именем пользователя.
  3. Закройте их через контекстное меню.

Если база открыта на терминальном сервере, процесс 1cv8.exe или 1cv8c.exe нужного пользователя можно завершить в диспетчере задач.

Обрыв записи в файловую базу может повредить 1Cv8.1CD. Делайте это, только когда пользователь точно ничего не проводит, и после этого проверьте базу утилитой «Тестирование и исправление» на копии.

Какая у вас база и что нужно сделать?

Монопольный режим: когда он нужен и что ему мешает

Монопольный доступ нужен не для любой работы в Конфигураторе. Его требуют:

  • 🔄 обновление конфигурации базы данных со сменой структуры (новые реквизиты, регистры);
  • 📥 загрузка информационной базы из файла .dt;
  • 🛠 «Тестирование и исправление информационной базы»;
  • 🗑 удаление помеченных объектов в некоторых конфигурациях.

Выгрузка в .dt, правка модулей и сравнение конфигураций монопольного доступа не требуют.

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

  1. Фоновые и регламентные задания — постоянно перезапускаются.
  2. COM-соединения: внешние обработки, обмен с сайтом, интеграции.
  3. Веб-сервисы и HTTP-сервисы, если база опубликована на веб-сервере.
  4. Второй Конфигуратор, открытый вами же на другом компьютере.
  5. Спящие сеансы от оборванных подключений.

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

В актуальных версиях платформы при ошибке монопольного режима Конфигуратор для серверной базы может сам предложить завершить мешающие сеансы и повторить операцию. Без прав администратора кластера это не сработает.

Почему сеансы зависают и блокируют работу

Зависший сеанс — это не всегда «пользователь забыл выйти». Разберите причину, чтобы не завершать одно и то же каждый день.

Диагностика: выберите симптом

Ещё одна частая причина — оборванный сеанс терминального сервера. Пользователь закрыл окно 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С открытой на ночь и с каких компьютеров идут обрывы.

Профилактика

Чтобы сеансы не мешали обслуживанию
Выполнено: 0 / 6

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

Можно ли завершить чужой сеанс прямо из Конфигуратора?
Нет. В Конфигураторе 8.3 список активных пользователей только для просмотра. Завершают сеансы в консоли кластера, через rac или формой блокировки в программе.
Увидит ли пользователь, что его отключили?
Да. При удалении сеанса из консоли клиент показывает сообщение о том, что сеанс завершён администратором, и закрывается. Незаписанные изменения теряются.
Сколько лицензий занимает зависший сеанс?
Пока сеанс клиента существует в кластере, он держит клиентскую лицензию. Проверить, кто сколько занимает, можно командой rac session list --licenses.
Почему после удаления сеанса база всё равно не переходит в монопольный режим?
Почти всегда в базе остаются фоновые задания или COM-подключения. Включите блокировку регламентных заданий и повторно проверьте список сеансов.
Что будет с документом, который проводился в момент удаления сеанса?
Незавершённая транзакция откатится. Документ останется в том состоянии, в котором был до проведения. Его нужно провести заново.