Принудительное завершение сеанса пользователя в 1С 8.3: от списка активных до консоли кластера

· 9 мин

Содержание

Чтобы закрыть пользователя в 1С 8.3 из самой программы, откройте Администрирование → Обслуживание → Активные пользователи, выделите нужный сеанс и нажмите «Завершить сеанс». Это работает в типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) и требует права администратора системы. Если база клиент-серверная, тот же результат дают консоль кластера серверов и утилита rac.

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

Как найти сеанс пользователя, которого нужно закрыть

Сначала поймите, кого именно отключать. Один человек может держать сразу несколько сеансов: тонкий клиент, Конфигуратор, обработку по COM-соединению.

Где смотреть список подключений:

  • 👥 В режиме «Предприятие» — форма «Активные пользователи» в разделе Администрирование → Обслуживание. Видны пользователь, компьютер, приложение, время начала и номер сеанса.
  • 🛠 В Конфигураторе — меню Администрирование → Активные пользователи. Только просмотр, закрыть сеанс отсюда нельзя.
  • 🖥 В консоли кластера — ветка Информационные базы → <база> → Сеансы. Самая полная картина: здесь есть и фоновые задания, и COM-соединения, и сеансы с ошибками.

Как отличить «живой» сеанс от зависшего

Ориентируйтесь на колонки в консоли кластера:

ПризнакЧто означает
Приложение «Тонкий клиент», «Толстый клиент», «Веб-клиент»Обычная работа человека
Приложение «Конфигуратор»Кто-то открыл базу в режиме разработки
Приложение «Фоновое задание»Регламентное или фоновое задание
Приложение «COM-соединение»Внешняя обработка, обмен, интеграция
Время начала — несколько суток назадКандидат в «забытые» сеансы
Нет соединения у сеансаКлиент оборвался, сеанс висит на сервере

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

Перед закрытием напишите человеку или позвоните. Если он проводит документ или формирует отчёт, обрыв приведёт к потере несохранённых изменений.

Закрыть пользователя в 1С через форму «Активные пользователи»

Это самый безопасный путь. Платформа корректно завершает сеанс, лицензия освобождается.

Пошагово

  1. Войдите в базу под пользователем с правом «Администрирование» (обычно профиль «Администратор»).
  2. Откройте Администрирование → Обслуживание → Активные пользователи.
  3. Найдите строку с нужным пользователем. Сверьте компьютер и время начала.
  4. Нажмите «Завершить сеанс» в командной панели формы.
  5. Для клиент-серверной базы программа запросит логин и пароль администратора кластера, если он задан.
  6. Обновите список и убедитесь, что строка исчезла.

Пользователь увидит сообщение о том, что сеанс завершён администратором, и программа у него закроется.

Ограничения этого способа

  • 🔒 Без прав администратора системы команды завершения в форме не будет.
  • 📁 В файловой базе принудительное завершение чужого сеанса из этой формы работает не всегда: сеанс закроется, только если клиент пользователя сам отработает команду. Подробнее — в разделе про файловый вариант.
  • 🧩 В нетиповой или сильно доработанной конфигурации формы может не быть. Тогда переходите к консоли кластера.

Закрывая собственный сеанс, вы просто выйдете из программы. Проверяйте номер сеанса: текущий отмечен в списке.

Блокировка входа в 1С на время регламентных работ

Закрыть пользователя — полдела. Через минуту он может зайти снова. Перед обновлением конфигурации, загрузкой .dt или тестированием и исправлением нужно не пустить в базу никого, кроме администратора.

Через программу (БСП)

  1. Откройте Администрирование → Обслуживание и найдите ссылку «Блокировка работы пользователей».
  2. Заполните сообщение, которое увидят пользователи: «Обновление базы, вход откроется в 14:00».
  3. Укажите время начала и окончания блокировки.
  4. Задайте код разрешения — любую строку, например upd77.
  5. Нажмите «Установить блокировку».

После наступления времени начала программа предупреждает пользователей и завершает их сеансы. Новые входы запрещены.

Сами вы заходите в заблокированную базу с параметром запуска /UC. Его добавляют в поле «Дополнительные параметры запуска» в настройках базы в окне запуска или в ярлык:

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /UCupd77

Для Конфигуратора параметр тот же:

"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /S"srv1c\buh" /UCupd77

Блокировку снимайте той же формой — кнопкой «Снять блокировку». Если забыть, утром бухгалтерия не попадёт в базу.

Регламентные задания тоже нужно остановить

