Отключаем пользователей от базы 1С перед обновлением: Конфигуратор, блокировка сеансов и консоль кластера

· 9 мин

Содержание

В самом Конфигураторе нет кнопки «выгнать всех». Он показывает, кто сидит в базе (Администрирование → Активные пользователи), а при обновлении конфигурации базы данных в клиент-серверном варианте предлагает команду «Завершить сеансы и повторить». Чтобы гарантированно отключить всех пользователей 1С и не пустить их обратно, ставят блокировку начала сеансов, а затем принудительно завершают активные сеансы: в типовой конфигурации, в консоли кластера серверов или командой rac.

Порядок отличается для клиент-серверной и файловой базы, а ночное обновление удобно отдать скрипту. Всё сказанное относится к платформе 8.3 и типовым конфигурациям на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, ERP).

Перед тем как выгонять пользователей: подготовка

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

Что сделать заранее:

  • 📢 Предупредить людей. Письмо или сообщение в чат за 15–30 минут: «В 19:00 база закрывается на обновление, сохраните документы».
  • 🕐 Выбрать окно. Не в день сдачи отчётности и не во время закрытия месяца, когда бухгалтер час ждёт расчёт себестоимости.
  • ⏸ Проверить фоновые задачи. Обмен с сайтом, загрузка банковских выписок, регламентные задания тоже держат сеансы. Их придётся остановить вместе с людьми.
  • 💾 Сделать копию. Если отключение нужно ради обновления или тестирования базы, сначала выгрузите .dt или сделайте резервную копию СУБД.
  • 🔑 Проверить права. Для блокировки через типовую конфигурацию нужна роль администратора, для консоли кластера — логин и пароль администратора кластера, если он задан.

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

Как через Конфигуратор посмотреть, кто сидит в базе

Откройте базу в режиме Конфигуратора и выберите Администрирование → Активные пользователи. Появится список текущих подключений.

В списке видно:

КолонкаЧто показывает
ПользовательИмя пользователя информационной базы
ПриложениеТонкий клиент, веб-клиент, Конфигуратор, фоновое задание, COM-соединение
Начало работыКогда открыт сеанс
КомпьютерИмя машины, с которой зашёл пользователь

Отсюда сеанс не завершить, но список полезен. Вы сразу видите, кому звонить, и замечаете «невидимых» участников: фоновые задания, второй Конфигуратор у коллеги-программиста, COM-соединение от внешней системы.

Если в списке висит сеанс человека, который давно ушёл домой, значит у него открыт клиент на компьютере или на терминальном сервере. Такие сеансы и приходится завершать принудительно.

Блокировка входа и монопольный режим

Выгнать пользователей мало: через минуту кто-то запустит 1С снова. Поэтому сначала запрещают новые входы, и только потом отключают тех, кто уже внутри.

Блокировка через типовую конфигурацию

В конфигурациях на БСП есть встроенная обработка. Зайдите в режиме 1С:Предприятие под администратором, откройте раздел Администрирование, группу обслуживания, команду «Блокировка работы пользователей» (в разных релизах группа называется по-разному, ищите в разделе по слову «Блокировка»).

Заполните форму:

  1. Сообщение — текст, который увидят пользователи: «Идёт обновление, вход после 21:00».
  2. Начало и окончание — интервал блокировки. Можно поставить начало через 10 минут, чтобы люди успели сохраниться.
  3. Код разрешения — пароль, с которым администратор войдёт в заблокированную базу. Например, UPD2024.
  4. Нажмите «Установить блокировку».

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

Как войти в заблокированную базу

Блокировка действует и на Конфигуратор. Войти можно только с кодом разрешения — параметром /UC. В окне запуска 1С выберите базу, нажмите «Изменить», на последней странице в поле дополнительных параметров запуска впишите:

/UCUPD2024

Или запустите из командной строки:

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /UCUPD2024

Что такое монопольный режим

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

Принудительно завершить сеансы пользователей 1С

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

СпособКогда подходитРиски
Блокировка БСП с автозавершениемПлановое обновление, есть 10–15 минутПочти нет, людей предупредили
«Завершить сеансы и повторить» в КонфигуратореНужно обновить конфигурацию базы прямо сейчасПользователи теряют несохранённое
Консоль кластера или racСеанс завис, БСП нет, база не открываетсяОбрыв без предупреждения

Через Конфигуратор при обновлении

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

Перед нажатием убедитесь, что никто не проводит документы в эту минуту: сеансы обрываются без предупреждения.

Через «Активные пользователи» в режиме предприятия

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

Отключение пользователей через консоль кластера серверов 1С

Консоль «Администрирование серверов 1С:Предприятия» работает только с клиент-серверными базами. Её ставят вместе с сервером 1С или отдельно, в составе дистрибутива платформы.

Порядок действий:

  1. Откройте консоль, разверните Central 1C:Enterprise 8.3 Servers → имя сервера → Кластеры → кластер → Информационные базы.
  2. Найдите нужную базу и откройте её свойства.
  3. Включите флажок «Блокировка начала сеансов включена», задайте время начала и окончания, сообщение и код разрешения.
  4. Если нужно остановить регламентные задания, включите «Блокировка регламентных заданий включена».
  5. Сохраните свойства (понадобится логин и пароль администратора информационной базы).
  6. Разверните базу, откройте ветку «Сеансы».
  7. Выделите все сеансы (Ctrl+A), правой кнопкой выберите «Удалить».

После удаления сеанса у пользователя появится сообщение о разрыве соединения. Если блокировка уже стоит, войти снова он не сможет.

Удаляйте именно сеансы, а не рабочие процессы. Перезапуск рабочего процесса rphost отключит пользователей всех баз на этом сервере, а не только вашей. Делать это можно только в согласованное окно, когда сервер обслуживает одну базу или все базы свободны.

