Выгнать всех из базы 1С 8.3 перед обновлением: консоль, блокировка, скрипт
Содержание
Завершить работу пользователей в 1С 8.3 быстрее всего так: в типовой конфигурации откройте Администрирование → Обслуживание → Блокировка работы пользователей, задайте сообщение и время, нажмите «Установить блокировку». Через несколько минут программа сама закроет все сеансы и не пустит новых. В клиент-серверной базе то же самое делают из консоли администрирования кластера: включают блокировку начала сеансов и удаляют оставшиеся сеансы вручную.
Обычно это нужно перед обновлением конфигурации, загрузкой .dt, тестированием и исправлением или изменением структуры базы. Пока в базе висит хотя бы один сеанс, монопольный режим не получить. Ниже разобраны все способы — от вежливого предупреждения до принудительного отключения ночью по расписанию.
Подготовка: кто сейчас в базе и что оборвётся
Начните с того, чтобы увидеть список активных сеансов. Мест, где его можно посмотреть, три.
| Где смотреть | Путь | Что видно |
|---|---|---|
| Пользовательский режим (БП 3.0, ЗУП 3.1, УТ 11) | Администрирование → Обслуживание → Активные пользователи | Пользователь, компьютер, приложение, время начала |
| Конфигуратор | Администрирование → Активные пользователи | Те же сеансы, без кнопки отключения |
| Консоль кластера (только серверная база) | Кластеры → кластер → Информационные базы → база → Сеансы | Сеансы, их рабочие процессы, захваченные лицензии |
В списке встречаются не только люди. Разберитесь, что за сеансы перед вами:
- 👤 1C:Enterprise / Тонкий клиент / Веб-клиент — живые пользователи;
- 🛠 Конфигуратор — кто-то из программистов. Если его выбить, несохранённые правки пропадут;
- ⚙️ Фоновое задание — регламентные задания: обмены, загрузка курсов, полнотекстовый поиск;
- 🔌 COM-соединение — внешние обработки, интеграции, обмен с сайтом.
Принудительное завершение сеанса не сохраняет открытые документы. Если бухгалтер набирал счёт на 40 строк и не записал его — строки пропадут. Предупредите людей хотя бы за 10–15 минут.
Короткий порядок подготовки перед плановыми работами:
- Напишите в общий чат время начала и ожидаемую длительность работ.
- Договоритесь с программистом, чтобы он сохранил и закрыл Конфигуратор.
- Проверьте, не идёт ли сейчас длинная операция: закрытие месяца , расчёт зарплаты, большой обмен. Обрыв на середине придётся перезапускать.
- Сделайте резервную копию — после того как все вышли, но до изменений.
Блокировка работы пользователей из самой программы 1С
Этот способ работает и в файловой, и в клиент-серверной базе. Механизм встроен в типовые конфигурации на БСП: Бухгалтерию 3.0, ЗУП 3.1, УТ 11, КА и ERP.
- Зайдите в базу под пользователем с полными правами.
- Откройте
Администрирование → Обслуживаниеи в группе про сеансы выберите «Блокировка работы пользователей». - В поле сообщения напишите понятный текст: «Обновление программы. Сохраните документы и выйдите. Работа возобновится в 21:00».
- Укажите время начала и окончания блокировки. Если начало пустое, блокировка действует сразу.
- Задайте код разрешения — короткое слово, например
obnovlenie. С ним администратор сможет зайти в заблокированную базу. - Нажмите «Установить блокировку».
Что происходит дальше. У всех открытых сеансов появляется предупреждение с вашим текстом. За несколько минут до начала блокировки программа просит пользователей выйти, а в момент начала закрывает их сеансы сама. Новые входы отклоняются с вашим сообщением.
В клиент-серверной базе при установке блокировки программа запросит параметры администрирования кластера — логин и пароль администратора кластера, если он задан. Без них она не сможет отключить сеансы через сервер.
Сеанс администратора, который ставил блокировку, остаётся работать. Его не нужно закрывать, чтобы, например, запустить обновление из этой же программы.
Как зайти в заблокированную базу
Добавьте к параметрам запуска ключ /UC с кодом разрешения. В окне выбора базы: Изменить → Дополнительные параметры запуска, строка:
/UCobnovlenie
Или из командной строки:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /UCobnovlenie
Снимают блокировку там же: кнопкой «Снять блокировку». Если задали время окончания, она снимется сама.
Консоль администрирования серверов 1С: отключение сеансов вручную
Консоль — это оснастка MMC «Администрирование серверов 1С Предприятия», она ставится вместе с платформой. Работает только с клиент-серверными базами.
Блокировка начала сеансов
- Откройте консоль, разверните
Central 1C:Enterprise 8.3 servers → ваш сервер → Кластеры → кластер → Информационные базы. - Щёлкните правой кнопкой по базе →
Свойства. Введите логин и пароль администратора информационной базы (пользователь 1С с полными правами). - Установите флаг «Блокировка начала сеансов включена».
- Заполните «Начало» и «Конец» (можно оставить пустыми), «Сообщение» и «Код разрешения».
- Если будете обновлять конфигурацию, поставьте также «Блокировка регламентных заданий включена». Иначе фоновые задания будут снова и снова открывать сеансы.
- Нажмите «ОК».
Удаление сеансов
Блокировка не пускает новых, но уже открытые сеансы в этом варианте сами не закрываются. Их удаляют руками:
- Раскройте базу →
Сеансы. - Выделите сеансы — можно все сразу через Shift.
- Правая кнопка →
Удалить.
Пользователь увидит сообщение о том, что сеанс завершён администратором. Лицензия, которую он занимал, освобождается сразу.
Если консоль не открывается
Частая ситуация после обновления платформы: консоль выдаёт ошибку при запуске или не видит сервер. Помогает перерегистрация компонента radmin.dll той версии платформы, на которой работает сервер. Запустите командную строку от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии в пути подставьте свой. Версия консоли должна совпадать с версией сервера — с консолью от другой сборки соединение может не установиться.
Принудительное отключение в файловой базе
У файловой базы нет сервера и нет консоли. Пользователи работают с файлом 1Cv8.1CD напрямую, поэтому способы здесь такие.
Штатный. Блокировка работы пользователей из программы, описанная выше. Она отлично работает и в файловом варианте: каждый клиент сам проверяет блокировку и закрывается. Но только если программа у пользователя не зависла.
Если кто-то не выходит. Типичная история: человек ушёл домой, оставил 1С открытой, а компьютер заблокирован. Варианты по нарастающей:
- Позвонить или подключиться к его компьютеру удалённо и закрыть программу.
- На терминальном сервере — в диспетчере задач на вкладке «Пользователи» найти его процессы
1cv8.exeили1cv8c.exeи завершить. - Если база лежит в общей папке Windows — на сервере открыть
Управление компьютером → Общие папки → Открытые файлы, найти1Cv8.1CDи закрыть файл у нужного пользователя.
Закрытие файла и снятие процесса — это то же самое, что выдернуть шнур питания. Делайте это, когда записи точно нет, и сразу после — тестирование и исправление базы в Конфигураторе с флагом проверки логической целостности. При большом числе таких «выдёргиваний» растёт риск повредить файл базы.
Зависшие сеансы и аварийная очистка
Иногда в консоли висит сеанс, которого уже нет: компьютер пользователя выключили, пропала сеть, клиент упал. Сервер какое-то время держит такой сеанс, и он мешает получить монопольный доступ.
Крайняя мера — перезапуск службы «Агент сервера 1С:Предприятия 8.3». Он обрывает сеансы всех баз кластера, а не одной. Делайте это только вне рабочего времени и только если другие способы не помогли. Если на сервере крутится несколько организаций, предупредите всех.
Перед перезапуском службы посмотрите, не идёт ли в какой-то базе ночной обмен или пересчёт итогов. Обрыв в середине такой операции потом разбирать дольше, чем ждать её окончания.
Автоматизация: выгнать пользователей скриптом ночью
Если обновления и выгрузки идут по расписанию, вручную ставить блокировку неудобно. Есть два рабочих подхода.
Параметр запуска ЗавершитьРаботуПользователей
Типовые конфигурации на БСП понимают параметр запуска /C"ЗавершитьРаботуПользователей". Программа стартует, ставит блокировку, дожидается закрытия всех сеансов и выходит. Обратный параметр — /C"РазрешитьРаботуПользователей".
Пример bat-файла для клиент-серверной базы:
@echo off
set V8="C:\Program Files\1cv8\common\1cestart.exe"
set BASE=/S"srv1c\buh"
set ADM=/N"Администратор" /P"пароль"
rem 1. Блокируем и выгоняем всех
%V8% ENTERPRISE %BASE% %ADM% /C"ЗавершитьРаботуПользователей" /UCnightjob /DisableStartupMessages
rem 2. Выгрузка базы в dt
%V8% DESIGNER %BASE% %ADM% /UCnightjob /DumpIB "D:\backup\buh.dt" /Out "D:\backup\log.txt"
rem 3. Снимаем блокировку
%V8% ENTERPRISE %BASE% %ADM% /C"РазрешитьРаботуПользователей" /UCnightjob /DisableStartupMessages
Код разрешения во всех трёх строках один и тот же — иначе второй шаг сам не попадёт в базу.
Через rac — утилиту управления кластером
Для серверных баз удобнее работать напрямую с кластером. Нужна запущенная служба сервера администрирования ras (по умолчанию порт 1545). Сама утилита rac лежит в папке bin платформы.
Сначала узнайте идентификатор кластера и базы:
rac localhost:1545 cluster list
rac localhost:1545 infobase summary list --cluster=<uuid-кластера>
Список сеансов и завершение одного сеанса:
rac localhost:1545 session list --cluster=<uuid-кластера> --infobase=<uuid-базы>
rac localhost:1545 session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если у кластера задан администратор, добавьте к каждой команде --cluster-user и --cluster-pwd. Блокировку начала сеансов и регламентных заданий тоже ставят через rac infobase update — точный набор ключей для вашей версии смотрите в rac help infobase.
Чтобы отключить сразу всех, удобно обернуть это в PowerShell:
$rac = "C:\Program Files\1cv8\8.3.24.1548\bin\rac.exe"
$cl = "<uuid-кластера>"
$ib = "<uuid-базы>"
$ids = & $rac localhost:1545 session list --cluster=$cl --infobase=$ib |
Select-String '^session\s+:\s+(\S+)' |
ForEach-Object { $_.Matches[0].Groups[1].Value }
foreach ($id in $ids) {
& $rac localhost:1545 session terminate --cluster=$cl --session=$id
}
Скрипт кладут в планировщик заданий Windows на нужное время. Запускайте его только после блокировки начала сеансов — иначе пользователи тут же зайдут обратно, а фоновые задания откроют новые сеансы.
Пароли в bat- и ps1-файлах хранятся открытым текстом. Создайте для ночных работ отдельного пользователя 1С, а файлы скриптов положите в папку, доступную только администраторам сервера.
Какой способ выбрать
| Способ | Когда подходит | Риски |
|---|---|---|
| Блокировка из программы | Плановое обновление, любая база | Не закроет зависший клиент в файловой базе |
| Консоль кластера | Серверная база, нужно выгнать конкретного человека | Удаление сеанса теряет несохранённые данные |
| Закрытие файла / процесса | Файловая база, один «забытый» клиент | Риск повредить базу при записи |
| Перезапуск службы агента | Всё зависло, другие способы не сработали | Падают все базы сервера |
bat + /C"ЗавершитьРаботуПользователей" | Регулярная ночная выгрузка или обновление | Пароль в открытом виде |
rac + PowerShell | Много баз, нужен полный контроль | Нужен ras, знание идентификаторов |