Фоновые задания (обмены, загрузка курсов, полнотекстовый поиск) создают свои сеансы. Их не закрывает блокировка пользователей. В клиент-серверной базе включите в свойствах базы флажок «Блокировка регламентных заданий включена» — об этом ниже.

Без остановки регламентных заданий обновление может упасть на середине из-за сеанса обмена, который стартует по расписанию.

Принудительное отключение пользователя через консоль кластера 1С

Консоль кластера серверов — главный инструмент администратора клиент-серверной базы. Она закрывает любые сеансы, включая зависшие и фоновые, и не зависит от конфигурации.

Удаление сеанса

  1. Запустите «Администрирование серверов 1С Предприятия» на сервере или на машине администратора.
  2. Раскройте Центральные серверы 1С:Предприятия → <сервер> → Кластеры → <кластер> → Информационные базы → <база> → Сеансы.
  3. Выделите сеанс пользователя. Можно выделить несколько.
  4. Правой кнопкой мыши — «Удалить».
  5. Подтвердите действие.

Сеанс исчезнет из списка, лицензия освободится сразу.

Блокировка начала сеансов в консоли

В свойствах информационной базы (правая кнопка на базе → «Свойства») есть блок параметров блокировки:

  • ✅ «Блокировка начала сеансов включена»;
  • 🕒 начало и конец блокировки;
  • 💬 сообщение для пользователей;
  • 🔑 код разрешения — тот же, что передаётся через /UC;
  • ⏸ «Блокировка регламентных заданий включена».

Для изменения свойств консоль запросит логин и пароль администратора информационной базы, а не только кластера.

Флажок блокировки в консоли не закрывает уже открытые сеансы. Он только запрещает новые. Действующие сеансы удалите вручную, как описано выше.

Если консоль не открывается

Типичная причина — оснастка не зарегистрирована после установки или обновления платформы. Регистрация выполняется из командной строки от имени администратора:

regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"

Номер версии в пути подставьте свой. После этого откройте файл консоли 1CV8 Servers.msc заново.

Утилита rac: то же из командной строки

Если оснастки нет или нужна автоматизация, используйте rac вместе с запущенной службой ras. Последовательность такая:

rac cluster list
rac infobase summary list --cluster=<uuid_кластера>
rac session list --cluster=<uuid_кластера> --infobase=<uuid_базы>
rac session terminate --cluster=<uuid_кластера> --session=<uuid_сеанса>

Если на кластере заданы администраторы, добавьте --cluster-user и --cluster-pwd. Полный список параметров для блокировки базы смотрите в справке rac help infobase.

Как закрыть пользователя в файловой базе 1С

В файловом варианте нет менеджера кластера. Каждый клиент работает с файлом 1Cv8.1CD напрямую. Поэтому «удалить сеанс» извне нельзя — можно только закрыть программу у пользователя.

Порядок действий, от мягкого к жёсткому:

  1. Блокировка работы пользователей (БСП). Клиенты периодически проверяют её и сами завершают работу. Срабатывает, если программа у пользователя не зависла.
  2. Закрытие программы на рабочем месте. Попросите сотрудника выйти или подключитесь к его компьютеру удалённо.
  3. Завершение процесса. На компьютере пользователя или терминальном сервере снимите процесс 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент и Конфигуратор).
  4. Закрытие открытого файла на сервере. Если база лежит в общей папке Windows, откройте на файловом сервере compmgmt.msc → Общие папки → Открытые файлы. Найдите 1Cv8.1CD у нужного пользователя и закройте файл.

Команда для терминального сервера, если известен ID процесса:

tasklist /FI "IMAGENAME eq 1cv8c.exe" /V
taskkill /PID 4812 /F

Снятие процесса и закрытие файла — аварийные меры. Пользователь потеряет несохранённые данные, а если в этот момент шла запись, база может потребовать тестирования и исправления. Делайте это, только когда сотрудник недоступен, и предупредите всех, кто работает на этом терминальном сервере.

На терминальном сервере удобнее завершить не процесс, а весь сеанс Windows пользователя через «Диспетчер задач → Пользователи». Но это закроет и другие его программы.

Когда файловую базу пора переводить на сервер

Если вы закрываете пользователей вручную каждую неделю, это сигнал. Файловый вариант рассчитан на небольшую команду. При 10–15 одновременных пользователях и регулярных обновлениях клиент-серверный вариант снимает большую часть проблем: появляется консоль, удаление сеансов и блокировка без беготни по кабинетам.

Автоматическое завершение сеансов: обработки и скрипты

