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

· 9 мин

Содержание

Закрыть активного пользователя в 1С 8.3 проще всего из самой базы: Администрирование → Обслуживание → Активные пользователи, выделить сеанс и нажать «Завершить сеанс». Эта команда есть в типовых конфигурациях на БСП. В клиент-серверной базе программа дополнительно попросит логин и пароль администратора кластера.

Частое заблуждение — что достаточно попросить коллегу «выйти из 1С». Окно он закроет, но фоновое задание, зависшее COM-соединение или забытый на другом компьютере тонкий клиент останутся. Поэтому администратору нужно уметь не только завершить сеанс, но и запретить новые подключения на время работ.

1. Кто сейчас работает в базе: смотрим активные сеансы

Прежде чем кого-то выкидывать, посмотрите, кто и чем занят. Иногда «висящий» пользователь — это регламентное задание обмена, и его закрытие ничего не даст: через минуту оно запустится снова.

Где увидеть список активных пользователей

Где смотретьПутьЧто видно
Режим 1С:Предприятие (типовые на БСП)Администрирование → Обслуживание → Активные пользователиПользователь, компьютер, приложение, начало сеанса, номер сеанса
Любая конфигурацияВсе функции → Стандартные → Активные пользователиТо же, но только просмотр
КонфигураторАдминистрирование → Активные пользователиСписок сеансов, без завершения
Сервер 1СКонсоль кластера → база → СеансыПлюс процесс rphost, захваченные лицензии, занятость, блокировки СУБД

Если пункта Все функции в меню нет, включите его: Сервис и настройки (кнопка-шестерёнка в правом верхнем углу) → Параметры → флажок «Отображать команду “Все функции”».

На что смотреть в колонке «Приложение»

  • 🖥️ Тонкий / толстый клиент, веб-клиент — живой человек. Его можно предупредить.
  • ⚙️ Фоновое задание — регламентные задания: обмены, загрузка курсов, обновление индексов. Закрывать бесполезно, нужно блокировать регламентные задания.
  • 🔌 COM-соединение — внешняя программа: сайт, обработка обмена, скрипт. Часто «зависает» и держит базу часами.
  • 🛠️ Конфигуратор — второй администратор или программист. С ним лучше договориться по телефону.

Отсортируйте список по колонке «Начало работы». Сеанс, открытый трое суток назад, почти всегда — забытый клиент на чужом компьютере или повисшее соединение.

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

В типовых конфигурациях на Библиотеке стандартных подсистем (Бухгалтерия 3.0, ЗУП 3, УТ 11, КА 2, ERP) всё делается без консоли сервера.

Закрыть одного пользователя

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

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

Закрыть всех и не пустить обратно: блокировка работы пользователей

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

  • 📝 Сообщение — что увидят пользователи: «Обновление базы с 19:00 до 20:00».
  • ⏰ Начало и окончание — время, с которого вход запрещён.
  • 🔑 Код разрешения — пароль, с которым войти всё же можно. Например, upd2024.
  • ☑️ Флажок блокировки регламентных заданий, если он есть в форме вашей версии.

После установки блокировки работающим пользователям начинают приходить предупреждения, а к моменту начала блокировки программа сама завершает их сеансы. Сам администратор входит в базу с параметром /UC<код>, о нём ниже.

Не забудьте снять блокировку после работ. Иначе утром бухгалтерия увидит ваше сообщение и не сможет войти. Снять её можно в той же форме кнопкой «Снять блокировку».

Если конфигурация нетиповая

В самописной базе без БСП формы «Блокировка работы пользователей» может не быть, а платформенная обработка «Активные пользователи» только показывает список. В этом случае для клиент-серверной базы переходите к консоли кластера, для файловой — к средствам Windows.

3. Как закрыть активного пользователя через консоль сервера 1С

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

