Удалённое завершение работы 1С: от сеанса пользователя до службы сервера
Содержание
Закрыть 1С удаленно проще всего так: в клиент-серверной базе завершите сеанс в консоли кластера (Кластеры → <кластер> → Информационные базы → <база> → Сеансы → Удалить), в файловой базе — завершите процесс 1cv8c.exe или 1cv8.exe нужного пользователя на терминальном сервере командой taskkill. Если людей нужно выгнать на время обновления, правильнее включить блокировку начала сеансов: программа сама предупредит пользователей и закроет их сеансы.
Способ выбирают по двум вопросам: где запущена 1С (у пользователя на ПК, на терминальном сервере, в браузере, в облаке) и какой вариант базы (файловая или на сервере 1С). Ниже — все сценарии, от мягкого к жёсткому.
С чего начать: выбираем способ закрыть 1С
Сначала определите, что именно надо закрыть: один зависший сеанс, всех пользователей одной базы или вообще все процессы 1С на сервере. От этого зависит инструмент.
| Ситуация | Способ | Что потеряет пользователь |
|---|---|---|
| Один пользователь забыл выйти, база на сервере 1С | Консоль кластера или rac session terminate | Несохранённые данные открытых форм |
| Нужно освободить базу для обновления | Блокировка начала сеансов с таймаутом | Ничего, если успеет сохраниться |
| Файловая база, пользователи на терминальном сервере | taskkill по имени пользователя или выход из RDP-сеанса | Несохранённые данные |
| 1С не отвечает, процесс висит | taskkill /F | Несохранённые данные |
| Завис сам сервер 1С | Перезапуск службы агента | Все сеансы всех баз кластера |
💡 Чем ниже строка таблицы, тем больше людей вы затронете. Начинайте с верхних вариантов.
Что понадобится для любого способа:
- 🔑 права локального администратора на терминальном сервере или сервере 1С;
- 🔑 логин и пароль администратора кластера, если он задан;
- 🖥 доступ к консоли администрирования серверов 1С или к утилите
racи запущенной службеras(порт по умолчанию 1545); - 📞 способ предупредить людей: почта, мессенджер, сообщение при входе.
Как закрыть 1С через RDP и терминальный сервер
Если пользователи работают через удалённый рабочий стол (RDS, RemoteApp, Citrix), процесс 1С живёт на терминальном сервере внутри сеанса Windows. Его можно закрыть тремя путями.
Вариант 1. Выйти из сеанса Windows пользователя
Самый понятный способ: завершить весь RDP-сеанс, вместе с ним закроется и 1С.
- Подключитесь к серверу и откройте
Диспетчер задач → Пользователи. - Найдите нужного пользователя, правой кнопкой —
Выйти.
То же из командной строки с любого компьютера домена:
:: список сеансов на терминальном сервере
quser /server:TS01
:: выход из сеанса с ID 3
logoff 3 /server:TS01
⚠️ logoff закрывает все программы пользователя, не только 1С. Открытые Word и Excel тоже закроются без сохранения.
Вариант 2. Закрыть только процесс 1С пользователя
Если остальное трогать нельзя, завершите один процесс по фильтру имени пользователя:
:: тонкий клиент пользователя ivanov
taskkill /S TS01 /FI "USERNAME eq ivanov" /IM 1cv8c.exe
:: толстый клиент и конфигуратор
taskkill /S TS01 /FI "USERNAME eq ivanov" /IM 1cv8.exe
Без ключа /F Windows сначала попросит программу закрыться штатно. Если 1С не реагирует 10–20 секунд, повторите команду с /F.
Имена процессов, которые стоит знать:
- 🟢
1cv8c.exe— тонкий клиент; - 🟡
1cv8.exe— толстый клиент и конфигуратор; - ⚪
1cestart.exe— стартер (окно выбора базы), его закрытие базу не освобождает.
Вариант 3. Ограничить отключённые сеансы политикой
Частая причина «висящих» пользователей — человек закрыл окно RDP крестиком. Сеанс Windows перешёл в состояние «Отключён», а 1С внутри продолжает держать лицензию и блокировки.
Лечится групповой политикой на терминальном сервере:
Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удалённых рабочих столов → Узел сеансов удалённых рабочих столов → Ограничение сеансов по времени.
Задайте «Установить ограничение по времени для отключённых сеансов», например 1–2 часа. По истечении срока Windows сама завершит сеанс вместе с 1С. В Citrix аналогичные таймауты задаются в политиках сеансов самого Citrix.
Завершение сеансов 1С через консоль кластера и rac
Для клиент-серверной базы правильный способ — завершить сеанс средствами сервера 1С. Это работает для любых клиентов: тонкого, толстого, веб-клиента, мобильного, фоновых заданий.
Через консоль администрирования
- Откройте консоль администрирования серверов 1С:Предприятия.
- Раскройте
Кластеры → <кластер> → Информационные базы → <база> → Сеансы. - Найдите сеанс по колонкам «Пользователь», «Компьютер», «Приложение».
- Правой кнопкой —
Удалить.
У пользователя появится сообщение о разрыве соединения, 1С закроется или предложит перезапуск.
💡 Колонка «Приложение» помогает не ошибиться: «Тонкий клиент», «Веб-клиент», «Конфигуратор», «Фоновое задание». Фоновые сеансы без нужды не удаляйте — это регламентные задания самой базы.
Через утилиту rac
Если консоли под рукой нет или нужен сценарий, используйте rac. Он работает через службу ras, её нужно запустить на сервере 1С.
:: узнать ID кластера
rac cluster list
:: узнать ID базы
rac infobase summary list --cluster=<ID_кластера>
:: список сеансов базы
rac session list --cluster=<ID_кластера> --infobase=<ID_базы>
:: завершить конкретный сеанс
rac session terminate --cluster=<ID_кластера> --session=<ID_сеанса>
Если у кластера задан администратор, добавьте к командам --cluster-user=<имя> --cluster-pwd=<пароль>. По остальным ключам смотрите rac help session.
Веб-клиент, 1С:Fresh и облако: особенности
Веб-клиент через публикацию
Закрытая вкладка браузера не означает закрытый сеанс. Сервер 1С ждёт, пока истечёт время бездействия, и только потом освобождает сеанс и лицензию. До этого пользователь виден в консоли кластера с приложением «Веб-клиент».
Удалённо такой сеанс закрывают так же, как тонкий клиент: через консоль кластера или rac session terminate. Перезапускать веб-сервер (IIS или Apache) ради одного пользователя не нужно: это разорвёт соединения всех, кто работает через эту публикацию.
1С:Fresh и арендованное облако
В облаке у вас нет доступа к серверу 1С и консоли кластера. Варианты такие:
- 👤 пользователь сам выходит из приложения через меню сервиса;
- 🛠 администратор абонента смотрит активных пользователей приложения в личном кабинете или в самой базе;
- 📩 если сеанс завис и не закрывается, пишут в поддержку провайдера: принудительное завершение на сервере делают они.
Гибридная схема
Бывает, что сервер 1С стоит в офисе, а часть людей подключается через VPN или веб-публикацию. Тогда смотрите на колонку «Компьютер» в консоли кластера: для пользователей терминального сервера там имя сервера, для веб-клиента — веб-сервер. Закрывайте сеансы на сервере 1С, а не на клиентских машинах: это один инструмент для всех.
Плановое закрытие 1С: блокировка входа пользователей
Когда базу нужно освободить для обновления, выгружать .dt или тестирования и исправления, не убивайте сеансы вручную. Включите блокировку: новые входы запрещены, работающим приходит предупреждение, через заданное время программа закрывает их сеансы сама.
Из самой базы
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) обработка называется «Блокировка работы пользователей». Она находится в разделе Администрирование, в группе поддержки и обслуживания.
- Укажите текст сообщения: «Обновление базы, выйдите до 19:00».
- Задайте время начала и окончания блокировки.
- Заполните код разрешения — по нему сможете войти вы.
- Нажмите «Установить блокировку».
Из консоли кластера
В свойствах информационной базы отметьте «Блокировка начала сеансов включена», заполните сообщение, время и код разрешения. Админ входит с параметром запуска /UC<код>.
Блокировка в консоли кластера не закрывает уже открытые сеансы — она только запрещает новые. Работающих после неё нужно завершить отдельно.
Из командной строки
Конфигурации на БСП принимают параметр запуска ЗавершитьРаботуПользователей. Это удобно для ночных регламентов:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /S"srv1c\buh" /N"Админ" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"KOD123"
Обратный параметр РазрешитьРаботуПользователей снимает блокировку после работ.
Зависшая 1С: принудительное завершение и перезапуск агента сервера
Закрыть зависший толстый клиент или конфигуратор
Толстый клиент и конфигуратор чаще всего зависают на долгих операциях: обновлении, сравнении конфигураций, тестировании и исправлении. Прежде чем убивать процесс, проверьте, не идёт ли такая операция.
Не завершайте конфигуратор во время обновления структуры базы или загрузки .dt. Прерванная операция может оставить базу в неработоспособном состоянии. Подождите или хотя бы убедитесь по нагрузке на диск и процессор, что процесс действительно стоит.
Если процесс точно висит:
taskkill /S TS01 /FI "USERNAME eq admin1c" /IM 1cv8.exe /F
Для файловой базы после такого завершения иногда остаётся файл блокировки 1Cv8.1CL в каталоге базы. Удаляйте его только когда в базе гарантированно никого нет: иначе можно повредить данные работающих пользователей.
Завершить все процессы 1С на терминальном сервере
Иногда нужно освободить файловую базу полностью, а пользователей десятки. Команда закроет 1С у всех:
taskkill /S TS01 /IM 1cv8c.exe /F
taskkill /S TS01 /IM 1cv8.exe /F
⚠️ У всех пользователей пропадут несохранённые документы. Делайте это после рабочего дня или после предупреждения.
Перезапуск службы агента сервера 1С
Крайняя мера — когда не отвечает сама консоль кластера, а сеансы не удаляются. Перезапуск службы обрывает все сеансы всех баз этого кластера, включая фоновые задания.
- Узнайте точное имя службы — оно зависит от установки:
sc query state= all | findstr /I "1C:Enterprise" - Перезапустите её:
Restart-Service -Name "1C:Enterprise 8.3 Server Agent (x86-64)" -Force - Проверьте, что процессы
ragent.exe,rmngr.exeиrphost.exeснова запущены, а консоль открывает кластер.
Если служба не останавливается, процессы rphost.exe, rmngr.exe и ragent.exe завершают через taskkill /F и запускают службу заново. Это делают только в нерабочее время.
Автоматическое закрытие 1С скриптом
Удобно, когда каждую ночь база должна быть свободна для резервного копирования. Скрипт ниже завершает все сеансы одной базы, кроме фоновых заданий. Запускайте его на сервере 1С, где работает ras.
$rac = "C:\Program Files\1cv8\8.3.24.1691\bin\rac.exe"
$auth = @("--cluster-user=admin", "--cluster-pwd=secret")
$cluster = (& $rac cluster list | Select-String '^cluster\s*:\s*(\S+)').Matches[0].Groups[1].Value
$ibName = "buh"
# ID базы по имени
$ibList = & $rac infobase summary list --cluster=$cluster @auth
$ibId = $null
for ($i = 0; $i -lt $ibList.Count; $i++) {
if ($ibList[$i] -match '^infobase\s*:\s*(\S+)') { $current = $Matches[1] }
if ($ibList[$i] -match "^name\s*:\s*$ibName\s*$") { $ibId = $current }
}
if (-not $ibId) { Write-Output "База $ibName не найдена"; exit 1 }
# разбираем список сеансов блоками
$block = @{}
$sessions = @(& $rac session list --cluster=$cluster --infobase=$ibId @auth) + ""
$sessions | ForEach-Object {
if ($_ -match '^(\S[^:]*?)\s*:\s*(.*)$') { $block[$Matches[1]] = $Matches[2] }
elseif ($block.Count -gt 0) {
if ($block['app-id'] -ne 'BackgroundJob') {
& $rac session terminate --cluster=$cluster --session=$($block['session']) @auth
Write-Output "Закрыт сеанс $($block['user-name']) ($($block['app-id']))"
}
$block = @{}
}
}
Путь к rac.exe замените на свою версию платформы. Пароль в открытом виде держите только в файле с правами администратора, а лучше заведите для скрипта отдельного администратора кластера.
Как поставить на расписание:
- Откройте «Планировщик заданий» Windows и создайте задачу.
- Триггер — ежедневно, например в 23:30.
- Действие —
powershell.exe -ExecutionPolicy Bypass -File C:\scripts\close1c.ps1. - Запуск от имени служебной учётной записи с правами администратора.
💡 Перед скриптом полезно за 15–30 минут включить блокировку с предупреждением. Тогда скрипт добивает только тех, кто ушёл домой с открытой 1С.
Ошибки при удалённом закрытии и почему не стоит идти через SQL
Завершение соединений в SQL Server
Иногда советуют найти соединения 1С в Management Studio (sp_who2) и выполнить KILL. Так делать не надо.
- 🚫 Сеанс 1С — объект сервера 1С, а не соединения с СУБД. Рабочий процесс держит пул соединений, и одно соединение обслуживает разных пользователей.
- 🚫
KILLобрывает транзакцию посреди записи: у случайных пользователей падают проведения документов. - 🚫 Сеанс в консоли кластера после этого никуда не девается, лицензия остаётся занятой.
Смотреть активность в SQL полезно — например, чтобы найти долгий запрос. Но закрывать 1С нужно через консоль кластера или rac.
Другие частые промахи
- ❌ Удалили сеанс, а через минуту он снова в списке. Скорее всего, у пользователя включён автоматический перезапуск или это фоновое задание. Сначала включите блокировку начала сеансов.
- ❌ Закрыли 1С через
taskkill, а база всё равно занята. Для клиент-серверной базы сеанс на сервере освободится не сразу; удалите его в консоли. - ❌ Перезапустили агент ради одного зависшего пользователя. Это выбило всех, включая обмены и регламентные задания.
- ❌ Закрыли окно RDP и считаете, что вышли из 1С. Сеанс Windows живёт дальше, 1С тоже.
Частые вопросы
Освобождается ли лицензия после удаления сеанса в консоли кластера?
rac session list --licenses.Можно ли закрыть 1С у пользователя, который работает с файловой базой со своего ПК?
taskkill /S <имя ПК> /IM 1cv8c.exe. Сервера 1С в такой схеме нет, поэтому консоль кластера не поможет.Пользователь не успел сохранить документ. Данные пропали?
Как посмотреть, кто сейчас в файловой базе?
Администрирование. В конфигураторе — меню Администрирование → Активные пользователи.