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

· 10 мин

Содержание

Чтобы отключить все сеансы 1С в клиент-серверной базе, откройте консоль администрирования серверов 1С, раскройте Информационные базы → <ваша база> → Сеансы, выделите все строки (Ctrl+A) и выберите в контекстном меню «Удалить». Чтобы пользователи сразу не зашли обратно, в свойствах базы включите «Блокировка начала сеансов включена» и задайте код разрешения.

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

Что проверить, прежде чем отключать сеансы

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

Перед отключением:

  • 📢 Предупредите людей. Письмо или сообщение в мессенджер за 10–15 минут. Так никто не потеряет набранные данные.
  • 🔍 Посмотрите, кто внутри. Сеансы бывают не только пользовательские: фоновые задания, COM-соединения, веб-сервисы, Конфигуратор. Если висит сеанс Конфигуратора, уточните у разработчика, не сохраняет ли он изменения прямо сейчас.
  • 🔑 Найдите пароль администратора кластера, если он задан. Без него консоль не даст удалять сеансы и менять свойства базы.
  • 💾 Решите, нужна ли копия. Если после отключения вы обновляете конфигурацию или загружаете .dt, резервная копия обязательна. Это то самое действие, ради которого всех и выгоняют.

Какой способ выбрать — зависит от типа базы и от того, что сломалось:

СпособКогда подходитРиски
Консоль кластераКлиент-серверная база, всё работает штатноМинимальные: сеансы закрываются, процессы сервера живы
Блокировка из программыЛюбая база на типовой конфигурацииНужны права администратора в базе; в клиент-серверном варианте — ещё и доступ к кластеру
Закрытие файлов на файловом сервереФайловая база в общей папкеПользователь теряет несохранённое
Диспетчер задачСеанс «завис» и не удаляетсяМожно убить чужие базы, если процесс обслуживает несколько
Остановка службы сервераСервер не отвечает, нужен полный перезапускОбрываются сеансы ВСЕХ баз на сервере
Скрипт на racРегулярные ночные работыОшибка в скрипте — отключение не той базы

Как отключить все сеансы 1С через консоль администрирования серверов

Консоль кластера — основной инструмент для серверных баз. Она ставится вместе с платформой (компонент «Администрирование сервера 1С:Предприятия») и открывается из меню «Пуск» как «Администрирование серверов 1С Предприятия».

Удаление сеансов

  1. Откройте консоль. Если сервер ещё не добавлен, щёлкните правой кнопкой по Central 1C:Enterprise 8.3 servers → Создать → Центральный сервер 1С:Предприятия 8.3 и укажите имя сервера. Порт агента по умолчанию — 1540.
  2. Раскройте <сервер> → Кластеры → <кластер> → Информационные базы → <база> → Сеансы.
  3. Справа появится список: пользователь, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание), время начала.
  4. Щёлкните по любой строке, нажмите Ctrl+A, затем правую кнопку мыши → «Удалить».
  5. Подтвердите. Через несколько секунд нажмите F5 — список должен опустеть.

Если нужно отключить сеансы сразу всех баз кластера, откройте узел Кластеры → <кластер> → Сеансы (не внутри конкретной базы). Там собраны сеансы по всем информационным базам.

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

Блокировка новых подключений

Удалённые пользователи тут же попробуют войти обратно. Чтобы этого не случилось:

  1. В консоли щёлкните правой кнопкой по базе → «Свойства».
  2. Введите логин и пароль администратора информационной базы (пользователя 1С с полными правами).
  3. Отметьте «Блокировка начала сеансов включена».
  4. Заполните «Начало» и «Конец» блокировки — или оставьте пустыми, тогда она действует, пока вы её не снимете.
  5. В поле «Сообщение» напишите, что увидят пользователи: «Обновление базы, работа возобновится в 21:00».
  6. В «Код разрешения» впишите любую строку, например upd2026.
  7. Отметьте «Блокировка регламентных заданий включена».
  8. Нажмите «ОК», затем удалите оставшиеся сеансы.

Теперь вход возможен только с параметром кода разрешения. Сами вы зайдёте так:

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S "srv1c\buh" /UC upd2026

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

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

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

regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll"

