Отключение зависшего пользователя в 1С 8.3: от мягких способов к жёстким
Содержание
Сотрудник ушёл на обед, не закрыв 1С, и теперь вы не можете обновить конфигурацию или загрузить базу: «монопольный доступ невозможен, в базе работают другие пользователи». Чтобы принудительно выбить пользователя из 1С, нужно сначала понять, какая у вас база, а потом завершить его сеанс через консоль сервера, список активных пользователей или, в крайнем случае, через Диспетчер задач.
Способ зависит от типа базы. В клиент-серверной сеанс закрывают в консоли администрирования кластера. В файловой это делают из списка активных пользователей, а если сеанс завис, убивают процесс на компьютере самого пользователя. Ниже все варианты по порядку, от безопасного к грубому.
Принудительное завершение сеанса обрывает работу человека. Всё, что он не записал, пропадёт: непроведённый документ, незавершённая загрузка, открытая форма с правками. Сначала попросите закрыть 1С по-хорошему.
Сначала определите тип базы
От типа зависит весь дальнейший путь, поэтому потратьте минуту.
Посмотрите на строку в списке баз при запуске 1С (кнопка «Изменить» у выбранной базы):
- 📁 Файловая база — указан путь к каталогу, например
D:\Bases\Buhили\\server\share\Buh. В каталоге лежит файл1Cv8.1CD. - 🖥️ Клиент-серверная база
— указано имя сервера и имя базы, например
Srv:1541иbuh_prod. Файла1Cv8.1CDнет, данные лежат в СУБД (PostgreSQL или MS SQL Server).
Если у вас веб-доступ, терминальный сервер или базу ставил приглашённый специалист, спросите у него, как опубликована база. Тип от этого не меняется, но способ добраться до нужного компьютера — меняется.
| Тип базы | Где завершать сеанс | Нужны права |
|---|---|---|
| Клиент-серверная | Консоль серверов 1С (администрирование кластера) | Администратор кластера |
| Файловая | Список активных пользователей в самой 1С | Роль «Администратор» (полные права) в базе |
| Любая, сеанс завис | Диспетчер задач на компьютере пользователя | Права администратора ОС |
Сначала посмотрите, кто в базе и что делает
Сначала нужно узнать, кого именно вы отключаете. Это спасает от ошибок: у двоих сотрудников может быть одна учётная запись, а чужое закрытие проведения затянется на час.
Откройте базу под администратором и найдите список активных пользователей. В режиме 1С:Предприятие он обычно находится в разделе администрирования (поддержка и обслуживание), а в Конфигураторе — Администрирование → Активные пользователи.
В списке видно:
- имя пользователя и компьютер, с которого он вошёл;
- тип приложения (толстый клиент, тонкий клиент, веб-клиент, Конфигуратор);
- время начала сеанса и текущее состояние.
Сеанс Конфигуратора часто и мешает: кто-то открыл его «посмотреть» и забыл. Пользователей без реальной работы видно по времени последней активности. Позвоните или напишите владельцу компьютера.
Завершение сеанса в режиме Предприятия
Это самый мягкий способ для любой базы, если у вас есть доступ в неё с правами администратора.
- Зайдите в базу в режиме 1С:Предприятие под пользователем с полными правами.
- Откройте список активных пользователей.
- Выберите нужную строку.
- Нажмите кнопку завершения работы пользователя (название может немного отличаться в разных версиях платформы).
- Подтвердите действие.
Платформа посылает тонкому или толстому клиенту команду на закрытие. Если клиент жив, он закроется сам, а несохранённые данные система предложит сохранить. Если клиент завис, команда может не дойти. Тогда переходите к консоли сервера или к Диспетчеру задач.
Себя из этого списка отключить нельзя, а выкинутый пользователь может сразу зайти обратно. Чтобы он не вернулся, сначала включите блокировку входа (раздел ниже).
Управление сеансами через консоль сервера
Для клиент-серверной базы это основной инструмент. Консоль входит в поставку платформы на сервере: в списке программ она называется «Администрирование серверов 1С:Предприятия». Если её нет, её можно поставить отдельно вместе с компонентами сервера.
Найти сеанс
- Запустите консоль.
- Раскройте
Центральные серверыи выберите свой сервер. При запросе введите имя и пароль администратора кластера, если они заданы. - Раскройте
Кластеры → Локальный кластер → Информационные базы. - Откройте нужную базу и перейдите на узел
Сеансы.
В правой части окна список всех сеансов этой базы. Сверху есть также общий узел Сеансы на уровне кластера — он показывает сеансы всех баз сразу. Отсортируйте по имени пользователя или по компьютеру.
Завершить сеанс
Выделите строку, вызовите контекстное меню и выберите удаление сеанса. Сервер закроет соединение принудительно. Клиент у пользователя получит ошибку и либо закроется, либо покажет сообщение о потере связи.
Что стоит знать:
- ⏱️ Сеанс может не исчезнуть сразу: если внутри идёт серверный вызов, сервер ждёт его завершения. Подождите минуту и обновите список.
- 🔒 Если пользователь снова зайдёт — сеанс появится заново. Включите блокировку.
- 📊 Среди сеансов есть служебные: фоновые задания, соединения COM. Не удаляйте то, что не поняли, — это может сорвать регламентное задание, например, обмен.
Командная строка
Для автоматизации есть утилита rac — клиент администрирования. Типичный порядок такой: получить список кластеров, затем список сеансов, затем завершить нужный.
rac cluster list
rac session list --cluster=<идентификатор кластера>
rac session terminate --cluster=<идентификатор кластера> --session=<идентификатор сеанса>
Идентификаторы — длинные GUID из вывода предыдущих команд. Если кластер защищён паролем, нужны параметры авторизации. Полный список параметров смотрите в справке rac help.
Блокировка информационной базы
Блокировка нужна, чтобы выбитые люди не вернулись. Ставят её перед обновлением, загрузкой данных, реструктуризацией и свёрткой базы.
Блокировка на сервере
В консоли серверов откройте свойства информационной базы (двойной щелчок или Свойства в контекстном меню). Там есть поля:
- Блокировка начала сеансов включена — новые пользователи не смогут войти;
- Начало и конец — период, в который действует блокировка (можно оставить конец пустым);
- Сообщение — текст, который увидят пользователи при попытке входа;
- Код разрешения — ключевое слово, с которым вы сами войдёте в заблокированную базу;
- Блокировка регламентных заданий — отдельный флажок, чтобы фоновые задания не запускались.
Для входа с кодом разрешения в параметрах запуска укажите ключ /UC <код>. Например:
"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /S Srv\buh_prod /N Админ /UC MyCode
Номер платформы в пути подставьте свой.
Блокировка в самой 1С
В режиме Предприятия в разделе администрирования есть настройка «Блокировка работы пользователей» (в типовых конфигурациях на БСП — «Блокировка работы пользователей» в разделе «Поддержка и обслуживание»). Вы задаёте сообщение, время и код. Платформа через несколько минут предупредит активных пользователей и завершит их сеансы, а дальше будет блокировать вход.
Этот способ работает и для файловой, и для клиент-серверной базы. Он удобен тем, что пользователей предупреждает сама система, и вы не воюете с каждым вручную.
Аварийное завершение через Диспетчер задач
Этот способ нужен, когда клиент завис: окно не реагирует, в списке активных пользователей он есть, а кнопка завершения не помогает. Особенно часто так бывает с файловой базой.
Убивая процесс 1С, вы теряете всё несохранённое и рискуете повредить файловую базу, если в этот момент идёт запись. Для клиент-серверной базы риск ниже, но данные открытых форм всё равно пропадут.
На компьютере пользователя
- Нажмите
Ctrl+Shift+Escна компьютере зависшего пользователя (по удалённому рабочему столу или по телефону). - Откройте вкладку
Подробности. - Найдите процесс
1cv8.exe(толстый клиент и Конфигуратор) или1cv8c.exe(тонкий клиент). - Если процессов несколько, ориентируйтесь на столбец «Пользователь» и на потребление памяти. Зависший обычно держит CPU на одном ядре или молчит.
- Выберите
Снять задачу.
Если доступа к компьютеру нет
Для файловой базы можно закрыть открытые файлы на файловом сервере: в оснастке «Общие папки → Открытые файлы» найдите 1Cv8.1CD и отключите нужную сессию. Это грубее, чем убить процесс, и рискованнее для целостности базы. Применяйте как последнюю меру, а потом прогоните тестирование и исправление.
Серверный процесс
На сервере 1С с кластером за соединения клиентов отвечают рабочие процессы rphost. Один процесс обслуживает много сеансов. Если убить его, пострадают все пользователи, чьи сеансы он держал. Это допустимо, только если удаление сеанса в консоли не помогло, а работа сервера остановилась. Лучше сначала предупредить всех, кто в кластере.
Что проверить после отключения
Когда сеансы закрыты, не бросайтесь сразу в работу. Пять минут проверки сэкономят часы.
- ✅ Обновите список активных пользователей и убедитесь, что нужных сеансов не осталось.
- ✅ Убедитесь, что блокировка входа включена, пока вы работаете с базой.
- ✅ Если вы убивали процесс при файловой базе, запустите тестирование и исправление в Конфигураторе: оно проверит структуру файла. Для этой операции понадобится монопольный доступ.
- ✅ После работ снимите блокировку и проверьте, что пользователи входят. Забытая блокировка парализует отдел лучше любого сбоя.
Почему сеансы зависают и как это предотвратить
Если вы выбиваете одного и того же человека каждую неделю, лечить надо причину.
Частые причины
- 🔌 Обрыв связи. Wi-Fi, VPN или удалённый рабочий стол отвалились, сервер держит сеанс до тайм-аута.
- ⏳ Долгая операция. Групповое проведение, закрытие месяца, тяжёлый отчёт — клиент выглядит зависшим, хотя работает. Прежде чем убивать, посмотрите нагрузку на сервере.
- 🔐 Блокировки данных. Один пользователь держит управляемую блокировку, остальные ждут. Сообщение «Конфликт блокировок при выполнении транзакции» намекает на такую ситуацию.
- 💾 Нехватка памяти у клиента или рабочего процесса.
- 🧩 Внешняя обработка или расширение, которое «подвешивает» клиента.
Как найти виновника
В консоли серверов у сеанса есть поля: «Вызов сервера», «Занято памяти», «Время вызова». Если сеанс держит вызов долго и занят CPU — это тяжёлая операция. Если вызова нет, а клиент молчит, виновата связь.
Для разбора тяжёлых случаев включают технологический журнал: в нём видны долгие вызовы и ожидания блокировок. Настройка делается в файле logcfg.xml в каталоге conf платформы. Подробности вынесены в отдельную тему, здесь достаточно знать, что такой инструмент есть.
Как не доводить до принудительного отключения
- Настройте регламент: обновления и тяжёлые операции делайте в нерабочее время.
- Включайте блокировку работы пользователей за 10–15 минут до начала работ и оповещайте людей сообщением.
- Проверьте тайм-ауты сеансов в свойствах кластера, чтобы «призраки» уходили сами.
- Требуйте закрывать Конфигуратор после работы.
Если платформа и конфигурация обновлялись давно, зависания могут уходить после обновления до актуального релиза: в нём исправляют ошибки клиента и сервера. Номер релиза уточняйте у поставщика обслуживания.
Что делать, если кнопка отключения пользователя неактивна?
Выбитый пользователь потеряет данные?
Можно ли отключить пользователя, не заходя на сервер?
Сеанс удалён, а в списке остался. Почему?
Нужно ли отключать пользователей перед копированием базы?
1Cv8.1CD нельзя, копия получится битой. Для клиент-серверной выгружать данные средствами СУБД можно и при работающих пользователях, но для выгрузки в .dt из Конфигуратора монопольный доступ нужен.