Выгнать всех из базы 1С перед обновлением: пять рабочих способов

· 9 мин

Содержание

Завершить работу всех пользователей 1С проще всего из самой программы: Администрирование → Обслуживание → Блокировка работы пользователей. Задаёте время, текст сообщения и код разрешения, нажимаете «Установить блокировку». Через несколько минут программа сама закроет сеансы и не пустит новых.

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

Перед стартом: кто сейчас в базе и чем вы рискуете

Сначала посмотрите, кто подключён. Это две минуты, и они отвечают на вопрос, какой способ выбрать.

Где смотреть список:

  • 👥 в программе на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11): Администрирование → Обслуживание → Активные пользователи;
  • 🧩 в любой конфигурации: меню «Все функции» → ветка «Стандартные» → «Активные пользователи»;
  • 🛠 в Конфигураторе: Администрирование → Активные пользователи;
  • 🖥 в клиент-серверном варианте — консоль кластера, ветка «Сеансы» нужной базы.

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

Что теряют пользователи при принудительном завершении:

  • 📝 открытые и не записанные документы и справочники;
  • 📊 сформированные, но не сохранённые отчёты;
  • 🔄 незавершённые транзакции — платформа откатывает их, данные в базе остаются целыми.

Напишите коллегам в рабочий чат за 10–15 минут до отключения. Блокировка тоже предупредит их, но сообщение в чате прочитают быстрее.

Какой способ подходит:

СпособВариант базыКогда братьРиски
Блокировка из программыфайловый и клиент-серверныйплановые работы, обновлениепочти нет, если дать время на сохранение
Консоль кластераклиент-серверныйнужно убрать 1–2 сеанса или всех сразуработа в сеансе теряется без предупреждения
Параметр запуска / racоба / клиент-серверныйночные регламенты, скриптыошибка в скрипте закроет не ту базу
Диспетчер задач, службаобавсё остальное не сработалообрываются сеансы всех баз на сервере

Способ 1. Как завершить работу пользователей из режима 1С:Предприятие

Этот способ есть во всех типовых конфигурациях на БСП. Работает и в файловом, и в клиент-серверном варианте. Нужны права администратора в базе.

  1. Откройте Администрирование → Обслуживание.
  2. Перейдите по ссылке «Блокировка работы пользователей».
  3. Заполните сообщение — его увидят все: например, «Обновление базы, работа будет доступна после 20:30».
  4. Укажите время начала и окончания блокировки. Конец можно оставить пустым — тогда блокировка будет действовать, пока вы её не снимете.
  5. Задайте код разрешения: любое слово, например obnov. Запомните его.
  6. Нажмите «Установить блокировку».

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

Как зайти в заблокированную базу самому: добавьте к параметрам запуска /UC с вашим кодом. В окне запуска выберите базу → «Изменить» → последний шаг мастера, поле «Дополнительные параметры запуска»:

/UCobnov

Без кода в базу не войдёт никто, включая администратора. Поэтому код не теряйте.

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

Если отведённое время прошло, а кто-то остался в базе, откройте «Активные пользователи». Оставшиеся сеансы обычно фоновые задания или COM-соединения — их добивают через консоль кластера (способ 2). В клиент-серверной базе в списке активных пользователей есть команда завершения сеанса — программа попросит логин и пароль администратора кластера, если он задан.

Способ 2. Отключение сеансов в консоли кластера серверов 1С

Для клиент-серверной базы это самый быстрый ручной путь. Консоль называется «Администрирование серверов 1С Предприятия» и ставится вместе с сервером или клиентом.

  1. Запустите консоль и раскройте: центральный сервер → «Кластеры» → ваш кластер → «Информационные базы» → нужная база.
  2. Выберите ветку «Сеансы». Справа — все подключения: пользователь, компьютер, приложение, время начала.
  3. Выделите сеансы. Для всех — щёлкните в списке и нажмите Ctrl+A.
  4. Правая кнопка мыши → «Удалить». Подтвердите.

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

Не путайте ветки «Сеансы» и «Соединения». Удаление соединения рвёт текущую связь, но сеанс может переподключиться. Для выгрузки людей удаляйте именно сеансы.

Если консоль не открывается

  • 🔌 консоль не видит сервер — проверьте, что служба агента запущена, а порт 1540 не закрыт брандмауэром;
  • 🧱 «Класс не зарегистрирован» — консоль не знает о компоненте radmin.dll. Зарегистрируйте её от имени администратора той же разрядности, что и консоль:
regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Подставьте номер своей версии платформы — он совпадает с папкой в C:\Program Files\1cv8\.

Способ 3. Блокировка начала сеансов и регламентных заданий

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

В консоли: правой кнопкой по базе → «Свойства». Нужны поля:

ПолеЧто ставить
Блокировка начала сеансов включенафлажок
Начало / Конецинтервал работ; можно оставить пустыми
Сообщениетекст для пользователей
Код разрешениякод для входа администратора через /UC
Блокировка регламентных заданий включенафлажок

Для сохранения консоль попросит имя и пароль администратора информационной базы.

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

  1. Включить блокировку регламентных заданий.
  2. Включить блокировку начала сеансов с кодом разрешения.
  3. Удалить оставшиеся сеансы в ветке «Сеансы».
  4. Зайти в Конфигуратор с параметром /UC<код> и выполнить работы.
  5. Снять оба флажка.

