Отключение всех пользователей от базы 1С перед обновлением и обслуживанием
Содержание
Способ зависит от варианта базы. В клиент-серверной базе пользователей выгоняют через консоль администрирования серверов 1С или утилитой rac. В файловой базе у сервера нет списка сеансов, поэтому работу завершают штатной обработкой внутри 1С или закрывают файл базы средствами Windows.
Порядок всегда один: предупредить людей, запретить новые входы, завершить текущие сеансы, и только потом начинать обслуживание. Если сделать наоборот, пользователи успеют зайти обратно, пока вы выгоняете остальных.
| Вариант базы | Чем выгнать | Когда подходит |
|---|---|---|
| Клиент-сервер, есть доступ к серверу | Консоль администрирования | Разовая операция, нужен наглядный список |
| Клиент-сервер, нужна автоматизация | Утилита rac и скрипт | Ночное обновление, резервная копия по расписанию |
| Файловая | Обработка завершения работы в 1С, затем средства Windows | Небольшая база на общей папке или терминальном сервере |
| Сеанс завис | Консоль, затем процесс rphost или 1cv8 | Обычное завершение не сработало |
Что сделать до того, как отключать людей
Выгнанный сеанс теряет всё, что пользователь не успел записать. Документ в режиме редактирования, незавершённый ввод, незакрытая обработка пропадут без вопросов.
Перед началом:
- Предупредите пользователей не позже чем за 10–15 минут. Лучше сообщением в рабочем чате и через саму 1С.
- Определите время и причину: обновление конфигурации
, загрузка
.dt, свёртка, реструктуризация, перенос базы. - Убедитесь, что вы входите под учётной записью с правом администрирования. Для консоли нужен ещё и администратор кластера, если его задавали.
- Проверьте, нет ли в базе длительных регламентных заданий и закрытия месяца, которые выполняются прямо сейчас.
Если в базе идёт закрытие месяца, массовое проведение или обмен, дождитесь окончания. Прерванная операция может оставить документы в промежуточном состоянии, а проведение придётся повторять.
💡 Сеансы фоновых и регламентных заданий тоже считаются сеансами. Консоль покажет их отдельным типом, и выгонять их нужно так же.
Консоль администрирования: сеансы и соединения по кнопке
Консоль администрирования серверов 1С:Предприятия ставится вместе с платформой на сервер или на рабочее место администратора. Это оснастка MMC.
Запрещаем вход новым пользователям
Сначала закройте дверь:
- Откройте консоль и разверните
Центральные серверы 1С:Предприятия→ ваш сервер →Кластеры→ нужный кластер →Информационные базы. - Откройте свойства базы (правая кнопка →
Свойства). - Включите
Блокировка начала сеансов включена. - Задайте время начала и окончания блокировки, текст сообщения и, если нужно, код разрешения.
- Отметьте блокировку регламентных заданий, если они вам мешают.
Код разрешения позволяет вам самому войти в заблокированную базу: запускайте клиент с параметром /UC и вашим кодом. Остальные получат сообщение, которое вы написали.
Как написать сообщение, которое прочтут
Текст блокировки видит каждый, кто попытался войти. Три вещи делают его полезным:
- причина одной фразой: «Идёт обновление конфигурации»;
- время, когда база снова откроется: «Работа возобновится в 20:30»;
- к кому обращаться, если база нужна срочно.
Короткое сообщение «Доступ закрыт» вызывает звонки в поддержку, длинное никто не дочитывает. Хватает двух строк.
Завершаем сеансы
Раскройте базу, откройте ветку Сеансы. В списке видны пользователь, компьютер, приложение (тонкий клиент, конфигуратор, фоновое задание), время начала и последней активности.
- Выделите один сеанс или несколько (
Ctrl,Shift) и нажмитеУдалить. - Чтобы убрать всех сразу, выделите весь список сочетанием
Ctrl+Aи удалите. - Откройте ветку
Соединения: туда попадают подключения, у которых сеанса уже нет, но соединение с процессом осталось.
Своё же соединение с консолью выгонять не нужно, оно не отображается как сеанс базы.
Если консоли нет или она не подключается
Бывает, что оснастка не открывается: в MMC нет нужного компонента. Обычно помогает перерегистрация библиотеки:
regsvr32 "C:\Program Files\1cv8\8.3.XX.XXXX\bin\radmin.dll"
Командную строку запускайте от имени администратора, а версию в пути подставьте свою (папка платформы на сервере). Если подключиться к серверу не удаётся, проверьте, что служба сервера 1С запущена, а порт сервера (по умолчанию 1540) и порт менеджера кластера (1541) не закрыты фаерволом.
Какие сеансы увидите в списке
В ветке Сеансы встречаются разные приложения, и выгонять их нужно с разной осторожностью:
| Приложение в списке | Что это | Как поступить |
|---|---|---|
| Тонкий или веб-клиент | Обычная работа пользователя | Завершать после предупреждения |
| Конфигуратор | Разработчик или администратор правит конфигурацию | Сначала связаться с ним: незаписанные изменения пропадут |
| Фоновое задание | Регламентное задание, обмен, формирование отчёта | Дождаться конца или заблокировать задания |
| Сеанс COM-соединения | Внешняя программа или обмен через COM | Уточнить у владельца интеграции |
Сеанс Конфигуратора держит хранилище и может мешать загрузке изменений, так что про него вспоминают чаще всего.
Утилита rac: то же самое из командной строки
rac лежит в каталоге bin платформы. Она обращается к серверу администрирования ras, так что сначала убедитесь, что ras запущен (по умолчанию слушает порт 1545).
Запуск сервера администрирования, если он не работает как служба:
ras cluster --port=1545
Дальше три шага.
1. Идентификатор кластера:
rac cluster list
В выводе найдите строку cluster: это UUID, он понадобится во всех следующих командах.
2. Идентификатор базы:
rac infobase summary list --cluster=<UUID_кластера>
3. Список сеансов и завершение:
rac session list --cluster=<UUID_кластера> --infobase=<UUID_базы>
rac session terminate --cluster=<UUID_кластера> --session=<UUID_сеанса>
Если на кластер установлен администратор, добавляйте --cluster-user и --cluster-pwd. Полный перечень параметров смотрите в справке: rac help session и rac help infobase.
Блокировку входа тоже можно включить из командной строки командой rac infobase update с параметрами запрета сеансов и текстом сообщения. Точный набор ключей зависит от релиза платформы, так что откройте rac help infobase и проверьте имена параметров на своей версии.
Скрипт: выгнать всех одним запуском
Для ночного обновления или резервной копии удобнее PowerShell. Пример перебирает сеансы одной базы и завершает каждый:
$rac = "C:\Program Files\1cv8\8.3.XX.XXXX\bin\rac.exe"
$cluster = "UUID_кластера"
$base = "UUID_базы"
$text = & $rac session list --cluster=$cluster --infobase=$base
foreach ($line in $text) {
if ($line -match '^session\s*:\s*(\S+)') {
& $rac session terminate --cluster=$cluster --session=$($Matches[1])
}
}
Скрипт читает только строки вида session : <UUID> и закрывает каждый найденный сеанс. Версию платформы в пути и оба UUID подставьте свои.
Что стоит сделать вокруг скрипта:
- ✅ Запускайте его от учётной записи, у которой есть права на
racи на кластер. - ✅ Включайте блокировку входа раньше, чем запускаете цикл, иначе кто-нибудь успеет зайти повторно.
- ✅ После цикла повторите
rac session list: если список не пуст, остались зависшие сеансы. - ✅ Пишите вывод в журнал, чтобы утром было видно, что и когда завершилось.
Для планировщика задач Windows достаточно создать задание, запускающее powershell.exe -File путь\скрипт.ps1 в нужное время.
Перед обновлением удобно пройтись по короткому списку:
Файловая база: нет сервера, нет списка сеансов
В файловой базе роль сервера никто не выполняет. Каждый клиент открывает файл 1Cv8.1CD напрямую, поэтому «убить сеанс» как в кластере нельзя. Действуют по возрастанию жёсткости.
1. Средствами самой 1С
Посмотреть, кто в базе, можно в Конфигураторе (меню Администрирование → Активные пользователи). В типовых конфигурациях на БСП есть ещё раздел Администрирование → Поддержка и обслуживание, где находятся список активных пользователей и блокировка работы пользователей. Там задаются время и сообщение, и по наступлении срока пользователей отключают.
Если вы собираетесь обновлять конфигурацию, блокировка и завершение работы через эту обработку делается именно там.
2. Через Windows
Когда сеанс не закрывается:
- Если база лежит на общем сетевом ресурсе, откройте на файловом сервере
Управление компьютером→Общие папки→Открытые файлы. Найдите1Cv8.1CDи закройте открытые дескрипторы. - Если все работают на терминальном сервере, откройте
Диспетчер задач→Пользователи, найдите процессы1cv8.exeили1cv8c.exeи завершите их.
Отдельно про терминальный сервер . Там у каждого пользователя свой сеанс Windows, и клиент 1С живёт внутри него. Если закрыть сеанс 1С, а сеанс Windows оставить, человек увидит пустой рабочий стол и сразу откроет базу заново. Блокировка входа защищает от этого лучше любых просьб.
Принудительное закрытие файла при записи может повредить базу. Делайте это только если пользователи недоступны, а обслуживание нельзя отложить, и сначала сохраните копию файла 1Cv8.1CD.
Если сеанс не уходит
Иногда Удалить в консоли вроде бы срабатывает, а сеанс остаётся в списке. Причины обычно такие:
- 🔹 Клиент завис на серверном вызове, и рабочий процесс не реагирует на команду.
- 🔹 Пользователь работает через длительную обработку, которая держит транзакцию.
- 🔹 Сеанс-«призрак» остался после обрыва связи, и сервер ждёт тайм-аут.
Порядок действий:
- Подождите 1–2 минуты и обновите список в консоли.
- Проверьте ветку
Соединения: соединение без сеанса удаляется отдельно. - Посмотрите блокировки (ветка
Блокировкив консоли): возможно, сеанс стоит в ожидании чужой блокировки. - Только после этого завершайте рабочий процесс.
Какой процесс обслуживает сеанс, видно в свойствах сеанса в консоли. Снимать процесс rphost через диспетчер задач можно в крайнем случае.
Завершение rphost оборвёт все сеансы, которые этот процесс обслуживал, в том числе в других базах. Делайте это в окно обслуживания и убедитесь, что соседние базы никому не нужны.
Если и это не помогает, перезапуск службы сервера 1С закрывает всё разом. Это самый грубый вариант, он отключает всех пользователей всех баз кластера. Не делайте его в рабочее время.
Сеансы.rac в планировщике: блокировка, цикл завершения, проверка списка.Открытые файлы на файловом сервере или Диспетчер задач на терминальном, предварительно копия 1Cv8.1CD.Как не выгонять людей посреди рабочего дня
Часть проблем снимается заранее:
- Планируйте окно обслуживания: вечер или раннее утро, одно и то же время каждую неделю. Людям проще привыкнуть, чем получать неожиданное сообщение.
- Включайте блокировку начала сеансов с текстом, где написано, когда база снова будет доступна. Фраза «технические работы» мало что говорит.
- Настройте автоматическое завершение неактивных сеансов, если администрирование это допускает: пользователи, забывшие выйти, держат лицензии и блокируют обслуживание.
- Выносите резервное копирование , тестирование и исправление, требующие монопольного доступа, в одно окно, чтобы не выгонять людей по три раза.
- Регламентные задания останавливайте вместе с входом пользователей, иначе они займут базу сами.
Частые вопросы
Сколько ждать после предупреждения?
Можно ли выгнать только одного пользователя?
Сеансы и нажмите Удалить, либо завершите его командой rac session terminate.Почему пользователь снова зашёл после завершения сеанса?
Как войти в базу самому, если вход заблокирован?
/UC и кодом разрешения, который вы задали в блокировке.Закрылся ли сеанс, если исчез из списка консоли?
Соединения: там могло остаться подключение без сеанса.