Консоль администрирования серверов 1С (Windows)

  1. Запустите «Администрирование серверов 1С Предприятия» из меню Пуск. Если оснастки нет — её устанавливают компонентом «Администрирование сервера 1С:Предприятия» из дистрибутива платформы.
  2. Раскройте Central 1C:Enterprise 8.3 servers → ваш сервер → Кластеры → кластер → Информационные базы → нужная база → Сеансы.
  3. Найдите пользователя в правой панели. Колонки «Компьютер», «Приложение» и «Время начала» помогают отличить его сеансы.
  4. Правой кнопкой по строке → «Удалить». Подтвердите.

Там же, в свойствах информационной базы, есть блокировка: флажок «Блокировка начала сеансов включена», поля начала и окончания, сообщение и код разрешения. Рядом — «Блокировка регламентных заданий включена». Это серверный аналог формы из БСП, работает в любой конфигурации.

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

На Linux-сервере или когда нужно автоматизировать, используйте утилиту rac. Ей нужен запущенный сервер администрирования ras (по умолчанию порт 1545).

:: запустить ras, если он не работает как служба
ras cluster --daemon

:: узнать идентификатор кластера
rac cluster list

:: список баз кластера
rac infobase --cluster=<uuid-кластера> summary list

:: сеансы конкретной базы
rac session --cluster=<uuid-кластера> list --infobase=<uuid-базы>

:: завершить сеанс
rac session --cluster=<uuid-кластера> terminate --session=<uuid-сеанса>

Если на кластере задан администратор, добавьте к командам --cluster-user=<имя> --cluster-pwd=<пароль>. Полный список параметров для вашей версии платформы покажет rac help session.

Номер сеанса в форме «Активные пользователи» и идентификатор session в rac — разные вещи. В выводе rac session list ищите поле session-id (это тот самый номер) и берите session из той же записи.

4. Принудительное закрытие 1С средствами операционной системы

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

Файловая база

В файловом варианте нет кластера, базой «владеет» тот, кто открыл файл 1Cv8.1CD. Варианты:

  1. На компьютере пользователя — завершите в Диспетчере задач процессы 1cv8c.exe (тонкий клиент) или 1cv8.exe (толстый клиент, Конфигуратор). Удалённо: taskkill /S <компьютер> /IM 1cv8c.exe /F.
  2. На компьютере, где лежит база (если она в общей папке) — откройте Управление компьютером → Общие папки → Открытые файлы, найдите 1Cv8.1CD и закройте файл для нужного пользователя.

Закрытие файла посреди записи может повредить базу. Перед этим сделайте копию каталога базы, а после — проверьте её через Конфигуратор: Администрирование → Тестирование и исправление.

Клиент-серверная база

На сервере 1С каждый рабочий процесс rphost обслуживает сразу много сеансов, часто из разных баз. Если завершить rphost.exe в Диспетчере задач, оборвутся все сеансы этого процесса, а не один пользователь. Делайте это только в нерабочее время и только если консоль кластера не помогла.

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

5. Монопольный режим для обновления: как убрать всех пользователей

Монопольный доступ нужен для обновления конфигурации с изменением структуры базы, загрузки .dt, тестирования и исправления. Пока в базе есть хоть один чужой сеанс, Конфигуратор сообщит, что база используется другими пользователями, и сменит режим не даст.

Порядок действий перед обновлением

  1. За 15-30 минут установите блокировку с сообщением и кодом разрешения (раздел 2 или консоль кластера).
  2. Включите блокировку регламентных заданий — иначе фоновые задания будут занимать базу снова.
  3. Дождитесь, пока платформа сама завершит сеансы. Оставшиеся закройте вручную.
  4. Отключите внешние подключения: сайт, обмен с маркетплейсом, скрипты на COM-соединении.
  5. Сделайте резервную копию: Администрирование → Выгрузить информационную базу в Конфигураторе.
  6. Войдите в Конфигуратор с параметром /UC<код разрешения> и обновляйтесь.
  7. Снимите блокировку и проверьте вход обычным пользователем.
Перед обновлением базы
Выполнено: 0 / 7

Сравнение способов

