Завершение сеанса пользователя в 1С: от мягкой блокировки до принудительного отключения

· 9 мин

Содержание

Выключить сеанс в 1С можно из самой программы: откройте список активных пользователей, выберите нужный сеанс и завершите его. Если сеанс завис и не отвечает, его убивают на уровне сервера 1С:Предприятия (консоль кластера или утилита rac), а в самом крайнем случае — процессом в Windows или сессией в СУБД.

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

Какой способ выбрать

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

СитуацияСпособРиск потерять данные
Нужно отключить всех перед обновлениемБлокировка и завершение работы пользователейНизкий: пользователи успевают сохраниться
Один человек ушёл и не закрыл базуСписок активных пользователейНизкий
Сеанс завис, интерфейс не отвечаетКонсоль кластера или racСредний: несохранённое пропадёт
Файловая база, кто-то держит блокировкуДиспетчер задач WindowsСредний
Сервер 1С не видит «мёртвое» соединениеСессия в СУБДВысокий

Перед любым принудительным завершением:

  • 💾 убедитесь, что есть свежая копия базы;
  • 📞 предупредите людей, которые работают прямо сейчас;
  • 🕐 не гасите сеансы в закрытие периода или во время отправки отчётности, если их можно отложить на час.

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

Как понять, какой сеанс «лишний»

Прежде чем что-то удалять, посмотрите на сеанс внимательно. Ошибка в выборе обойдётся дороже, чем лишняя минута.

  • 🕒 Время последней активности. Если человек не двигал мышь два часа, а сеанс жив, он почти наверняка брошен.
  • 💻 Компьютер. Имя хоста подскажет, чей это сеанс, даже если имя пользователя общее (например, «Бухгалтер»).
  • 🧩 Приложение. Тонкий клиент, конфигуратор, веб-клиент, COM-соединение обмена, фоновое задание. Обмен и фоновые задания без нужды не трогайте.
  • 📈 Потребление ресурсов. Сеанс, который держит процессор и память без работы пользователя, часто и есть виновник тормозов.

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

Закрытие сеансов из интерфейса 1С

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

Через список активных пользователей

  1. Зайдите в базу под пользователем с правами администратора.
  2. Откройте раздел администрирования и найдите пункт со списком активных пользователей. Если не нашли — введите «Активные пользователи» в строку поиска по командам.
  3. В списке видно имя, компьютер, приложение (тонкий клиент, конфигуратор, фоновое задание) и время начала сеанса.
  4. Выделите нужную строку и нажмите кнопку завершения сеанса.

Свой текущий сеанс завершить этим способом нельзя. Фоновые задания тоже закрывать не нужно: они сами заканчиваются.

Через блокировку работы пользователей

Когда нужно выгнать всех, используйте блокировку, а не ручное завершение по одному.

  1. В панели администрирования откройте раздел поддержки и обслуживания, подраздел завершения работы пользователей.
  2. Включите блокировку, задайте время начала и окончания.
  3. Впишите сообщение: «Обновление базы, вернёмся в 19:30».
  4. По желанию задайте код разрешения. С ним вы сможете зайти сами, пока остальные заблокированы.

Что происходит дальше: у работающих выскакивает предупреждение, через заданное время сеансы завершаются, новые подключения не пускают. Блокировка действует по расписанию и снимается сама.

💡 Задавайте код разрешения всегда. Без него вы заблокируете и себя, и придётся снимать блокировку параметром запуска.

Если зайти в базу не удаётся

Блокировку можно включить, запустив 1С с параметрами. Пример для командной строки (подставьте свой путь и базу):

"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Админ" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"1234"

Параметр /C"ЗавершитьРаботуПользователей" запускает завершение работы, а /UC задаёт код, по которому вы сможете войти. Точный синтаксис и версию платформы сверьте со справкой запуска: он меняется редко, но проверить стоит.

Монопольный режим: когда нужна тишина

Монопольный режим не «выключает» сеансы по одному. Он требует, чтобы в базе остались только вы. Нужен для реструктуризации, загрузки конфигурации, тестирования и исправления данных.

Как получить монопольный доступ:

  1. Откройте базу в Конфигураторе.
  2. Выберите пункт меню «Администрирование», затем «Активные пользователи». Здесь видны все сеансы, включая сеансы конфигуратора и фоновые.
  3. Завершите чужие сеансы кнопкой в этом окне.
  4. Закройте окно и повторите действие, для которого нужен монопольный режим (например, обновление конфигурации БД).

