Принудительное завершение сеансов и блокировка входа в базу 1С
Содержание
Конфигуратор 1С показывает, кто сидит в базе (Администрирование → Активные пользователи), но кнопки «выгнать» в этом окне нет. Отключить пользователя
в 1С можно тремя способами: командой «Завершить сеанс» в самой программе, удалением сеанса в консоли кластера серверов или утилитой rac. Запретить повторный вход — флажком «Вход в программу разрешен» в карточке пользователя или блокировкой начала сеансов.
Частое заблуждение — что достаточно снять пользователю права или удалить его в Конфигураторе, и он «вылетит». Нет: изменения пользователя информационной базы не обрывают уже открытый сеанс. Человек продолжит работать до выхода, а запрет сработает только при следующем входе. Поэтому администрирование всегда идёт в два шага: сначала завершить сеанс, потом закрыть вход.
Что проверить до того, как отключать людей от базы
Отключение — это обрыв работы. Несохранённый документ, недописанный отчёт, незавершённый обмен пропадут. Перед действием пройдитесь по короткому списку.
- 🔑 Права. В программе нужна роль администратора (в типовых конфигурациях — «Полные права» или профиль «Администратор»). В консоли кластера — учётка администратора кластера, если администраторы заданы.
- 🖥️ Вариант базы. Файловая или клиент-серверная. От этого зависит, какие способы вообще сработают. Посмотреть можно в окне запуска: у серверной базы в строке подключения есть
Srvr=иRef=, у файловой —File=и путь к каталогу. - 📢 Предупреждение людям. Напишите в рабочий чат за 5–10 минут: «Через 10 минут база закрывается на обновление, сохраните документы». Это дешевле, чем потом восстанавливать чужую работу.
- ⚙️ Фоновые задания. В списке сеансов есть не только люди, но и регламентные задания: обмены, загрузка курсов, полнотекстовый поиск. Их тоже придётся остановить, иначе база не освободится.
- 🧰 Служба RAS — только если планируете работать через
rac. Без запущенного сервера администрирования утилита не подключится к кластеру.
Если цель — получить монопольный доступ для обновления, удобнее сразу ставить блокировку начала сеансов, а не выгонять людей по одному. Иначе пока вы закрываете пятый сеанс, первый пользователь уже зашёл снова.
Как посмотреть, кто сейчас подключён к базе
В Конфигураторе
Откройте Администрирование → Активные пользователи. В списке видны:
| Колонка | Что показывает |
|---|---|
| Пользователь | Имя пользователя информационной базы |
| Приложение | Тонкий клиент, толстый клиент, Конфигуратор, фоновое задание, веб-клиент, COM-соединение |
| Начало работы | Когда открыт сеанс |
| Компьютер | Имя машины, с которой зашли |
| Сеанс / Соединение | Номера, по которым сеанс ищут в консоли кластера |
Этот список работает и в файловом, и в серверном варианте. Его главная ценность — понять, кого именно отключать и с какого компьютера. Номер сеанса пригодится, чтобы найти ту же строку в консоли кластера.
В режиме 1С:Предприятие
В конфигурациях на стандартной библиотеке подсистем (Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие) тот же список открывается из раздела Администрирование → Обслуживание по ссылке «Активные пользователи». Здесь удобнее: можно сразу завершить сеанс и открыть журнал регистрации по выбранному человеку.
В консоли кластера
Для серверной базы полная картина — в консоли администрирования серверов 1С: Кластеры → <кластер> → Информационные базы → <база> → Сеансы. Тут видно и тип приложения, и захваченную лицензию, и сколько сеанс уже занимает ресурсы.
Как принудительно завершить сеанс пользователя 1С
Способ 1. Из программы, командой «Завершить сеанс»
- Откройте список активных пользователей в режиме 1С:Предприятие (путь выше).
- Выделите строку нужного пользователя.
- Нажмите «Завершить сеанс».
- Если у кластера заданы администраторы, программа попросит логин и пароль администратора кластера. Введите их — без них сервер откажет.
Способ работает только для клиент-серверной базы. В файловом варианте у программы нет механизма оборвать чужой процесс на чужом компьютере.
Способ 2. В консоли кластера серверов
- Запустите «Администрирование серверов 1С Предприятия».
- Раскройте
Кластеры → <кластер> → Информационные базы → <база> → Сеансы. - Найдите сеанс по пользователю, компьютеру или номеру из списка Конфигуратора.
- Правой кнопкой — «Удалить».
В той же ветке есть узел «Соединения». Удалять лучше именно сеанс: он освобождает лицензию и блокировки данных. Обрыв одного соединения часто приводит лишь к тому, что клиент переподключается.
Не завершайте сеансы с приложением «Фоновое задание» посреди обмена или закрытия месяца. Задание прервётся, данные могут остаться в промежуточном состоянии. Сначала выключите регламентные задания или дождитесь их окончания.
Способ 3. Через утилиту rac
rac — консольная утилита, которая ставится вместе с сервером 1С в каталог bin платформы. Она работает через службу RAS (порт по умолчанию 1545). Удобна, когда консоль не открывается или нужно что-то сделать скриптом.
rem 1. Узнать идентификатор кластера
rac cluster list
rem 2. Узнать идентификатор базы
rac infobase summary list --cluster=<uuid_кластера>
rem 3. Список сеансов базы
rac session list --cluster=<uuid_кластера> --infobase=<uuid_базы>
rem 4. Завершить конкретный сеанс
rac session terminate --cluster=<uuid_кластера> --session=<uuid_сеанса>
Если у кластера есть администратор, к каждой команде добавьте --cluster-user=<имя> --cluster-pwd=<пароль>. Команды выше по умолчанию обращаются к RAS на localhost:1545, поэтому проще всего запускать их на самом сервере. Для удалённого сервера адрес указывается отдельным аргументом — синтаксис покажет rac help.
В выводе session list у каждого сеанса есть поля user-name, host и app-id. По ним отличают бухгалтера с ноутбука от фонового задания или от собственного Конфигуратора администратора.
Как запретить пользователю вход в 1С
Завершённый сеанс через минуту может появиться снова. Закрыть дверь можно для одного человека или для всех сразу.
Один пользователь: флажок «Вход в программу разрешен»
В типовых конфигурациях это делают в режиме 1С:Предприятие:
Администрирование → Пользователи и права → Пользователи.- Откройте карточку сотрудника.
- Снимите флажок «Вход в программу разрешен» и запишите.
Справочник пользователей остаётся в порядке: история документов, ответственный в документах и настройки доступа сохраняются. Уволенного сотрудника так и отключают — не удаляют, а запрещают вход.
Один пользователь: через Конфигуратор
В Конфигураторе откройте Администрирование → Пользователи, затем свойства пользователя. Снимите флажки «Аутентификация 1С:Предприятия» и «Аутентификация операционной системы» — после этого войти под этим именем нельзя.
В конфигурациях на библиотеке подсистем список пользователей синхронизирован со справочником «Пользователи». Не удаляйте пользователя в Конфигураторе — связь со справочником порвётся, и в программе появится «пользователь без учётной записи». Конфигуратор оставьте для баз без такого справочника или для случаев, когда в программу не зайти.
Все сразу: блокировка начала сеансов
Для обновления или резервной копии нужна база без людей. Варианты:
| Где ставить | Как | Как зайти самому |
|---|---|---|
| Программа (БСП) | Администрирование → Обслуживание → ссылка «Блокировка работы пользователей» → время начала и окончания, сообщение | Код разрешения в параметре запуска /UC |
| Консоль кластера | Свойства базы → «Блокировка начала сеансов включена», сообщение, код разрешения, период | Тот же код в параметре /UC |
| rac | rac infobase update ... --sessions-deny=on --denied-message="..." --permission-code=... | /UC |
Пример запуска Конфигуратора в обход блокировки:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /UC"7777"
В свойствах базы рядом есть флажок «Блокировка регламентных заданий включена». Включайте его вместе с блокировкой сеансов, если фоновые задания мешают монопольному режиму.
Файловая и серверная база: что работает, а что нет
Главное различие простое. В серверной базе сеансами управляет кластер, и он может их завершить. В файловой базе каждый клиент сам открывает файл 1Cv8.1CD по сети, и «главного», который его выкинет, нет.
| Действие | Файловая база | Клиент-серверная |
|---|---|---|
| Посмотреть активных пользователей | Да, в Конфигураторе и в программе | Да, плюс консоль кластера |
| Завершить чужой сеанс из программы | Нет | Да, «Завершить сеанс» |
Консоль кластера, rac | Не применяется | Да |
| Блокировка через программу (БСП) | Да: клиенты получают предупреждение и закрываются сами | Да |
| Запрет входа одному пользователю | Да | Да |
Как быть с файловой базой
- Поставьте блокировку работы пользователей в программе. Открытые клиенты покажут предупреждение и через несколько минут завершатся сами.
- Если чей-то клиент завис и не закрывается, найдите по колонке «Компьютер» машину и закройте 1С там (через удалённый доступ или по телефону).
- Крайняя мера — на файловом сервере открыть
Управление компьютером → Общие папки → Открытые файлыи закрыть файл1Cv8.1CDдля нужного пользователя.
Принудительное закрытие файла посреди записи может повредить базу. Делайте это, только если клиент точно не пишет данные, и после этого прогоните «Тестирование и исправление» в Конфигураторе (Администрирование → Тестирование и исправление) на свежей резервной копии.
Блокировка в файловой базе хранится в файле 1Cv8.cdn в каталоге базы. Если после работ вход остался закрыт, а снять блокировку из программы не удаётся, этот файл удаляют вручную — когда в базе никого нет.
Автоматическое отключение пользователей перед регламентными работами
Ночное обновление или копия базы не должны зависеть от того, что бухгалтер забыл закрыть 1С. Варианты автоматизации — от простого к гибкому.
Расписание блокировки в программе
В форме «Блокировка работы пользователей» задаются время начала и окончания. Поставьте, например, с 23:00 до 23:45 — программа сама предупредит открытые сеансы и завершит их, а в 23:45 вход откроется.
Параметр запуска для пакетных скриптов
В конфигурациях на БСП есть параметры запуска /C ЗавершитьРаботуПользователей и /C РазрешитьРаботуПользователей. Первый ставит блокировку и выгоняет пользователей, второй её снимает. Ими пользуются в bat-файлах обновления: запустили клиент с первым параметром, обновили, запустили со вторым.
Скрипт на rac для серверной базы
PowerShell-скрипт ниже завершает все сеансы одной базы. Его ставят в Планировщик заданий Windows перед резервным копированием.
# Путь к rac.exe: каталог bin вашей версии платформы
$rac = "C:\Program Files\1cv8\<версия>\bin\rac.exe"
$ib = "<uuid_базы>" # из rac infobase summary list
# Первый кластер на сервере
$cluster = (& $rac cluster list |
Select-String '^cluster\s*:' |
Select-Object -First 1).ToString().Split(':')[1].Trim()
# Все сеансы базы
$sessions = & $rac session list --cluster=$cluster --infobase=$ib |
Select-String '^session\s*:' |
ForEach-Object { $_.ToString().Split(':')[1].Trim() }
foreach ($s in $sessions) {
& $rac session terminate --cluster=$cluster --session=$s
}
Скрипт рубит всё подряд, включая фоновые задания и Конфигуратор. Поэтому порядок такой: сначала rac infobase update с блокировкой сеансов и регламентных заданий, потом этот скрипт, потом работы, в конце блокировку снять (--sessions-deny=off). Для infobase update нужен ещё логин и пароль администратора самой базы: параметры --infobase-user и --infobase-pwd.
Если пользователь не отключается
/UC, или удалите 1Cv8.cdn, когда база пуста.