Свой сеанс консоли и Конфигуратора

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

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

В файловом варианте нет кластера и нет консоли. Есть только файл 1Cv8.1CD в каталоге базы, который открыт у всех работающих пользователей.

Что работает:

  • ✅ Блокировка БСП. Работает и в файловой базе: клиенты сами получают предупреждение и закрываются к началу блокировки. Нужно, чтобы программы у пользователей были запущены и не зависли.
  • ✅ Список в Конфигураторе. Администрирование → Активные пользователи показывает, кого обзвонить.
  • ✅ Закрытие файла на файловом сервере. Если база лежит в общей папке на Windows-сервере, откройте Управление компьютером → Общие папки → Открытые файлы, найдите 1Cv8.1CD и закройте его у нужного пользователя.

Закрытие файла с сервера — крайняя мера: если в этот момент шла запись, базу придётся проверять через «Тестирование и исправление». Перед этим сделайте копию каталога базы.

Если база на компьютере пользователя

Когда база лежит на одном из рабочих компьютеров, а остальные подключаются к ней по сети, открытые файлы смотрят там же: в оснастке «Управление компьютером» этого компьютера. Альтернатива — попросить людей закрыть 1С и проверить, что процесс 1cv8c.exe или 1cv8.exe пропал в диспетчере задач.

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

Скрипт: как отключить всех пользователей 1С автоматически

Ночное обновление удобно запускать по расписанию. Есть два пути.

Через параметры запуска типовой конфигурации

Конфигурации на БСП понимают специальные параметры запуска /C:

  • /C"ЗавершитьРаботуПользователей" — устанавливает блокировку и завершает сеансы;
  • /C"РазрешитьРаботуПользователей" — снимает блокировку.

Пример bat-файла для клиент-серверной базы:

@echo off
set V8="C:\Program Files\1cv8\common\1cestart.exe"
set BASE=/S"srv1c\buh"
set USR=/N"Администратор" /P"пароль"

rem 1. Блокируем вход и выгоняем пользователей
%V8% ENTERPRISE %BASE% %USR% /C"ЗавершитьРаботуПользователей" /UCUPD2024 /DisableStartupMessages

rem 2. Здесь — обновление, выгрузка .dt и т.д. с ключом /UCUPD2024

rem 3. Снимаем блокировку
%V8% ENTERPRISE %BASE% %USR% /C"РазрешитьРаботуПользователей" /UCUPD2024 /DisableStartupMessages

Код разрешения в первом вызове задаёт пароль блокировки, дальше его указывают во всех служебных запусках.

Через rac на сервере

Утилита rac лежит в каталоге bin платформы и работает через сервер администрирования ras (по умолчанию порт 1545). Сервис ras должен быть запущен.

Пример на PowerShell, который блокирует вход и удаляет все сеансы одной базы:

$rac  = "C:\Program Files\1cv8\8.3.xx.xxxx\bin\rac.exe"
$host_ = "localhost:1545"
$baseName = "buh"

# Кластер
$cluster = ((& $rac cluster list $host_ | Select-String '^cluster\s*:') -split ':')[1].Trim()

# Информационная база
$lines = & $rac infobase summary list --cluster=$cluster $host_
for ($i = 0; $i -lt $lines.Count; $i++) {
    if ($lines[$i] -match '^name\s*:\s*(.+)$' -and $Matches[1].Trim() -eq $baseName) {
        $ib = ($lines[$i-1] -split ':')[1].Trim()
    }
}

# Блокировка начала сеансов и регламентных заданий
& $rac infobase update --cluster=$cluster --infobase=$ib `
    --infobase-user="Администратор" --infobase-pwd="пароль" `
    --sessions-deny=on --scheduled-jobs-deny=on `
    --denied-message="Обновление базы" --permission-code="UPD2024" $host_

# Завершение всех сеансов базы
& $rac session list --cluster=$cluster --infobase=$ib $host_ |
    Select-String '^session\s*:' | ForEach-Object {
        $sid = ($_ -split ':')[1].Trim()
        & $rac session terminate --cluster=$cluster --session=$sid $host_
    }

Если у кластера задан администратор, добавьте к командам --cluster-user и --cluster-pwd. Полный список ключей для вашей версии показывает rac help session и rac help infobase.

Снять блокировку после работ — та же команда infobase update с --sessions-deny=off --scheduled-jobs-deny=off.

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

Если пользователи не отключаются: частые проблемы

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

Ещё одна частая ловушка — забыть снять блокировку. Утром бухгалтерия не может войти, а администратор ещё спит. Ставьте время окончания блокировки в форме или в консоли, тогда она снимется сама.

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

Можно ли выгнать пользователей прямо из Конфигуратора без консоли кластера?
Только при обновлении конфигурации базы данных в клиент-серверной базе: платформа предложит «Завершить сеансы и повторить». Для остальных случаев нужна блокировка БСП, консоль кластера или rac.
Пользователь потеряет данные при принудительном отключении?
Записанные документы сохранятся. Несохранённые формы и незавершённая транзакция пропадут, транзакция откатится целиком.
Блокировка мешает регламентным заданиям?
Блокировка начала сеансов и блокировка регламентных заданий — разные флажки. Для обновления включайте оба.
Можно ли поставить блокировку заранее, например на 22:00?
Да. Укажите время начала в будущем: до этого момента люди работают как обычно, а в назначенное время вход закроется.
Видят ли пользователи сообщение блокировки?
Да, текст из поля «Сообщение» показывается при попытке входа. Пишите в нём, когда база снова будет доступна и к кому обращаться.