Принудительно завершаем чужой сеанс в 1С:Предприятии 8.2
Содержание
Выкинуть пользователя из 1С 8.2 быстрее всего через консоль кластера серверов: Кластер → Информационные базы → ваша база → Сеансы, правый клик по сеансу → Удалить. Это работает для клиент-серверной базы. В файловой базе консоли нет, там сеанс завершают на компьютере пользователя или закрывают открытый файл базы на сервере.
Речь именно о платформе 8.2: обычные формы, толстый клиент, тонкий клиент 1cv8c.exe, консоль на radmin.dll. Утилиты rac и ras появились только в 8.3, в 8.2 их нет. Ниже способы по возрастанию жёсткости: от мягкого отключения до снятия процесса.
Любое принудительное завершение рвёт работу человека. Несохранённый документ пропадёт, незаписанная форма закроется. Сначала предупредите пользователя по телефону или в мессенджере, дайте 2–3 минуты.
Кто сейчас в базе: проверяем сеансы и соединения
Прежде чем кого-то выгонять, посмотрите, кто на самом деле работает. Часто «висит» не человек, а фоновое задание или забытый Конфигуратор.
Где смотреть список:
- 🖥 Конфигуратор →
Администрирование → Активные пользователи. Только просмотр, завершить сеанс отсюда нельзя. - 📋 Режим 1С:Предприятие, обычный интерфейс → меню
Сервис → Активные пользователи. Тоже только просмотр. - 🗂 Консоль кластера → ветка
Сеансыу нужной базы. Здесь и просмотр, и удаление.
Что важно в списке:
| Колонка | Зачем смотреть |
|---|---|
| Пользователь | Кого отключаем. Пустое имя бывает у фоновых заданий и баз без списка пользователей |
| Компьютер | С какой машины зашли. Помогает найти человека или терминальный сеанс |
| Приложение | Толстый клиент, тонкий клиент, Конфигуратор, фоновое задание, COM-соединение |
| Начало сеанса | Сеанс трёхдневной давности почти наверняка «мёртвый» |
💡 Отличайте сеанс от соединения. Сеанс — это работа пользователя с базой. Соединение — канал, через который клиент общается с рабочим процессом. Если удалить только соединение, клиент 8.2 часто переподключится сам, и пользователь ничего не заметит. Выкидывать нужно сеанс.
Как выкинуть пользователя из 1С 8.2 через консоль кластера серверов
Главный способ для клиент-серверного варианта. Консоль — оснастка MMC «Администрирование серверов 1С:Предприятия», ставится вместе с платформой.
Пошагово
- Запустите консоль из меню «Пуск» (группа 1С:Предприятие 8.2).
- Если сервер ещё не добавлен: правый клик по
Central 1C:Enterprise 8.2 servers→Создать → Центральный сервер 1С:Предприятия 8.2. Укажите имя сервера, порт агента 1540. - Раскройте
Кластеры → Локальный кластер(или ваш кластер) →Информационные базы→ нужная база. - Если на базе включена аутентификация, консоль спросит логин и пароль администратора информационной базы.
- Откройте ветку
Сеансы. Найдите строку по имени пользователя и компьютеру. - Правый клик →
Удалить. Подтвердите.
Сеанс исчезнет из списка через несколько секунд. У пользователя 1С выдаст сообщение о разрыве и закроется или предложит перезапуск.
Отключить сразу всех можно так же: выделите все строки в Сеансы через Shift и удалите разом. Фоновые задания при этом тоже оборвутся.
Что теряет пользователь при удалении сеанса
Удаление сеанса не откатывает то, что уже записано. Проведённые документы, записанные справочники и сохранённые настройки остаются в базе.
Пропадает только то, что человек не успел записать:
- 📝 открытый документ, который заполнили, но не записали;
- 📊 сформированный отчёт, который ещё не сохранили в файл;
- ⏳ длительная операция, например закрытие месяца или групповое перепроведение. Транзакция откатится целиком, и операцию придётся запускать заново.
Поэтому перед удалением посмотрите на колонку «Приложение» и время начала. Если у бухгалтера идёт закрытие месяца, лучше подождать его окончания, чем через час запускать всё повторно.
Если консоль не открывается
- 🔧 Ошибка при запуске оснастки, пустое окно. Не зарегистрирована библиотека
radmin.dll. Регистрируется из командной строки от имени администратора:
regsvr32 "C:\Program Files\1cv82\8.2.19.130\bin\radmin.dll"
Номер версии в пути подставьте свой, он должен совпадать с версией сервера. На 64-битной Windows с 32-битной платформой путь будет C:\Program Files (x86)\1cv82\....
🔐 Консоль просит пароль администратора кластера. Значит, администраторы кластера заданы. Нужен их логин. Если пароль утерян, не пересоздавайте кластер: восстановите настройки из резервной копии каталога
srvinfoпри остановленной службе или обратитесь к тому, кто настраивал сервер.🌐 Не подключается к удалённому серверу. Проверьте, что с вашей машины открыты порты 1540 (агент) и 1541 (менеджер кластера), а также диапазон рабочих процессов, по умолчанию 1560–1591.
Отключение пользователей из режима 1С:Предприятие
Консоль есть не у всех. Бухгалтеру с полными правами иногда проще работать из самой программы.
Сама платформа 8.2 из режима Предприятие чужой сеанс не завершает: список активных пользователей там только для просмотра. Завершение делают обработки типовых конфигураций.
Конфигурации на обычных формах (БП 2.0, ЗУП 2.5, УПП 1.3)
- Меню
Операции → Обработки. Пункт доступен пользователю с полными правами. - Найдите в списке обработку с «блокировкой соединений» или «завершением работы пользователей» в названии.
- Задайте время начала блокировки и текст сообщения.
- Включите блокировку.
Сеансы, открытые в этой же базе, получат предупреждение и через несколько минут завершатся сами. Тот, кто включил блокировку, останется в базе.
Конфигурации на управляемых формах
В конфигурациях на управляемом приложении, которые работали на 8.2 (ранние БП 3.0, УТ 11), то же самое делает обработка «Блокировка работы пользователей». Она находится в разделе администрирования, а список сеансов там позволяет завершить выбранный сеанс кнопкой.
В клиент-серверной базе обработке нужны параметры администрирования кластера: если на кластере задан администратор, программа спросит его логин и пароль. Без них выкинуть пользователя из программы не получится.
Файловая база: кто держит файл 1Cv8.1CL
В файловом варианте нет кластера и нет консоли. Каждый пользователь открывает файл 1Cv8.1CD напрямую. Рядом лежит файл блокировки 1Cv8.1CL: пока он занят, кто-то в базе.
Что делать по порядку:
- Откройте
Конфигуратор → Администрирование → Активные пользователи. Запишите имена и компьютеры. - Позвоните людям, попросите выйти.
- Если человека нет на месте, переходите к закрытию файла на сервере.
Закрыть открытый файл на сервере
Когда база лежит в общей папке, Windows помнит, кто открыл файл.
- На компьютере с базой нажмите
Win+Rи запуститеfsmgmt.msc. - Откройте
Открытые файлы. - Найдите строки с
1Cv8.1CDи1Cv8.1CL. В колонке «Пользователь» видно, чья это учётная запись Windows. - Правый клик →
Закрыть открытый файл.
То же из командной строки:
net file
net file 1234 /close
Первая команда выводит список открытых по сети файлов с идентификаторами. Вторая закрывает файл с идентификатором 1234.
Закрытие файла в момент записи может повредить базу. Перед этим сделайте копию каталога базы. Делайте это, когда пользователь точно не проводит документ.
Удалять ли 1Cv8.1CL
Только если в базе никого нет, а файл остался после сбоя (например, отключили свет). Тогда он удаляется без последствий. Если файл не удаляется и Windows пишет, что он занят, значит, процесс 1С ещё жив. Удалять силой нельзя, сначала найдите и закройте процесс.
Запрет новых входов на время работ
Выкинуть пользователя — полдела. Через минуту он зайдёт снова. Перед обновлением или выгрузкой базы ставьте блокировку начала сеансов.
В консоли кластера
- Правый клик по базе →
Свойства. - Отметьте
Блокировка начала сеансов включена. - Заполните
НачалоиКонецблокировки. - Напишите
Сообщение— его увидит тот, кто попробует войти. - Задайте
Код разрешения, напримерobnovlenie. - При необходимости отметьте
Блокировка регламентных заданий включена, чтобы фоновые задания не мешали обновлению.
Сами вы войдёте, добавив код к строке запуска через параметр /UC:
"C:\Program Files\1cv82\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /UC obnovlenie
Блокировка начала сеансов не выгоняет тех, кто уже в базе. Порядок такой: включить блокировку → удалить сеансы → работать → снять блокировку.
В файловой базе
Здесь блокировку ставит обработка конфигурации из предыдущего раздела. Она запрещает вход всем, кроме вас, пока не снимете отметку.
Аварийное завершение процесса в Windows
Крайняя мера, когда сеанс завис, консоль не видит пользователя или файловая база не отпускает файл.
На компьютере пользователя или терминальном сервере
Процессы клиента 8.2:
| Процесс | Что это |
|---|---|
1cv8.exe | Толстый клиент и Конфигуратор |
1cv8c.exe | Тонкий клиент |
Найти процессы конкретного пользователя на терминальном сервере:
tasklist /FI "IMAGENAME eq 1cv8.exe" /V
Ключ /V добавляет колонку с именем пользователя. Снять процессы одного человека:
taskkill /FI "USERNAME eq ivanov" /IM 1cv8.exe /F
На чужом компьютере в сети, при правах администратора:
taskkill /S buh-pc05 /IM 1cv8.exe /F
Если человек ушёл и оставил терминальную сессию, проще завершить её целиком. query session покажет номера сессий, logoff 3 завершит сессию с номером 3. В диспетчере задач на терминальном сервере то же делается на вкладке «Пользователи».
На сервере 1С: рабочий процесс rphost
Можно завершить rphost.exe в диспетчере задач сервера. Это оборвёт сеансы всех пользователей, обслуживаемых этим процессом, а не одного. Делайте это только вне рабочего времени или когда все уже предупреждены. Службу агента сервера при этом не трогайте: кластер сам поднимет новый рабочий процесс.
Автоматизация: отключение по расписанию через COM-соединитель
Если базу обслуживают ночью по расписанию, удобно выкидывать пользователей скриптом. В 8.2 для этого служит COM-объект V82.COMConnector — он даёт доступ к агенту сервера так же, как консоль.
Пример на VBScript: завершает все сеансы пользователя «Иванов» во всех базах кластера.
Set Connector = CreateObject("V82.COMConnector")
Set Agent = Connector.ConnectAgent("tcp://srv1c:1540")
Clusters = Agent.GetClusters()
For Each Cluster In Clusters
Agent.Authenticate Cluster, "", ""
Sessions = Agent.GetSessions(Cluster)
For Each Session In Sessions
If LCase(Session.userName) = "иванов" Then
WScript.Echo "Завершаю сеанс " & Session.SessionID & " в базе " & Session.infoBase.Name
Agent.TerminateSession Cluster, Session
End If
Next
Next
Как запустить:
- Сохраните файл как
kick.vbsв кодировке Windows-1251, иначе кириллица в имени не совпадёт. - Если на кластере задан администратор, впишите его логин и пароль во второй и третий параметры
Authenticate. - Запустите
cscript kick.vbsот имени пользователя с правами на сервере 1С.
Если CreateObject падает, не зарегистрирована библиотека comcntr.dll из каталога bin платформы. Регистрируется командой regsvr32 так же, как radmin.dll. Разрядность cscript должна совпадать с разрядностью платформы: для 32-битной 1С на 64-битной Windows запускайте C:\Windows\SysWOW64\cscript.exe.
Чтобы завершить сеансы только одной базы, добавьте условие на Session.infoBase.Name. Чтобы не трогать фоновые задания, проверяйте Session.AppID: у фоновых заданий там значение BackgroundJob.
Частые вопросы
Освобождается ли лицензия, когда сеанс удалён?
Почему удалённый пользователь сразу появляется снова?
Можно ли выкинуть пользователя кодом из самой конфигурации 8.2?
ПолучитьСоединенияИнформационнойБазы(), но завершить чужой сеанс напрямую не может. Типовые обработки делают это через COM-соединитель на сервере.В консоли нет ветки «Сеансы» у базы. Что не так?
radmin.dll той же версии, что и сервер.