СпособКогда подходитРиски
«Активные пользователи» → «Завершить сеанс»Один-два пользователя, типовая конфигурацияПотеря несохранённых правок
Блокировка работы пользователейПлановые работы, нужно выгнать всехЗабыть снять блокировку
Консоль кластера / racКлиент-серверная база, сеанс не закрывается из 1СНужны права администратора кластера
Завершить процесс 1cv8c.exeФайловая база, клиент зависПовреждение данных при записи
Завершить rphost / перезапустить службуВсё остальное не помоглоОбрыв всех сеансов кластера

6. Автоматизация: как закрыть пользователей 1С скриптом и кодом

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

Параметры запуска типовых конфигураций

В конфигурациях на БСП есть встроенные команды запуска:

  • /C "ЗавершитьРаботуПользователей" — устанавливает блокировку и завершает сеансы. Окно 1С с этим параметром нужно держать открытым, пока все не выйдут.
  • /C "РазрешитьРаботуПользователей" — снимает блокировку.
  • /UC<код> — вход в заблокированную базу.
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /UCupd2024 /C "ЗавершитьРаботуПользователей"

Путь к 1cestart.exe и имя базы подставьте свои. Для файловой базы вместо /S"сервер\база" пишут /F"D:\Bases\Buh".

Блокировка через rac

Для серверной базы блокировку ставят командой rac infobase update с параметрами вроде --sessions-deny=on, --scheduled-jobs-deny=on, --denied-message и --permission-code. Для неё нужен логин и пароль пользователя базы (--infobase-user, --infobase-pwd). Проверьте точный набор параметров для своей платформы через rac help infobase — между версиями он менялся.

Код на встроенном языке

Посмотреть сеансы из своей обработки можно так:

Для Каждого Сеанс Из ПолучитьСеансыИнформационнойБазы() Цикл
    Сообщить(Строка(Сеанс.НомерСеанса) + " | " + Сеанс.Пользователь
        + " | " + Сеанс.ИмяПриложения + " | " + Сеанс.ИмяКомпьютера);
КонецЦикла;

Завершить чужой сеанс одним методом платформы нельзя — для этого нужно подключиться к агенту кластера через COM-объект V83.COMConnector:

Коннектор = Новый COMОбъект("V83.COMConnector");
Агент = Коннектор.ConnectAgent("tcp://srv1c:1540");
Кластер = Агент.GetClusters()[0];
Агент.Authenticate(Кластер, "", "");   // администратор кластера
Для Каждого Сеанс Из Агент.GetSessions(Кластер) Цикл
    Если Сеанс.UserName = "Иванов" Тогда
        Агент.TerminateSession(Кластер, Сеанс);
    КонецЕсли;
КонецЦикла;

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

7. Почему пользователь не закрывается или сразу возвращается

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

Частые ошибки администратора

  • ❌ Закрывают сеанс без предупреждения. Человек теряет полчаса работы над документом и снова открывает 1С через минуту.
  • ❌ Блокируют сеансы, но не регламентные задания. Обновление срывается на «занятой» базе в три часа ночи.
  • ❌ Используют одного «Администратора» на троих. В списке не понять, чей это сеанс; заведите каждому свою учётную запись.
  • ❌ Убивают rphost, чтобы закрыть одного человека. Вместе с ним вылетает половина офиса.

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

Освобождает ли закрытие сеанса лицензию?
Да. Клиентская лицензия занята, пока сеанс существует. После завершения сеанса она возвращается в общий пул, и другой сотрудник может войти.
Можно ли закрыть сеанс самому себе, если 1С зависла?
Да. Из другого окна 1С или из консоли кластера завершите свой старый сеанс так же, как чужой. В файловой базе достаточно закрыть процесс 1cv8c.exe.
Как узнать, кто и когда завершал сеансы?
Откройте журнал регистрации (Администрирование → Обслуживание → Журнал регистрации) и отберите события «Сеанс. Завершение». Там видно время, пользователя и компьютер.
Нужны ли права администратора, чтобы завершить чужой сеанс?
Да. Нужна роль с правом администрирования в базе, а для серверной базы — ещё и учётные данные администратора кластера, если он задан.
Видит ли пользователь, что его отключили?
При блокировке он получает предупреждения с вашим текстом. При завершении сеанса из консоли клиент просто сообщает об ошибке соединения и закрывается или предлагает перезапуск.