Отключение зависшего пользователя в 1С 8.3: от мягких способов к жёстким

· 9 мин

Содержание

Сотрудник ушёл на обед, не закрыв 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С:Предприятие под пользователем с полными правами.
  2. Откройте список активных пользователей.
  3. Выберите нужную строку.
  4. Нажмите кнопку завершения работы пользователя (название может немного отличаться в разных версиях платформы).
  5. Подтвердите действие.

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

Себя из этого списка отключить нельзя, а выкинутый пользователь может сразу зайти обратно. Чтобы он не вернулся, сначала включите блокировку входа (раздел ниже).

Перед отключением пользователя
Выполнено: 0 / 4

Управление сеансами через консоль сервера

Для клиент-серверной базы это основной инструмент. Консоль входит в поставку платформы на сервере: в списке программ она называется «Администрирование серверов 1С:Предприятия». Если её нет, её можно поставить отдельно вместе с компонентами сервера.

Найти сеанс

  1. Запустите консоль.
  2. Раскройте Центральные серверы и выберите свой сервер. При запросе введите имя и пароль администратора кластера, если они заданы.
  3. Раскройте Кластеры → Локальный кластер → Информационные базы.
  4. Откройте нужную базу и перейдите на узел Сеансы.

В правой части окна список всех сеансов этой базы. Сверху есть также общий узел Сеансы на уровне кластера — он показывает сеансы всех баз сразу. Отсортируйте по имени пользователя или по компьютеру.

Завершить сеанс

Выделите строку, вызовите контекстное меню и выберите удаление сеанса. Сервер закроет соединение принудительно. Клиент у пользователя получит ошибку и либо закроется, либо покажет сообщение о потере связи.

Что стоит знать:

  • ⏱️ Сеанс может не исчезнуть сразу: если внутри идёт серверный вызов, сервер ждёт его завершения. Подождите минуту и обновите список.
  • 🔒 Если пользователь снова зайдёт — сеанс появится заново. Включите блокировку.
  • 📊 Среди сеансов есть служебные: фоновые задания, соединения 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С, вы теряете всё несохранённое и рискуете повредить файловую базу, если в этот момент идёт запись. Для клиент-серверной базы риск ниже, но данные открытых форм всё равно пропадут.

На компьютере пользователя

  1. Нажмите Ctrl+Shift+Esc на компьютере зависшего пользователя (по удалённому рабочему столу или по телефону).
  2. Откройте вкладку Подробности.
  3. Найдите процесс 1cv8.exe (толстый клиент и Конфигуратор) или 1cv8c.exe (тонкий клиент).
  4. Если процессов несколько, ориентируйтесь на столбец «Пользователь» и на потребление памяти. Зависший обычно держит CPU на одном ядре или молчит.
  5. Выберите Снять задачу.

Если доступа к компьютеру нет

Для файловой базы можно закрыть открытые файлы на файловом сервере: в оснастке «Общие папки → Открытые файлы» найдите 1Cv8.1CD и отключите нужную сессию. Это грубее, чем убить процесс, и рискованнее для целостности базы. Применяйте как последнюю меру, а потом прогоните тестирование и исправление.

Серверный процесс

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

Что проверить после отключения

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

  • ✅ Обновите список активных пользователей и убедитесь, что нужных сеансов не осталось.
  • ✅ Убедитесь, что блокировка входа включена, пока вы работаете с базой.
  • ✅ Если вы убивали процесс при файловой базе, запустите тестирование и исправление в Конфигураторе: оно проверит структуру файла. Для этой операции понадобится монопольный доступ.
  • ✅ После работ снимите блокировку и проверьте, что пользователи входят. Забытая блокировка парализует отдел лучше любого сбоя.

Почему сеансы зависают и как это предотвратить

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

Частые причины

  • 🔌 Обрыв связи. Wi-Fi, VPN или удалённый рабочий стол отвалились, сервер держит сеанс до тайм-аута.
  • ⏳ Долгая операция. Групповое проведение, закрытие месяца, тяжёлый отчёт — клиент выглядит зависшим, хотя работает. Прежде чем убивать, посмотрите нагрузку на сервере.
  • 🔐 Блокировки данных. Один пользователь держит управляемую блокировку, остальные ждут. Сообщение «Конфликт блокировок при выполнении транзакции» намекает на такую ситуацию.
  • 💾 Нехватка памяти у клиента или рабочего процесса.
  • 🧩 Внешняя обработка или расширение, которое «подвешивает» клиента.

Как найти виновника

В консоли серверов у сеанса есть поля: «Вызов сервера», «Занято памяти», «Время вызова». Если сеанс держит вызов долго и занят CPU — это тяжёлая операция. Если вызова нет, а клиент молчит, виновата связь.

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

Как не доводить до принудительного отключения

  1. Настройте регламент: обновления и тяжёлые операции делайте в нерабочее время.
  2. Включайте блокировку работы пользователей за 10–15 минут до начала работ и оповещайте людей сообщением.
  3. Проверьте тайм-ауты сеансов в свойствах кластера, чтобы «призраки» уходили сами.
  4. Требуйте закрывать Конфигуратор после работы.

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

Что делать, если кнопка отключения пользователя неактивна?
Скорее всего, у вас нет полных прав в базе или вы выбрали собственный сеанс. Зайдите под администратором, а для чужой базы воспользуйтесь консолью серверов.
Выбитый пользователь потеряет данные?
Да, всё, что не записано и не проведено. Документ, который он только что открыл и заполнял, не сохранится. Поэтому сначала звоните.
Можно ли отключить пользователя, не заходя на сервер?
Да, если база доступна в 1С. Для этого используйте блокировку работы пользователей в разделе администрирования: система предупредит людей и закроет сеансы сама.
Сеанс удалён, а в списке остался. Почему?
Серверный вызов ещё не завершился, или список не обновили. Подождите минуту, обновите список. Если сеанс не уходит, он, скорее всего, зацепился за рабочий процесс.
Нужно ли отключать пользователей перед копированием базы?
Для файловой базы да: копировать открытый файл 1Cv8.1CD нельзя, копия получится битой. Для клиент-серверной выгружать данные средствами СУБД можно и при работающих пользователях, но для выгрузки в .dt из Конфигуратора монопольный доступ нужен.