Завершение чужих сеансов и отключение лишних учётных записей в 1С 8.3
Содержание
Чтобы выбросить пользователей из базы 1С, в типовой конфигурации откройте Администрирование → Обслуживание → Блокировка работы пользователей, задайте сообщение и код разрешения и нажмите «Установить блокировку». Программа предупредит всех, кто работает, и через несколько минут сама завершит их сеансы. В клиент-серверной базе то же самое делают из консоли администрирования кластера: Сеансы → правой кнопкой по сеансу → «Удалить».
Выбрасывать пользователей приходится перед обновлением конфигурации, загрузкой архива .dt, тестированием и исправлением базы — этим операциям нужен монопольный доступ. Второй сценарий — убрать из базы уволенного сотрудника навсегда. Ниже оба: сначала как выгнать всех из работающей базы, затем как корректно отключить учётную запись.
Подготовка: кто сейчас в базе и почему это важно
Прежде чем рвать сеансы, посмотрите, кто подключён. Внезапный обрыв означает потерю несохранённых документов: бухгалтер полчаса набирал авансовый отчёт, а записать не успел.
Где увидеть список подключённых:
- 🖥️ в режиме 1С:Предприятие —
Администрирование → Обслуживание → Активные пользователи; - 🔧 в Конфигураторе —
Администрирование → Активные пользователи; - 🗄️ в серверной базе — консоль администрирования серверов, ветка базы →
Сеансы.
В списке видно имя пользователя, компьютер, приложение и время начала работы. Отдельно обратите внимание на колонку приложения:
- 👤 «Тонкий клиент», «Толстый клиент», «Веб-клиент» — живые люди;
- ⚙️ «Фоновое задание» — регламентные задания самой базы (загрузка курсов валют, обмены, полнотекстовый индекс);
- 🔌 «COM-соединение» — внешние программы и обработки, которые подключаются к базе;
- 🌐 «Web-сервис», «HTTP-сервис» — обращения через публикацию на веб-сервере.
Фоновые задания и COM-соединения после принудительного завершения часто тут же подключаются снова. Поэтому одного «выгнать» мало — нужно ещё запретить новые входы.
Перед началом напишите коллегам в рабочий чат: «В 18:00 база будет закрыта на 20 минут, сохраните документы». Это быстрее, чем потом восстанавливать потерянную работу.
Как выгнать всех из файловой базы
У файловой базы нет сервера, который мог бы оборвать чужой сеанс. Каждый пользователь сам открывает файл 1Cv8.1CD, и выгнать его можно тремя способами — от мягкого к жёсткому.
Способ 1. Блокировка работы пользователей
Это штатный механизм типовых конфигураций на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие).
- Откройте
Администрирование → Обслуживание. - Перейдите по ссылке «Блокировка работы пользователей».
- Заполните сообщение для пользователей, например «Обновление программы, вход откроется в 18:30».
- Укажите время начала и окончания блокировки.
- Задайте код разрешения — любую строку, например
obnov. С этим кодом вы сами сможете войти в закрытую базу. - Нажмите «Установить блокировку».
Пользователи увидят предупреждение и получат несколько минут на то, чтобы сохранить работу. Затем программа закроет их сеансы. Новые входы будут запрещены до снятия блокировки.
Чтобы войти в заблокированную базу, добавьте к параметрам запуска /UC и код разрешения:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /UCobnov
Если в базе нет раздела «Обслуживание», а конфигурация нетиповая или старая, этот способ недоступен. Тогда переходите к способам 2 и 3.
Способ 2. Обзвон и закрытие сеансов на месте
Самый безопасный путь. По списку активных пользователей вы видите имена компьютеров. Попросите людей закрыть программу или сделайте это сами через удалённый доступ.
Способ 3. Принудительное закрытие файла на сервере
Когда база лежит в общей папке на сервере, Windows показывает, кто держит файл открытым:
- На сервере откройте
Управление компьютером → Общие папки → Открытые файлы. - Найдите строки с путём к
1Cv8.1CD. - Правой кнопкой → «Закрыть открытый файл».
Если пользователи работают на терминальном сервере, их процессы 1cv8.exe или 1cv8c.exe видны в диспетчере задач на вкладке «Пользователи».
Принудительное закрытие файла или снятие процесса обрывает работу без сохранения. Несохранённые документы пропадут. Делайте это только после предупреждения и только когда другие способы не сработали.
Как отключить сеансы в клиент-серверной базе
Для базы на сервере 1С:Предприятия есть полноценный инструмент — консоль администрирования серверов. Она работает через агент сервера (порт 1540).
Шаг 1. Запретить новые подключения
- Откройте консоль, разверните
Кластеры → ваш кластер → Информационные базы. - Правой кнопкой по базе → «Свойства».
- Отметьте «Блокировка начала сеансов включена».
- Заполните сообщение, время начала и окончания блокировки и код разрешения.
- Если нужно остановить регламентные задания, отметьте «Блокировка регламентных заданий включена».
- Нажмите «ОК». Консоль запросит логин и пароль администратора информационной базы, если он задан.
Шаг 2. Завершить текущие сеансы
- В той же базе раскройте ветку
Сеансы. - Выделите сеансы (можно несколько через
ShiftилиCtrl). - Правой кнопкой → «Удалить».
Сеанс исчезнет из списка, а у пользователя появится сообщение о разрыве соединения.
Если после удаления сеанса база всё ещё занята, загляните в ветку Соединения того же уровня. Подвисшее соединение тоже можно разорвать вручную.
Блокировка из самой программы
Форма «Блокировка работы пользователей» в типовой конфигурации работает и для серверной базы. При первом запуске она попросит параметры администрирования кластера: логин и пароль администратора кластера, если они заданы. Удобно, когда у бухгалтера-администратора нет доступа к консоли на сервере.
| Способ | Где работает | Кто может | Риск потери данных |
|---|---|---|---|
| Блокировка работы пользователей (БСП) | файловая и серверная база | администратор программы | низкий: даёт время сохраниться |
| Консоль кластера, удаление сеансов | только серверная | администратор кластера | высокий: обрывает сразу |
| Закрытие файла в Windows | только файловая | администратор сервера | высокий |
rac из командной строки | только серверная | администратор кластера | высокий, но удобно по расписанию |
Если пользователь уволился: удаление учётной записи
Вторая трактовка задачи — убрать человека из базы навсегда. Здесь важно различать две сущности:
- 📇 элемент справочника «Пользователи» — на него ссылаются документы (поле «Ответственный», «Автор»);
- 🔑 пользователь информационной базы — учётная запись платформы с логином, паролем и ролями.
В типовой конфигурации они связаны: карточка справочника управляет учётной записью платформы.
Правильный порядок в типовой конфигурации
- Откройте
Администрирование → Настройки пользователей и прав → Пользователи. - Откройте карточку сотрудника.
- Снимите флажок «Вход в программу разрешен» и запишите карточку.
Этого достаточно: человек больше не войдёт, а все документы с его фамилией остаются целыми. Если нужно убрать сотрудника из списков выбора, пометьте карточку на удаление. Полностью удалить элемент справочника удастся, только если на него нет ссылок, а у бухгалтера со стажем ссылки есть почти всегда.
Если уволенный сотрудник сейчас в базе, сначала завершите его сеанс одним из способов выше. Запрет входа не выбрасывает уже открытый сеанс.
Почему не стоит удалять пользователя в Конфигураторе
В Конфигураторе есть список Администрирование → Пользователи, и удалить оттуда запись технически можно. Но так удаляется только учётная запись платформы. Элемент справочника остаётся, его карточка теряет связь с логином.
Следствия:
- в списке пользователей программы появляется сотрудник без учётной записи, и непонятно, есть у него доступ или нет;
- если позже завести логин с тем же именем в Конфигураторе, типовая конфигурация не свяжет его с прежней карточкой автоматически.
Исправить такую рассинхронизацию можно из карточки пользователя в режиме 1С:Предприятие: снова разрешите вход, задайте логин и пароль, запишите. Программа создаст новую учётную запись платформы и свяжет её с карточкой. После этого при необходимости снова запретите вход.
Облачная 1С: что можно сделать самому
В облаке (1С:Фреш и сервисы партнёров на той же технологии) у вас нет доступа к серверу и консоли кластера. Сеансы обрывает сам сервис, когда обновляет приложение или выгружает копию.
Что остаётся абоненту:
- 👀 посмотреть, кто сейчас в приложении, через «Активные пользователи» внутри программы;
- 🚫 закрыть сотруднику доступ к приложению в личном кабинете сервиса, в списке пользователей абонента;
- 📞 если сеанс завис и мешает (например, документ остаётся заблокированным), обратиться в поддержку сервиса.
Обычно этого хватает: обновления в облаке ставит провайдер, и монопольный доступ абоненту нужен редко.
Выгнать пользователей из командной строки и по расписанию
Ручная блокировка удобна раз в месяц. Если базу обновляют ночью скриптом, сеансы тоже закрывают автоматически.
Через ключ запуска типовой конфигурации
Типовые конфигурации понимают параметр /C со специальными командами:
ЗавершитьРаботуПользователей— ставит блокировку и выгоняет всех;РазрешитьРаботуПользователей— снимает блокировку.
rem Файловая база: закрыть вход и выгнать пользователей
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UCobnov
rem Серверная база: то же самое
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UCobnov
rem После работ — снять блокировку
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"РазрешитьРаботуПользователей" /UCobnov
Код разрешения /UC в первой команде нужен, чтобы сам сеанс со скриптом не попал под собственную блокировку.
Через утилиту rac (только серверная база)
Утилита rac лежит в папке bin платформы и работает через службу RAS, которую нужно запустить заранее. Порт RAS по умолчанию — 1545.
rem Узнать идентификатор кластера
rac cluster list
rem Узнать идентификатор базы
rac infobase summary list --cluster=<id_кластера>
rem Запретить новые сеансы и регламентные задания
rac infobase update --cluster=<id_кластера> --infobase=<id_базы> ^
--infobase-user="Администратор" --infobase-pwd="пароль" ^
--sessions-deny=on --scheduled-jobs-deny=on ^
--denied-message="Обновление базы" --permission-code=obnov
rem Список сеансов
rac session list --cluster=<id_кластера> --infobase=<id_базы>
rem Завершить конкретный сеанс
rac session terminate --cluster=<id_кластера> --session=<id_сеанса>
Если на кластере задан администратор, добавьте к командам --cluster-user и --cluster-pwd. Полный список параметров печатает rac help session и rac help infobase.
Пароли в bat-файле лежат открытым текстом. Храните такой скрипт в папке, доступной только администратору, и не кладите его в общую сетевую папку.
После работ снимите блокировку той же командой rac infobase update, но с --sessions-deny=off --scheduled-jobs-deny=off. Забытая блокировка — частая причина утренних звонков «1С не пускает».
Что идёт не так и как это исправить
Частые вопросы
Можно ли выгнать одного пользователя, не трогая остальных?
rac session terminate. В файловой базе штатного способа нет, проще попросить человека выйти.Что увидит пользователь, которого выбросили?
Освободится ли лицензия после принудительного завершения сеанса?
rac session list --licenses.