Блокировка в консоли кластера и блокировка из формы программы — один и тот же механизм платформы. Поставили в одном месте — увидите в другом.

В файловой базе консоли кластера нет. Там блокировку ставят только из формы программы (способ 1) или параметром запуска (способ 5).

Способ 4. Аварийное завершение через диспетчер задач и службы

Это крайний случай: сеанс не удаляется, форма блокировки висит, а работы нужно начинать.

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

Файловая база

Пользователи держат файл 1Cv8.1CD открытым через общую папку. Если кто-то ушёл, не закрыв 1С:

  • 🖥 на компьютере пользователя или терминальном сервере завершите процессы 1cv8c.exe (тонкий клиент) и 1cv8.exe (толстый клиент, Конфигуратор) этого пользователя;
  • 📂 на компьютере, где лежит база: Управление компьютером → Общие папки → Открытые файлы. Найдите 1Cv8.1CD, правой кнопкой → «Закрыть открытый файл». Это закроет доступ конкретному пользователю;
  • 🌐 если база опубликована на веб-сервере, перезапустите пул приложений IIS или службу Apache — веб-клиенты держат сеансы через него.

Клиент-серверная база

  • ⚙️ процесс rphost.exe обслуживает сеансы сразу нескольких баз. Его завершение рвёт всех, кто на нём работал, включая пользователей других баз;
  • 🔁 перезапуск службы «Агент сервера 1С:Предприятия 8.3» обрывает все сеансы всех баз кластера. Делайте это только вне рабочего времени.

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

Способ 5. Автоматизация: параметр запуска и скрипт rac

Ночные обновления и выгрузки удобнее делать без участия человека.

Параметр /C для типовых конфигураций

Конфигурации на БСП понимают служебный параметр запуска. Он ставит блокировку и выгружает пользователей:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"obnov"

После работ так же снимают блокировку:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /C"РазрешитьРаботуПользователей" /UC"obnov"

Для файловой базы вместо /S"srv1c\buh" пишут /F"D:\Base\Buh". Первая команда открывает сеанс и ждёт, пока все выйдут, — запускайте её заранее, а не в момент старта работ.

Скрипт rac для клиент-серверной базы

Утилита rac работает через сервер администрирования ras. Его запускают отдельно — службой или командой ras cluster --daemon; порт по умолчанию 1545. Скрипт PowerShell ниже ставит блокировку и удаляет все сеансы одной базы:

$rac      = 'C:\Program Files\1cv8\8.3.xx.xxxx\bin\rac.exe'  # путь к своей версии
$server   = 'localhost:1545'
$baseName = 'buh'           # имя базы в кластере
$ibUser   = 'Администратор' # пользователь базы
$ibPwd    = 'пароль'

function Get-Val($line) { ($line -split ':', 2)[1].Trim() }

# 1. Идентификатор кластера (первый в списке)
$cluster = Get-Val ((& $rac $server cluster list | Select-String '^cluster\s+:')[0].Line)

# 2. Идентификатор базы по имени
$ib = $null; $cur = $null
foreach ($line in (& $rac $server infobase summary list --cluster=$cluster)) {
    if ($line -match '^infobase\s+:') { $cur = Get-Val $line }
    if ($line -match '^name\s+:' -and (Get-Val $line) -eq $baseName) { $ib = $cur }
}
if (-not $ib) { throw "База $baseName не найдена в кластере" }

# 3. Блокировка сеансов и регламентных заданий
& $rac $server infobase update --cluster=$cluster --infobase=$ib `
    --infobase-user=$ibUser --infobase-pwd=$ibPwd `
    --sessions-deny=on --scheduled-jobs-deny=on --permission-code=obnov `
    --denied-message='Идёт обновление базы'

# 4. Удаление всех сеансов базы
$sessions = & $rac $server session list --cluster=$cluster --infobase=$ib |
    Select-String '^session\s+:' | ForEach-Object { Get-Val $_.Line }
foreach ($s in $sessions) {
    & $rac $server session terminate --cluster=$cluster --session=$s
}
Write-Host "Удалено сеансов: $($sessions.Count)"

Если на кластере задан администратор, добавьте к командам --cluster-user и --cluster-pwd. Снять блокировку — та же команда infobase update с --sessions-deny=off --scheduled-jobs-deny=off. Полный перечень ключей покажет rac help infobase.

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

Почему пользователи не выходят из 1С и как это предупредить

Сеанс, который «не удаляется» или возвращается через минуту, почти всегда имеет понятную причину.

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

Профилактика, которая снимает большую часть проблем:

  • 🗓 закрепите в регламенте окно обслуживания: например, обновления по вторникам после 19:00. Пользователи привыкают сохраняться заранее;
  • ⏱ ставьте блокировку с запасом 10–15 минут между сообщением и отключением;
  • 🔗 держите список внешних подключений к базе: обмены, сайт, мобильные агенты. Перед работами пройдитесь по нему;
  • 🧾 после работ проверяйте, что блокировка снята и регламентные задания снова разрешены. Забытый флажок останавливает обмены на дни;
  • 👤 настройте в консоли администратора кластера: без пароля любой, у кого есть консоль, может удалить чужие сеансы.

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

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