Завершение работы в 1С на сервере: от кнопки «Выход» до rac
Содержание
Чтобы правильно выйти из
сервера 1С, сначала закройте саму программу (≡ → Файл → Выход или Alt+F4), а уже потом завершайте сеанс Windows командой «Выйти», а не крестиком окна удалённого рабочего стола. Если сеанс «завис» у другого пользователя, его снимает администратор в консоли кластера или утилитой rac.
Типичная боль: человек закрыл окно RDP, ушёл домой, а утром лицензий не хватает и обновление не ставится — «в базе работают пользователи». Ниже пять способов выйти из сервера 1С или выгнать оттуда сеанс: от безопасного к радикальному. Всё описанное относится к платформе 8.3 в клиент-серверном варианте; где отличается файловый вариант — сказано отдельно.
1. Как выйти из 1С на сервере обычному пользователю
Выход из сервера — это две разные вещи: закрыть сеанс 1С и закрыть сеанс Windows на терминальном сервере. Делать нужно оба шага и именно в таком порядке.
Шаг 1. Закройте 1С
- Сохраните и закройте открытые документы. Непроведённый документ программа предложит записать.
- Откройте главное меню (кнопка
≡слева вверху) и выберитеФайл → Выход. Аналог —Alt+F4в главном окне. - Дождитесь, пока окно закроется полностью. Если на экране вопрос «Завершить работу с программой?», ответьте «Да».
💡 Если программа при закрытии долго «думает» — не снимайте её через диспетчер задач. Скорее всего, она дописывает настройки или ждёт окончания длительной операции. Подождите 1–2 минуты.
Шаг 2. Выйдите из Windows, а не «отключитесь»
На терминальном сервере (RDP, RemoteApp) крестик в заголовке окна удалённого рабочего стола не завершает сеанс. Он только отключает вас: сеанс переходит в состояние «Отключён», а запущенная 1С продолжает работать, держит лицензию и блокирует базу.
| Действие | Что происходит с 1С | Лицензия |
|---|---|---|
| Крестик окна RDP | 1С остаётся запущенной | занята |
Пуск → учётная запись → Выход | 1С закрывается вместе с сеансом | освобождается |
Команда logoff в «Выполнить» | то же, что «Выход» | освобождается |
| Закрыть 1С, потом крестик RDP | 1С закрыта, сеанс Windows висит | 1С-лицензия свободна |
Самый надёжный вариант для пользователя: закрыть 1С, затем нажать Win+R, ввести logoff и Enter.
Команда logoff закрывает все программы в вашем сеансе без вопросов. Несохранённый файл в Excel или Word пропадёт. Сначала сохраните всё открытое.
Если работаете в RemoteApp
Когда 1С открыта как отдельное окно (RemoteApp), выход из программы обычно сам завершает удалённый сеанс. Но если в том же сеансе висит ещё одно приложение, например окно печати, сеанс останется. Закройте все окна, а если не помогло — попросите администратора выполнить logoff.
2. Как завершить сеанс 1С через консоль администрирования серверов
Это основной инструмент администратора. Консоль показывает все сеансы кластера и позволяет удалить любой из них.
Подготовка консоли
Если консоль не открывается или пишет об ошибке компонента, зарегистрируйте radmin.dll той же версии, что и сервер. Командная строка от имени администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1691\bin\radmin.dll"
Номер версии в пути подставьте свой. Разрядность консоли и DLL должна совпадать.
Пошагово
- Запустите «Администрирование серверов 1С Предприятия».
- Раскройте
Центральные серверы 1С:Предприятия → имя сервера → Кластеры → кластер. - Если на кластере задан администратор, введите его логин и пароль.
- Откройте
Информационные базы → нужная база → Сеансы. - Найдите сеанс по колонкам «Пользователь», «Компьютер», «Приложение», «Начало сеанса».
- Правой кнопкой по сеансу →
Удалить. Подтвердите.
У пользователя появится сообщение о том, что сеанс завершён администратором, и программа закроется. Несохранённые изменения в открытой форме пропадут.
Как не снести лишнее
В списке сеансов есть не только живые люди. Колонка «Приложение» подскажет, кто есть кто:
- 🖥️ Тонкий клиент, Толстый клиент, Веб-клиент — пользователи;
- 🛠️ Конфигуратор — кто-то правит конфигурацию или выгружает базу;
- ⚙️ Фоновое задание — регламентные задания: обмены, загрузка курсов, расчёты;
- 🔌 COM-соединение, Веб-сервис, HTTP-сервис — внешние интеграции.
Удаление сеанса Конфигуратора во время обновления структуры базы может оставить базу в незавершённом состоянии. Удаление фонового задания посреди обмена — обрыв пакета, который придётся повторять.
Перед удалением сеанса «Конфигуратор» позвоните тому, кто его открыл. Компьютер и пользователь видны в той же строке.
Если нужно закрыть всех
Выделите все сеансы базы (Ctrl+A в списке) и удалите разом. Но люди тут же зайдут снова. Поэтому сначала включите блокировку начала сеансов: свойства базы в консоли → флажок «Блокировка начала сеансов включена», поля «Сообщение» и «Код разрешения». Подробнее о блокировке — в разделе про автоматизацию.
3. Отключение сеансов 1С из командной строки
Командная строка нужна, когда консоли под рукой нет, или вы работаете с Linux-сервера, или хотите вписать команды в скрипт.
Утилита rac
rac лежит в папке bin платформы и работает через сервер администрирования ras. Сервис ras должен быть запущен (по умолчанию слушает порт 1545). Разовый запуск:
cd "C:\Program Files\1cv8\8.3.24.1691\bin"
ras cluster --daemon
Дальше три команды:
:: 1. Узнать идентификатор кластера
rac cluster list
:: 2. Список сеансов кластера
rac session list --cluster=<uuid-кластера>
:: 3. Завершить конкретный сеанс
rac session terminate --cluster=<uuid-кластера> --session=<uuid-сеанса>
Если на кластере задан администратор, к командам 2 и 3 добавьте --cluster-user=<логин> --cluster-pwd=<пароль>. Список сеансов можно сузить до одной базы параметром --infobase=<uuid-базы>; идентификатор базы покажет rac infobase summary list --cluster=<uuid-кластера>.
В выводе session list ищите поля user-name, host и app-id — это пользователь, компьютер и тип клиента. Остальные параметры смотрите в rac help session.
Средства Windows для терминального сервера
Если проблема не в 1С, а в «отключённых» сеансах Windows, их удобнее закрывать стандартными командами (от имени администратора):
:: Кто сейчас на сервере и в каком состоянии
quser
:: Завершить сеанс Windows с ID 3 (1С в нём закроется)
logoff 3
Состояние Диск (Disc) в выводе quser — это как раз пользователь, который закрыл окно крестиком.
logoff и rac session terminate обрывают работу человека без предупреждения. Делайте это вне рабочего времени или после звонка пользователю.
4. Можно ли выкинуть пользователя из 1С через SQL
Коротко: нет, и пытаться не нужно. В клиент-серверном варианте сеансы 1С живут в менеджере кластера, а не в таблицах базы данных. В MS SQL или PostgreSQL вы увидите только соединения рабочих процессов rphost, а не конкретных пользователей.
Что будет, если убить соединение на стороне СУБД (KILL в MS SQL, pg_terminate_backend в PostgreSQL):
- ❌ пользователь из 1С не выйдет — его сеанс останется в кластере;
- ❌ рабочий процесс получит ошибку СУБД, и пострадать могут сразу несколько пользователей, обслуживаемых этим процессом;
- ❌ текущая транзакция откатится, обмен или закрытие месяца придётся повторять.
Где SQL всё-таки уместен: посмотреть, какое соединение держит долгую блокировку, чтобы потом найти и завершить нужный сеанс уже в консоли 1С. То есть SQL — для диагностики, а завершение — средствами кластера.
💡 В файловом варианте базы кластера нет. Там сеансы снимаются закрытием процессов 1С на компьютерах пользователей, а файл 1Cv8tmp.1CL в каталоге базы руками удалять не нужно: при открытой базе он занят, а после закрытия всех сеансов освобождается сам.
5. Автоматический выход пользователей из 1С по расписанию
Ночные регламенты — резервная копия, обновление, тестирование базы — требуют, чтобы в базе никого не было. Вручную каждый вечер это не делается.
Блокировка средствами конфигурации
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть штатный механизм. Откройте Администрирование → Обслуживание и найдите ссылку «Блокировка работы пользователей». Там задаётся время начала и окончания блокировки, текст сообщения и код разрешения. Пользователи получат предупреждение и будут отключены к указанному времени.
Тот же механизм вызывается из командной строки, что удобно для планировщика:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv1c\buh" /N"Администратор" /P"пароль" /CЗавершитьРаботуПользователей /UC"KOD123"
Снять блокировку — тот же запуск с /CРазрешитьРаботуПользователей и тем же кодом /UC.
Скрипт PowerShell на rac
Если конфигурация не на БСП, завершайте сеансы скриптом. Пример снимает все сеансы одной базы, кроме фоновых заданий:
$rac = "C:\Program Files\1cv8\8.3.24.1691\bin\rac.exe"
$auth = @("--cluster-user=admin", "--cluster-pwd=secret")
$base = "buh"
$cluster = ((& $rac cluster list) | Select-String '^cluster\s*:\s*(\S+)').Matches[0].Groups[1].Value
$ibLines = & $rac infobase summary list --cluster=$cluster @auth
$ibId = $null
for ($i = 0; $i -lt $ibLines.Count; $i++) {
if ($ibLines[$i] -match '^infobase\s*:\s*(\S+)') { $cur = $Matches[1] }
if ($ibLines[$i] -match '^name\s*:\s*(\S+)' -and $Matches[1] -eq $base) { $ibId = $cur }
}
if (-not $ibId) { Write-Output "База $base не найдена"; exit 1 }
$sesLines = & $rac session list --cluster=$cluster --infobase=$ibId @auth
foreach ($line in $sesLines) {
if ($line -match '^session\s*:\s*(\S+)') { $sid = $Matches[1] }
if ($line -match '^app-id\s*:\s*(\S+)' -and $Matches[1] -ne 'BackgroundJob') {
& $rac session terminate --cluster=$cluster --session=$sid @auth
}
}
Скрипт опирается на порядок полей в выводе rac: строка session идёт раньше app-id. Проверьте его один раз вручную на тестовой базе, прежде чем ставить в расписание.
Запуск через «Планировщик заданий» Windows: действие powershell.exe, аргументы -ExecutionPolicy Bypass -File C:\scripts\kick1c.ps1, учётная запись с правами администратора, триггер — ежедневно, например в 23:00. Пароль администратора кластера в скрипте храните в файле с ограниченным доступом.
Таймауты, которые чистят «забытые» сеансы
- ⏱️ В свойствах базы в консоли кластера — «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса». Сеанс, где никто ничего не делает, сначала засыпает и отдаёт клиентскую лицензию, а потом завершается.
- ⏱️ В групповой политике Windows —
Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удалённых рабочих столов → Узел сеансов удалённых рабочих столов → Ограничение сеансов по времени. Параметр для отключённых сеансов закрывает их через заданное время, например 2 часа.
6. Выход из облачного сервера 1С
В облаке способ выхода зависит от того, как вы подключаетесь.
| Как работаете | Как выйти правильно | Чего не делать |
|---|---|---|
| 1С в браузере (веб-клиент, сервисы вроде 1С:Фреш) | ≡ → Файл → Выход или кнопка выхода в интерфейсе сервиса | просто закрывать вкладку |
| Арендованный терминальный сервер (RDP) | закрыть 1С, затем logoff | закрывать окно RDP крестиком |
| Тонкий клиент к облачному кластеру | Файл → Выход | снимать процесс в диспетчере задач |
При закрытой вкладке браузера сеанс веб-клиента не исчезает мгновенно: он остаётся в кластере, пока не сработает таймаут. В облаке у вас нет доступа к консоли кластера, поэтому «зависший» сеанс снимает либо администратор приложения через «Активные пользователи» (Администрирование → Обслуживание), либо поддержка провайдера.
💡 Если провайдер тарифицирует по числу одновременных сеансов, привычка закрывать вкладку вместо выхода прямо стоит денег: забытые сеансы занимают места до таймаута.
7. Аварийная ситуация: база занята, никто не признаётся
Типовой сценарий: вечер, надо срочно поставить обновление, а 1С пишет Ошибка установки монопольного режима. Информационная база используется другими пользователями. Порядок действий от мягкого к жёсткому:
Если сеанс удалён, но снова появляется в списке, — это не призрак. Либо пользователь переподключился (блокировка не включена), либо его клиент сам восстанавливает соединение, либо это регламентное задание. Проверьте колонку «Приложение» и время начала сеанса.
Если сеанс не удаляется вообще, а рабочий процесс завис, крайняя мера — перезапуск службы «Агент сервера 1С:Предприятия 8.3».
Перезапуск службы агента обрывает сеансы всех пользователей во всех базах этого сервера. Делайте его только вне рабочего времени и после предупреждения людей.
8. Ошибки при завершении сеансов
- 🔴 Удаляют сеанс посреди проведения документа. Транзакция откатывается, документ остаётся непроведённым. Человек может этого не заметить. После принудительного выхода попросите пользователя проверить последние документы.
- 🔴 Снимают процесс
1cv8c.exeв диспетчере задач на сервере. Сеанс в кластере останется ещё на какое-то время, пока сервер не поймёт, что клиент пропал. Лицензия всё это время занята. - 🔴 Удаляют сеансы, не включив блокировку. Через минуту в базе снова 10 человек.
- 🔴 Забывают снять блокировку. Утром никто не может войти, а сообщение блокировки висит с вечера. Ставьте в блокировке время окончания.
- 🔴 Хранят пароль администратора кластера прямо в общем
.batна рабочем столе. Любой, кто откроет файл, получит полный доступ к кластеру.
9. Частые вопросы о выходе из сервера 1С
Освобождается ли лицензия, если закрыть окно RDP крестиком?
logoff.Увидит ли пользователь, что его выкинули из 1С?
rac клиент показывает сообщение о завершении сеанса и закрывается. Несохранённые данные в открытой форме теряются.Можно ли завершить сеанс без прав администратора кластера?
rac спросят его логин и пароль. В типовых конфигурациях пользователь с полными правами может сделать это через «Активные пользователи», но программа тоже запросит параметры администрирования кластера.