Номер версии подставьте свой: он виден в названии папки внутри C:\Program Files\1cv8\. Версия консоли и сервера должна совпадать.

Завершение работы пользователей из самой программы 1С

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

В Бухгалтерии 3.0 путь такой: Администрирование → Обслуживание → Блокировка работы пользователей. В ЗУП 3.1 и УТ 11 обработка лежит в том же разделе Администрирование → Обслуживание.

Как пользоваться:

  1. Отметьте «Запретить работу пользователей программы».
  2. Укажите время начала и окончания блокировки и текст сообщения.
  3. Задайте код разрешения.
  4. Нажмите «Установить блокировку».

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

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

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

Для автоматизации есть параметр запуска БСП. Он открывает базу, ставит блокировку и выгоняет пользователей без участия человека:

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

Снять блокировку можно так же, параметром /C "РазрешитьРаботуПользователей" с тем же кодом /UC.

Файловая база: как отключить все сеансы без сервера

У файловой базы нет агента и кластера. Каждый пользователь открывает файл 1Cv8.1CD напрямую, и «сеанс» — это просто процесс 1С на его компьютере. Отсюда три способа.

Через блокировку в программе

Обработка «Блокировка работы пользователей» из предыдущего раздела работает и в файловом варианте. Это самый аккуратный способ: пользователи получают предупреждение и успевают сохранить документы.

Через «Активные пользователи» в Конфигураторе

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

Закрыть открытые файлы на файловом сервере

Если база лежит в общей папке на Windows-сервере, а пользователь недоступен (ушёл, оставив 1С открытой), закройте его подключение к файлу:

  1. На сервере, где лежит папка с базой, нажмите Win+R → compmgmt.msc.
  2. Откройте Общие папки → Открытые файлы.
  3. Найдите строки с путём к 1Cv8.1CD.
  4. Правой кнопкой → «Закрыть открытый файл».

То же самое из командной строки:

openfiles /query /fo table | findstr /i "1Cv8.1CD"

У пользователя 1С выдаст ошибку и закроется. Всё, что он не записал, пропадёт.

Если база опубликована на веб-сервере, процесс IIS тоже держит соединение с файлом. Перед монопольными работами перезапустите пул приложений или остановите публикацию.

Принудительное завершение процессов через диспетчер задач

Этот способ — для случаев, когда сеанс в консоли не удаляется или программа висит.

Какие процессы за что отвечают:

ПроцессГде работаетЧто это
1cv8c.exeКомпьютер пользователяТонкий клиент
1cv8.exeКомпьютер пользователяТолстый клиент и Конфигуратор
rphost.exeСервер 1СРабочий процесс: в нём выполняется код сеансов
rmngr.exeСервер 1СМенеджер кластера
ragent.exeСервер 1САгент сервера

На компьютере пользователя откройте диспетчер задач (Ctrl+Shift+Esc), вкладка «Подробности», найдите 1cv8c.exe или 1cv8.exe → «Снять задачу». На терминальном сервере то же самое делается сразу для всех:

taskkill /F /IM 1cv8c.exe
taskkill /F /IM 1cv8.exe

Команда закроет 1С у всех пользователей терминального сервера, во всех базах.

На сервере 1С можно завершить rphost.exe. Это крайняя мера: один рабочий процесс обслуживает сеансы нескольких баз, и обрываются все они разом. Менеджер кластера запустит новый rphost.exe автоматически. Делайте это только когда сеанс завис намертво, а пользователи уже предупреждены.

rmngr.exe и ragent.exe вручную не убивайте — для них есть остановка службы.

Остановка службы сервера 1С:Предприятия

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

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

Порядок:

  1. Win+R → services.msc.
  2. Найдите службу «Агент сервера 1С:Предприятия 8.3» (в скобках — разрядность, например x86-64).
  3. Правой кнопкой → «Остановить». Дождитесь, пока в диспетчере задач исчезнут ragent.exe, rmngr.exe и все rphost.exe.
  4. Выполните нужные работы.
  5. Запустите службу снова.

Из командной строки PowerShell (от имени администратора):

Get-Service | Where-Object { $_.DisplayName -like "*1C:Enterprise 8.3 Server Agent*" -or $_.DisplayName -like "*Агент сервера 1С*" } | Stop-Service -Force