Если в конфигураторе есть чужие сеансы, он выдаст сообщение о невозможности установить монопольный режим. Это и есть сигнал: кто-то остался.

Самые частые «невидимые» помехи:

  • 👤 забытый сеанс конфигуратора на чужом компьютере;
  • ⚙️ фоновое или регламентное задание, которое ещё не закончилось;
  • 🔌 «мёртвое» соединение: пользователь выключил ноутбук, а сервер ещё держит сеанс.

Для разовых работ удобнее всего включить блокировку с кодом разрешения, а потом зайти с этим кодом. Монопольный режим при этом получить проще: чужие сеансы уже сброшены.

Сеансы на сервере 1С:Предприятие: консоль кластера и RAS

Если база клиент-серверная, сеансами управляет кластер серверов . Там же завершаются те, что не показываются в обычном интерфейсе или не отвечают.

Консоль администрирования серверов

  1. Откройте оснастку «Администрирование серверов 1С:Предприятия» (ставится вместе с платформой на сервере, в списке программ).
  2. Подключитесь к центральному серверу и раскройте узел кластера.
  3. Перейдите в раздел «Информационные базы», выберите нужную базу.
  4. Откройте узел «Сеансы». В списке видно пользователя, приложение, хост, время последней активности и объём потребляемых ресурсов.
  5. Вызовите контекстное меню на сеансе и выберите удаление. Либо удалите сразу несколько, выделив их.

Заодно в консоли проверяется узел «Соединения»: иногда сеанса уже нет, а соединение висит.

В свойствах информационной базы есть флажок блокировки начала сеансов. Он нужен, чтобы пользователи не заходили заново, пока вы работаете. Включите его до завершения сеансов, иначе люди тут же подключатся снова.

Утилита rac и сервер RAS

Для скриптов и серверов без графики есть связка ras (сервер администрирования) и rac (клиент администрирования). Оба лежат в каталоге bin платформы.

Запустите RAS (порт по умолчанию 1545, кластер на 1540):

ras cluster --port=1545 localhost:1540

Дальше работаем через rac в соседнем окне. Узнаём идентификатор кластера:

rac localhost:1545 cluster list

Смотрим сеансы базы. Идентификаторы в виде длинных строк с дефисами берите из вывода предыдущих команд:

rac localhost:1545 session list --cluster=<ид_кластера>

Завершаем один сеанс:

rac localhost:1545 session terminate --cluster=<ид_кластера> --session=<ид_сеанса>

Закрываем начало новых сеансов для базы:

rac localhost:1545 infobase update --cluster=<ид_кластера> --infobase=<ид_базы> --infobase-user=<админ> --infobase-pwd=<пароль> --sessions-deny=on --denied-message="Профилактика" --permission-code=1234

Снять запрет — тот же вызов с --sessions-deny=off.

⚠️ RAS не защищён паролем по умолчанию. Не открывайте порт 1545 наружу и не оставляйте службу висеть на сервере, доступном из интернета.

Диспетчер задач Windows: когда зависло всё

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

  1. Откройте Диспетчер задач на компьютере пользователя (или на терминальном сервере).
  2. На вкладке «Подробности» найдите процессы 1cv8.exe или 1cv8c.exe.
  3. Если процессов несколько, определите нужный: по пользователю, по времени запуска или по заголовку окна.
  4. Выберите «Снять задачу».

На терминальном сервере легко убить чужой процесс: у каждого пользователя свой 1cv8c.exe. Смотрите столбец «Пользователь».

Для файловой базы есть ещё одна проблема: после аварийного закрытия может остаться файл блокировки. Он лежит в каталоге базы рядом с 1Cv8.1CD и называется 1Cv8.cdn. Его удаляют только когда вы уверены, что в базу точно никто не зашёл.

Не снимайте процесс rphost.exe или ragent.exe на сервере вслепую: упадут сеансы всех пользователей рабочего процесса.

Сеансы в PostgreSQL и SQL Server: крайняя мера

Бывает, что 1С показывает чистый список, а СУБД держит запрос или блокировку. Тогда база не пускает монопольный режим или реструктуризацию. Делайте так только если консоль кластера не помогла.

PostgreSQL

Найдите зависшие запросы к базе:

