Как принудительно завершить сеанс пользователя в 1С 8.3
Содержание
Закрыть активного пользователя в 1С 8.3 проще всего из самой базы: Администрирование → Обслуживание → Активные пользователи, выделить сеанс и нажать «Завершить сеанс». Эта команда есть в типовых конфигурациях на БСП. В клиент-серверной базе программа дополнительно попросит логин и пароль администратора кластера.
Частое заблуждение — что достаточно попросить коллегу «выйти из 1С». Окно он закроет, но фоновое задание, зависшее COM-соединение или забытый на другом компьютере тонкий клиент останутся. Поэтому администратору нужно уметь не только завершить сеанс, но и запретить новые подключения на время работ.
1. Кто сейчас работает в базе: смотрим активные сеансы
Прежде чем кого-то выкидывать, посмотрите, кто и чем занят. Иногда «висящий» пользователь — это регламентное задание обмена, и его закрытие ничего не даст: через минуту оно запустится снова.
Где увидеть список активных пользователей
| Где смотреть | Путь | Что видно |
|---|---|---|
| Режим 1С:Предприятие (типовые на БСП) | Администрирование → Обслуживание → Активные пользователи | Пользователь, компьютер, приложение, начало сеанса, номер сеанса |
| Любая конфигурация | Все функции → Стандартные → Активные пользователи | То же, но только просмотр |
| Конфигуратор | Администрирование → Активные пользователи | Список сеансов, без завершения |
| Сервер 1С | Консоль кластера → база → Сеансы | Плюс процесс rphost, захваченные лицензии, занятость, блокировки СУБД |
Если пункта Все функции в меню нет, включите его: Сервис и настройки (кнопка-шестерёнка в правом верхнем углу) → Параметры → флажок «Отображать команду “Все функции”».
На что смотреть в колонке «Приложение»
- 🖥️ Тонкий / толстый клиент, веб-клиент — живой человек. Его можно предупредить.
- ⚙️ Фоновое задание — регламентные задания: обмены, загрузка курсов, обновление индексов. Закрывать бесполезно, нужно блокировать регламентные задания.
- 🔌 COM-соединение — внешняя программа: сайт, обработка обмена, скрипт. Часто «зависает» и держит базу часами.
- 🛠️ Конфигуратор — второй администратор или программист. С ним лучше договориться по телефону.
Отсортируйте список по колонке «Начало работы». Сеанс, открытый трое суток назад, почти всегда — забытый клиент на чужом компьютере или повисшее соединение.
2. Как завершить сеанс пользователя штатными средствами 1С
В типовых конфигурациях на Библиотеке стандартных подсистем (Бухгалтерия 3.0, ЗУП 3, УТ 11, КА 2, ERP) всё делается без консоли сервера.
Закрыть одного пользователя
- Откройте
Администрирование → Обслуживание → Активные пользователи. - Выделите строку с нужным сеансом. Можно выделить несколько через
Ctrl. - Нажмите «Завершить сеанс».
- Для клиент-серверной базы введите имя и пароль администратора кластера (если кластер без администратора — оставьте пустыми) и администратора базы.
- Обновите список и убедитесь, что строка пропала.
Несохранённые данные пользователя пропадут. Документ, который он редактировал, не запишется. Позвоните или напишите человеку до того, как нажимать кнопку.
Закрыть всех и не пустить обратно: блокировка работы пользователей
Если нужно закрыть 1С у всех пользователей сразу, используйте блокировку. В той же группе Обслуживание найдите ссылку «Блокировка работы пользователей» и заполните форму:
- 📝 Сообщение — что увидят пользователи: «Обновление базы с 19:00 до 20:00».
- ⏰ Начало и окончание — время, с которого вход запрещён.
- 🔑 Код разрешения — пароль, с которым войти всё же можно. Например,
upd2024. - ☑️ Флажок блокировки регламентных заданий, если он есть в форме вашей версии.
После установки блокировки работающим пользователям начинают приходить предупреждения, а к моменту начала блокировки программа сама завершает их сеансы. Сам администратор входит в базу с параметром /UC<код>, о нём ниже.
Не забудьте снять блокировку после работ. Иначе утром бухгалтерия увидит ваше сообщение и не сможет войти. Снять её можно в той же форме кнопкой «Снять блокировку».
Если конфигурация нетиповая
В самописной базе без БСП формы «Блокировка работы пользователей» может не быть, а платформенная обработка «Активные пользователи» только показывает список. В этом случае для клиент-серверной базы переходите к консоли кластера, для файловой — к средствам Windows.
3. Как закрыть активного пользователя через консоль сервера 1С
На сервере 1С:Предприятия сеансы живут в кластере, и администратор кластера может завершить любой из них, даже если сама база зависла.
Консоль администрирования серверов 1С (Windows)
- Запустите «Администрирование серверов 1С Предприятия» из меню Пуск. Если оснастки нет — её устанавливают компонентом «Администрирование сервера 1С:Предприятия» из дистрибутива платформы.
- Раскройте
Central 1C:Enterprise 8.3 servers→ ваш сервер →Кластеры→ кластер →Информационные базы→ нужная база →Сеансы. - Найдите пользователя в правой панели. Колонки «Компьютер», «Приложение» и «Время начала» помогают отличить его сеансы.
- Правой кнопкой по строке → «Удалить». Подтвердите.
Там же, в свойствах информационной базы, есть блокировка: флажок «Блокировка начала сеансов включена», поля начала и окончания, сообщение и код разрешения. Рядом — «Блокировка регламентных заданий включена». Это серверный аналог формы из БСП, работает в любой конфигурации.
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. Варианты:
- На компьютере пользователя — завершите в Диспетчере задач процессы
1cv8c.exe(тонкий клиент) или1cv8.exe(толстый клиент, Конфигуратор). Удалённо:taskkill /S <компьютер> /IM 1cv8c.exe /F. - На компьютере, где лежит база (если она в общей папке) — откройте
Управление компьютером → Общие папки → Открытые файлы, найдите1Cv8.1CDи закройте файл для нужного пользователя.
Закрытие файла посреди записи может повредить базу. Перед этим сделайте копию каталога базы, а после — проверьте её через Конфигуратор: Администрирование → Тестирование и исправление.
Клиент-серверная база
На сервере 1С каждый рабочий процесс rphost обслуживает сразу много сеансов, часто из разных баз. Если завершить rphost.exe в Диспетчере задач, оборвутся все сеансы этого процесса, а не один пользователь. Делайте это только в нерабочее время и только если консоль кластера не помогла.
Перезапуск службы «Агент сервера 1С:Предприятия 8.3» отключает вообще всех пользователей всех баз кластера. Предупредите людей заранее и выберите окно без проведения документов и обменов.
5. Монопольный режим для обновления: как убрать всех пользователей
Монопольный доступ нужен для обновления конфигурации с изменением структуры базы, загрузки .dt, тестирования и исправления. Пока в базе есть хоть один чужой сеанс, Конфигуратор сообщит, что база используется другими пользователями, и сменит режим не даст.
Порядок действий перед обновлением
- За 15-30 минут установите блокировку с сообщением и кодом разрешения (раздел 2 или консоль кластера).
- Включите блокировку регламентных заданий — иначе фоновые задания будут занимать базу снова.
- Дождитесь, пока платформа сама завершит сеансы. Оставшиеся закройте вручную.
- Отключите внешние подключения: сайт, обмен с маркетплейсом, скрипты на COM-соединении.
- Сделайте резервную копию:
Администрирование → Выгрузить информационную базув Конфигураторе. - Войдите в Конфигуратор с параметром
/UC<код разрешения>и обновляйтесь. - Снимите блокировку и проверьте вход обычным пользователем.
Сравнение способов
| Способ | Когда подходит | Риски |
|---|---|---|
| «Активные пользователи» → «Завершить сеанс» | Один-два пользователя, типовая конфигурация | Потеря несохранённых правок |
| Блокировка работы пользователей | Плановые работы, нужно выгнать всех | Забыть снять блокировку |
Консоль кластера / 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С зависла?
1cv8c.exe.Как узнать, кто и когда завершал сеансы?
Администрирование → Обслуживание → Журнал регистрации) и отберите события «Сеанс. Завершение». Там видно время, пользователя и компьютер.