Пока служба остановлена, администраторы часто чистят сеансовые данные сервера: удаляют папки snccntx* внутри каталога кластера (по умолчанию C:\Program Files\1cv8\srvinfo\reg_1541\). Это помогает, когда после перезапуска в консоли «висят» сеансы, которых уже нет. Удалять эти папки можно только при остановленной службе, и только их — файлы 1CV8Clst.lst и папки с базами не трогайте.

Скрипт отключения сеансов через rac

Для ночных регламентов (обновление, выгрузка .dt, тестирование и исправление) руками сидеть неудобно. Платформа содержит утилиту командной строки rac.exe, которая умеет всё то же, что консоль. Она работает через сервер администрирования ras, который нужно запустить заранее, например так:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\ras.exe" cluster --daemon

По умолчанию ras слушает порт 1545. Его можно зарегистрировать как службу Windows, чтобы не запускать вручную.

Базовые команды rac:

  • rac cluster list — список кластеров и их идентификаторы;
  • rac infobase summary list --cluster=<id> — базы кластера;
  • rac session list --cluster=<id> — все сеансы;
  • rac session terminate --cluster=<id> --session=<id> — завершить один сеанс.

Если на кластере задан администратор, к каждой команде добавьте --cluster-user=<логин> --cluster-pwd=<пароль>. Остальные параметры смотрите в справке rac help session.

Пример скрипта PowerShell, который завершает все сеансы одной базы:

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

# Идентификатор первого кластера
$cluster = ((& $rac $host1c cluster list | Select-String "^cluster\s+:") -split ":\s*")[1].Trim()

# Идентификатор нужной базы
$ibList = & $rac $host1c infobase summary list --cluster=$cluster
$infobase = $null
for ($i = 0; $i -lt $ibList.Count; $i++) {
    if ($ibList[$i] -match "^name\s+:\s*$baseName\s*$") {
        $infobase = ($ibList[$i-1] -split ":\s*")[1].Trim()
    }
}

# Все сеансы этой базы — завершить
$sessions = & $rac $host1c session list --cluster=$cluster --infobase=$infobase |
    Select-String "^session\s+:" | ForEach-Object { ($_ -split ":\s*")[1].Trim() }

foreach ($s in $sessions) {
    & $rac $host1c session terminate --cluster=$cluster --session=$s
}
Write-Host "Завершено сеансов:" $sessions.Count

Скрипт рассчитан на вывод rac, где строка infobase : <id> идёт прямо перед name : <имя>. Проверьте это на своём сервере командой rac infobase summary list перед тем, как ставить скрипт в планировщик.

Сначала поставьте блокировку начала сеансов (через консоль, обработку БСП или rac infobase update — его параметры смотрите в rac help infobase), а уже потом завершайте сеансы. Иначе за время работы скрипта кто-то успеет зайти снова.

На Linux-сервере rac и ras лежат в каталоге платформы (/opt/1cv8/x86_64/<версия>/), команды те же.

Какая у вас ситуация?

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

Сеанс удалили, а он снова появился. Почему?
Чаще всего это регламентное или фоновое задание, которое запускается по расписанию. Включите в свойствах базы «Блокировка регламентных заданий включена». Если возвращается пользователь — не включена блокировка начала сеансов.
Освобождается ли лицензия после удаления сеанса?
Да. Клиентская лицензия освобождается, когда сеанс завершён. Если лицензия кажется занятой, проверьте, не остался ли у пользователя процесс 1cv8c.exe, и выполните rac session list --licenses.
Можно ли отключить сеансы без прав администратора кластера?
Если на кластере задан администратор, нет — ни консоль, ни обработка БСП без его пароля сеансы не завершат. Если администратор кластера не задан, удалить сеансы может любой, у кого есть доступ к консоли.
Нужно ли всех выгонять, чтобы сделать резервную копию?
Для выгрузки .dt через Конфигуратор — да, нужен монопольный режим. Копию средствами СУБД (например, бэкап в MS SQL или PostgreSQL) можно делать при работающих пользователях.
Пользователь видит «Начало сеанса с информационной базой запрещено». Что это?
Это значит, что в базе стоит блокировка начала сеансов. Её снимают в свойствах базы в консоли кластера или в обработке «Блокировка работы пользователей».