SELECT pid, usename, state, query_start, left(query, 80)
FROM pg_stat_activity
WHERE datname = 'buh_base' AND state <> 'idle';

Завершите нужное соединение:

SELECT pg_terminate_backend(12345);

SQL Server

Посмотрите соединения:

EXEC sp_who2;

Завершите нужное по номеру SPID:

KILL 57;

Что надо знать:

  • 🔎 в столбце datname / DBName смотрите именно свою базу, на сервере их может быть десяток;
  • ⏳ откат убитой транзакции может занять время: она откатывается, а не исчезает;
  • 🚫 не убивайте соединения сервера 1С, если не понимаете, чьё это: после этого кластер переподнимет их сам, но часть сеансов упадёт.

Автоматизация: ночные регламенты и скрипты

Чтобы не гонять людей вручную перед ночной архивацией, объедините блокировку и завершение в один скрипт.

Вариант на rac (пример логики, значения подставьте свои):

@echo off
set RAC="C:\Program Files\1cv8\8.3.xx.xxxx\bin\rac.exe"
set CL=<ид_кластера>
set IB=<ид_базы>
%RAC% localhost:1545 infobase update --cluster=%CL% --infobase=%IB% --infobase-user=Админ --infobase-pwd=пароль --sessions-deny=on --denied-message="Ночной регламент" --permission-code=1234
for /f "tokens=2 delims=:" %%S in ('%RAC% localhost:1545 session list --cluster=%CL% --infobase=%IB% ^| findstr /b /c:"session "') do (
    %RAC% localhost:1545 session terminate --cluster=%CL% --session=%%S
)

Планировщик заданий Windows запускает такой файл по расписанию. Другой вариант — сначала запустить завершение работы пользователей через параметр /C"ЗавершитьРаботуПользователей", подождать несколько минут, потом уже добивать остаток через rac.

Правильный порядок ночного обслуживания:

  1. Включить запрет новых сеансов.
  2. Дать пользователям время (5-10 минут) и показать сообщение.
  3. Завершить оставшиеся сеансы.
  4. Сделать выгрузку, обслуживание или обновление.
  5. Выключить запрет и проверить, что вход работает.
Чек-лист перед массовым завершением сеансов
Выполнено: 0 / 6

Почему сеанс не закрывается: ошибки и ловушки

Что чаще всего мешает:

  • 🔁 пользователи заходят обратно сразу после завершения. Решение: заранее включить запрет начала сеансов;
  • 🧟 сеанс остаётся в списке после завершения. Обычно это фоновое задание или соединение, которое ещё закрывается. Подождите 1-2 минуты и обновите список;
  • 🔒 после блокировки не получается зайти самому. Вы не указали код разрешения или не передали его параметром /UC;
  • 🌐 терминальный сервер : сеанс 1С жив, хотя человек давно вышел. Закройте сначала сеанс Windows (отключённые сессии), затем сеанс 1С.
Диагностика: выберите симптом

Как не доводить до принудительных отключений

Принудительные методы нужны редко, если выстроить рутину:

  • 📅 объявляйте окно обслуживания заранее и держите его одинаковым: например, воскресенье с 22:00;
  • ✉️ вписывайте внятное сообщение в блокировку: когда вернётесь и что сломается, если не выйти;
  • 👥 учите пользователей закрывать 1С на ночь и в отпуск. Висящий сеанс держит лицензию и мешает обновлениям;
  • 📊 раз в месяц смотрите список сеансов: одинаковые «забытые» пользователи сразу видны;
  • 🔑 доступ к консоли кластера и rac оставьте только администраторам.

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

Можно ли завершить сеанс 1С без прав администратора?
Нет. Список активных пользователей и блокировка требуют административных прав. Без них можно только закрыть собственный клиент.
Освободится ли лицензия после завершения сеанса?
Да, как только сеанс закрыт и соединение разорвано. Для программных лицензий иногда нужно подождать пару минут.
Что будет с несохранёнными данными пользователя?
При мягком завершении через блокировку у человека есть время сохраниться. При принудительном удалении сеанса всё несохранённое теряется.
Чем отличается завершение сеанса от блокировки сеансов?
Завершение закрывает уже идущие сеансы. Блокировка не пускает новые. Для обслуживания нужно и то, и другое.
Как отключить сеанс на файловой базе без консоли кластера?
Через список активных пользователей, а если сеанс завис — снять процесс 1cv8 в Диспетчере задач на компьютере пользователя.