Ручное отключение неудобно, когда обновление идёт ночью. Есть три рабочих подхода.

СпособГде работаетПлюсыМинусы
Пакетный файл с racКлиент-серверНе нужна 1С на машине запуска, легко ставится в планировщикНужна служба ras
Внешняя обработка через COMConnectorКлиент-серверЛогика на языке 1С, можно фильтровать по пользователюРегистрация comcntr.dll, разрядность должна совпадать
Блокировка БСП с отложенным стартомОба вариантаБез кода, с предупреждением пользователейЗависший клиент не закроется

Внешняя обработка через COMConnector

Ниже пример, который завершает все сеансы указанной базы, кроме фоновых заданий. Код выполняется на клиенте под Windows, где зарегистрирован comcntr.dll той же версии, что и сервер.

Процедура ЗавершитьСеансыБазы(ИмяСервера, ИмяБазы, АдминКластера, ПарольКластера) Экспорт

    Коннектор = Новый COMОбъект("V83.COMConnector");
    Агент = Коннектор.ConnectAgent("tcp://" + ИмяСервера + ":1540");

    Кластеры = Агент.GetClusters();
    Для Каждого Кластер Из Кластеры Цикл

        Агент.Authenticate(Кластер, АдминКластера, ПарольКластера);
        Базы = Агент.GetInfoBases(Кластер);

        Для Каждого База Из Базы Цикл
            Если НРег(База.Name) <> НРег(ИмяБазы) Тогда
                Продолжить;
            КонецЕсли;

            Сеансы = Агент.GetInfoBaseSessions(Кластер, База);
            Для Каждого Сеанс Из Сеансы Цикл
                Если Сеанс.AppID = "BackgroundJob" Тогда
                    Продолжить;
                КонецЕсли;
                Сообщить("Завершаю сеанс " + Формат(Сеанс.SessionID, "ЧГ=0")
                    + ": " + Сеанс.UserName + " (" + Сеанс.Host + ")");
                Агент.TerminateSession(Кластер, Сеанс);
            КонецЦикла;
        КонецЦикла;

    КонецЦикла;

КонецПроцедуры

Чтобы оставить свой сеанс, добавьте проверку Сеанс.SessionID против НомерСеансаИнформационнойБазы().

Если Новый COMОбъект("V83.COMConnector") падает с ошибкой создания объекта, зарегистрируйте компоненту командой regsvr32 "C:\Program Files\1cv8\<версия>\bin\comcntr.dll" от имени администратора. Разрядность 1С и зарегистрированной библиотеки должна совпадать.

Ночной сценарий для планировщика

Типовая схема автоматического обновления выглядит так:

  1. В 22:50 включить блокировку начала сеансов и регламентных заданий.
  2. В 23:00 завершить все оставшиеся сеансы базы.
  3. Выгрузить резервную копию и запустить обновление в пакетном режиме Конфигуратора с /UC.
  4. Снять блокировку после успешного завершения.
Перед ночным закрытием сеансов
Выполнено: 0 / 5

Что делать, если сеанс не закрывается

Бывает, что сеанс удалили, а он снова появляется в списке или висит с прежним номером.

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

Перезагрузка службы «Агент сервера 1С:Предприятия» — крайняя мера. Она закрывает все сеансы всех баз кластера одновременно. Применяйте её только когда остальные способы не сработали и только в согласованное окно.

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

Освобождается ли лицензия после принудительного закрытия сеанса?
Да. Лицензия освобождается, как только сеанс удалён из кластера. В файловой базе — когда процесс 1С на компьютере пользователя завершён.
Можно ли закрыть только одного пользователя, а не всех?
Да. В форме «Активные пользователи» и в консоли кластера удаляется выделенный сеанс. Остальные продолжают работу.
Узнает ли пользователь, что его отключили?
При завершении сеанса штатными средствами пользователь видит сообщение о завершении сеанса администратором. При снятии процесса программа просто закрывается без пояснений.
Чем блокировка в консоли отличается от блокировки в программе?
Консоль пишет параметры блокировки прямо в свойства базы на кластере. Программа на БСП дополнительно предупреждает пользователей заранее и закрывает их сеансы сама. Обе используют один и тот же код разрешения для /UC.
Нужен ли монопольный режим, чтобы просто поработать в Конфигураторе?
Нет. Монопольный доступ нужен для обновления структуры базы, загрузки .dt, тестирования и исправления. Для просмотра конфигурации или выгрузки файла закрывать пользователей не обязательно.