Принудительное завершение сеансов и блокировка входа в базу 1С

· 9 мин

Содержание

Конфигуратор 1С показывает, кто сидит в базе (Администрирование → Активные пользователи), но кнопки «выгнать» в этом окне нет. Отключить пользователя в 1С можно тремя способами: командой «Завершить сеанс» в самой программе, удалением сеанса в консоли кластера серверов или утилитой rac. Запретить повторный вход — флажком «Вход в программу разрешен» в карточке пользователя или блокировкой начала сеансов.

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

Что проверить до того, как отключать людей от базы

Отключение — это обрыв работы. Несохранённый документ, недописанный отчёт, незавершённый обмен пропадут. Перед действием пройдитесь по короткому списку.

  • 🔑 Права. В программе нужна роль администратора (в типовых конфигурациях — «Полные права» или профиль «Администратор»). В консоли кластера — учётка администратора кластера, если администраторы заданы.
  • 🖥️ Вариант базы. Файловая или клиент-серверная. От этого зависит, какие способы вообще сработают. Посмотреть можно в окне запуска: у серверной базы в строке подключения есть Srvr= и Ref=, у файловой — File= и путь к каталогу.
  • 📢 Предупреждение людям. Напишите в рабочий чат за 5–10 минут: «Через 10 минут база закрывается на обновление, сохраните документы». Это дешевле, чем потом восстанавливать чужую работу.
  • ⚙️ Фоновые задания. В списке сеансов есть не только люди, но и регламентные задания: обмены, загрузка курсов, полнотекстовый поиск. Их тоже придётся остановить, иначе база не освободится.
  • 🧰 Служба RAS — только если планируете работать через rac. Без запущенного сервера администрирования утилита не подключится к кластеру.

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

Как посмотреть, кто сейчас подключён к базе

В Конфигураторе

Откройте Администрирование → Активные пользователи. В списке видны:

КолонкаЧто показывает
ПользовательИмя пользователя информационной базы
ПриложениеТонкий клиент, толстый клиент, Конфигуратор, фоновое задание, веб-клиент, COM-соединение
Начало работыКогда открыт сеанс
КомпьютерИмя машины, с которой зашли
Сеанс / СоединениеНомера, по которым сеанс ищут в консоли кластера

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

В режиме 1С:Предприятие

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

В консоли кластера

Для серверной базы полная картина — в консоли администрирования серверов 1С: Кластеры → <кластер> → Информационные базы → <база> → Сеансы. Тут видно и тип приложения, и захваченную лицензию, и сколько сеанс уже занимает ресурсы.

Как принудительно завершить сеанс пользователя 1С

Способ 1. Из программы, командой «Завершить сеанс»

  1. Откройте список активных пользователей в режиме 1С:Предприятие (путь выше).
  2. Выделите строку нужного пользователя.
  3. Нажмите «Завершить сеанс».
  4. Если у кластера заданы администраторы, программа попросит логин и пароль администратора кластера. Введите их — без них сервер откажет.

Способ работает только для клиент-серверной базы. В файловом варианте у программы нет механизма оборвать чужой процесс на чужом компьютере.

Способ 2. В консоли кластера серверов

  1. Запустите «Администрирование серверов 1С Предприятия».
  2. Раскройте Кластеры → <кластер> → Информационные базы → <база> → Сеансы.
  3. Найдите сеанс по пользователю, компьютеру или номеру из списка Конфигуратора.
  4. Правой кнопкой — «Удалить».

В той же ветке есть узел «Соединения». Удалять лучше именно сеанс: он освобождает лицензию и блокировки данных. Обрыв одного соединения часто приводит лишь к тому, что клиент переподключается.

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

Способ 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. Администрирование → Пользователи и права → Пользователи.
  2. Откройте карточку сотрудника.
  3. Снимите флажок «Вход в программу разрешен» и запишите.

Справочник пользователей остаётся в порядке: история документов, ответственный в документах и настройки доступа сохраняются. Уволенного сотрудника так и отключают — не удаляют, а запрещают вход.

Один пользователь: через Конфигуратор

В Конфигураторе откройте Администрирование → Пользователи, затем свойства пользователя. Снимите флажки «Аутентификация 1С:Предприятия» и «Аутентификация операционной системы» — после этого войти под этим именем нельзя.

В конфигурациях на библиотеке подсистем список пользователей синхронизирован со справочником «Пользователи». Не удаляйте пользователя в Конфигураторе — связь со справочником порвётся, и в программе появится «пользователь без учётной записи». Конфигуратор оставьте для баз без такого справочника или для случаев, когда в программу не зайти.

Все сразу: блокировка начала сеансов

Для обновления или резервной копии нужна база без людей. Варианты:

Где ставитьКакКак зайти самому
Программа (БСП)Администрирование → Обслуживание → ссылка «Блокировка работы пользователей» → время начала и окончания, сообщениеКод разрешения в параметре запуска /UC
Консоль кластераСвойства базы → «Блокировка начала сеансов включена», сообщение, код разрешения, периодТот же код в параметре /UC
racrac 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. Поставьте блокировку работы пользователей в программе. Открытые клиенты покажут предупреждение и через несколько минут завершатся сами.
  2. Если чей-то клиент завис и не закрывается, найдите по колонке «Компьютер» машину и закройте 1С там (через удалённый доступ или по телефону).
  3. Крайняя мера — на файловом сервере открыть Управление компьютером → Общие папки → Открытые файлы и закрыть файл 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.

Если пользователь не отключается

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

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

Узнает ли пользователь, что его отключил администратор?
Да. Клиент покажет сообщение о завершении сеанса и закроется. Текст сообщения при блокировке начала сеансов вы задаёте сами.
Освобождается ли лицензия после завершения сеанса?
Да, в клиент-серверной базе лицензия возвращается в общий пул сразу после удаления сеанса в консоли или через rac.
Можно ли отключить пользователя из самого Конфигуратора без консоли?
В окне «Активные пользователи» Конфигуратора команды завершения нет. Используйте программу, консоль кластера или rac.
Как отключить сотрудника, который уволился, но мог унести пароль?
Снимите флажок «Вход в программу разрешен» в карточке пользователя и завершите его текущий сеанс, если он есть. Удалять пользователя не нужно.
Можно ли запретить вход одному пользователю по расписанию?
В карточке пользователя типовых конфигураций рядом с флажком входа есть ссылка для ограничения срока действия: можно указать дату, после которой вход закрывается.