Закрываем 1С 8.3 без зависших сеансов: от кнопки «Выход» до rac и блокировки базы
Содержание
Правильно выйти из
1С 8.3 — значит закрыть программу через главное меню: Файл → Выход или сочетанием Alt+F4. Тогда платформа сохраняет настройки пользователя, завершает сеанс на сервере и сразу освобождает лицензию. Если человек просто выключил компьютер или программа «упала», сеанс остаётся висеть, держит лицензию и мешает обновлению. Его закрывают администратор в консоли кластера, утилитой rac или через блокировку информационной базы.
Способ выбирают по ситуации. Один пользователь вышел сам — хватает штатного выхода. Нужно выгнать одного-двух зависших — консоль кластера. Нужно освободить базу на ночь под обновление — блокировка начала сеансов. Регулярно, по расписанию — скрипт на rac. В файловой базе серверных инструментов нет, там свои приёмы.
Штатный выход из программы 1С пользователем
Самый безопасный вариант — закрыть все открытые документы и выйти через меню. Порядок такой:
- Запишите или проведите документы, с которыми работали. Незаписанная форма при выходе спросит «Данные были изменены. Сохранить изменения?» — ответ «Нет» потеряет правки.
- Откройте главное меню — кнопка с тремя полосками в левом верхнем углу окна.
- Выберите
Файл → Выход. Аналог — крестик окна илиAlt+F4. - Подтвердите вопрос о завершении работы, если он появится.
Вопрос «Завершить работу с программой?» включается и отключается в Главное меню → Сервис → Параметры, флажок «Запрашивать подтверждение при закрытии программы». Новичкам его лучше оставить: он спасает от случайного закрытия по крестику.
💡 Если на экране висит длительная операция — закрытие месяца , загрузка из банка, формирование тяжёлого отчёта — дождитесь её окончания. Прерванная запись документа откатится целиком, но повторять операцию придётся заново.
Чем плох выход «через выключение компьютера»:
- 🔒 сеанс на сервере живёт ещё какое-то время и держит лицензию — следующий пользователь может получить ошибку о нехватке лицензий;
- ⚙️ при обновлении конфигурации администратор увидит «лишнего» пользователя и не сможет получить монопольный доступ;
- 📝 не сохраняются последние изменения настроек: ширина колонок, отборы, избранное.
Кто сейчас в базе: смотрим активные сеансы
Прежде чем кого-то отключать, посмотрите, кто реально работает. Сделать это можно тремя способами.
Из самой программы. Главное меню → Функции для технического специалиста → Стандартные → Активные пользователи. Список показывает пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание) и время начала. Если пункта «Функции для технического специалиста» нет, его включают в Сервис → Параметры.
Из Конфигуратора. Меню Администрирование → Активные пользователи — тот же список.
В консоли кластера (только клиент-серверная база ). Запустите оснастку «Администрирование серверов 1С:Предприятия» и раскройте дерево:
Central 1C:Enterprise 8.3 servers
└─ <имя сервера>
└─ Кластеры
└─ <кластер>
└─ Информационные базы
└─ <имя базы>
├─ Сеансы
└─ Соединения
В узле «Сеансы» видно пользователя, компьютер, тип приложения, время начала и последней активности, а также захваченную лицензию. Сеанс без активности несколько часов, с компьютера, который уже выключен, — кандидат на завершение.
| Где смотреть | Файловая база | Клиент-серверная база | Можно завершить сеанс |
|---|---|---|---|
| Активные пользователи в программе | да | да | нет, только просмотр |
| Конфигуратор | да | да | нет |
| Консоль кластера | — | да | да |
Утилита rac | — | да | да |
Если оснастка не открывается или пишет об ошибке регистрации, обычно помогает перерегистрация библиотеки консоли: запустите regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от имени администратора. Версия в пути должна совпадать с версией сервера.
Завершить сеанс 1С в консоли и через утилиту rac
В консоли кластера
- Откройте узел «Сеансы» нужной базы.
- Выделите сеанс (можно несколько, с
Ctrl). - Правой кнопкой —
Удалить, подтвердите.
У пользователя появится сообщение о разрыве соединения, незаписанные данные пропадут. Перед удалением сеанса предупредите человека, если он ещё работает.
Сеансы фоновых и регламентных заданий удалять бессмысленно: планировщик запустит их снова. Чтобы их остановить, нужна блокировка регламентных заданий — о ней ниже.
Через rac из командной строки
rac — консольный клиент сервера администрирования. Он работает, только если запущена служба ras (по умолчанию слушает порт 1545). Если службы нет, её можно запустить вручную из каталога bin платформы:
ras cluster --port=1545
Дальше последовательность такая:
:: 1. Узнать идентификатор кластера
rac cluster list
:: 2. Узнать идентификатор базы
rac infobase summary list --cluster=<cluster-uuid>
:: 3. Список сеансов этой базы
rac session list --cluster=<cluster-uuid> --infobase=<infobase-uuid>
:: 4. Завершить конкретный сеанс
rac session terminate --cluster=<cluster-uuid> --session=<session-uuid>
Если на кластере заведён администратор, добавляйте к каждой команде --cluster-user=<имя> --cluster-pwd=<пароль>. Для подключения к удалённому серверу укажите адрес в конце: rac cluster list srv-1c:1545.
В выводе rac session list для каждого сеанса есть поля user-name, host, app-id, started-at, last-active-at. По ним удобно искать зависшие: app-id показывает, тонкий это клиент, Конфигуратор или фоновое задание. Список сеансов вместе с занятыми лицензиями выводит rac session list --licenses.
💡 Полный список параметров для вашей версии сервера — в справке: rac help session и rac help infobase. Набор ключей между версиями платформы немного меняется.
Блокировка входа в базу перед обновлением и регламентом
Выгонять людей по одному перед обновлением бессмысленно: через минуту они зайдут снова. Правильный порядок — запретить новые сеансы, дать текущим завершиться и только потом работать с базой.
Через свойства базы в консоли кластера
Откройте свойства информационной базы (правая кнопка на базе → Свойства) и заполните:
- ✅ «Блокировка начала сеансов включена» — главный флажок;
- 🕒 «Начало» и «Конец» — интервал блокировки; можно задать заранее, например с 22:00 до 02:00;
- 💬 «Сообщение» — текст, который увидит пользователь при попытке входа;
- 🔑 «Код разрешения» — пароль для входа администратора в заблокированную базу;
- ⏸ «Блокировка регламентных заданий включена» — останавливает обмены, загрузку курсов и прочие фоновые задания.
Включённая блокировка не выкидывает тех, кто уже работает. Их сеансы удаляют отдельно — в консоли или через rac.
То же самое через rac
rac infobase update --cluster=<cluster-uuid> --infobase=<infobase-uuid> ^
--infobase-user=Администратор --infobase-pwd=<пароль> ^
--sessions-deny=on --scheduled-jobs-deny=on ^
--denied-message="Идёт обновление базы, вход откроется в 02:00" ^
--permission-code=7319
После работ блокировку снимают той же командой с --sessions-deny=off --scheduled-jobs-deny=off. Пользователь и пароль здесь — учётная запись самой информационной базы с правами администратора, а не администратора кластера.
Как войти в заблокированную базу
Администратор указывает код разрешения в параметре запуска /UC:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S"srv-1c\buh" /UC7319
В списке баз окна запуска параметр можно прописать в поле «Дополнительные параметры запуска» в свойствах базы. Не забудьте снять блокировку после работ, иначе утром бухгалтерия не попадёт в программу.
Блокировка средствами конфигурации
В типовых конфигурациях на Библиотеке стандартных подсистем (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть своя обработка «Блокировка работы пользователей». Она находится в разделе Администрирование → Обслуживание. Её плюс — пользователи заранее получают предупреждение и через несколько минут программа закрывается у них сама, с сохранением работы. Подходит и для файловой базы.
Эту же блокировку можно поставить и снять параметрами запуска: /C"ЗавершитьРаботуПользователей" и /C"РазрешитьРаботуПользователей". Так её включают из скриптов ночного обслуживания.
Выход и отключение пользователей в файловой базе
Файловая база — это каталог с файлом 1Cv8.1CD. Кластера и консоли здесь нет, поэтому rac бесполезен. Сеанс живёт, пока на чьём-то компьютере запущен процесс 1С, открывший этот файл.
Что делать, если пользователь ушёл, а база занята:
- Попросите его закрыть программу штатно. Если компьютер доступен удалённо — сделайте это сами через
Файл → Выход. - Если база на Бухгалтерии 3.0 или ЗУП 3.1 — включите «Блокировку работы пользователей» из раздела
Администрирование → Обслуживание. Программа закроется у всех через заданное время. - Если сеанс завис (процесс остался после сбоя), на компьютере пользователя завершите процесс
1cv8c.exe(тонкий клиент) или1cv8.exe(толстый клиент, Конфигуратор) в диспетчере задач. - Если компьютер недоступен, а база лежит в общей папке Windows, откройте на файловом сервере
compmgmt.msc → Общие папки → Открытые файлы, найдите1Cv8.1CDи закройте его у нужного пользователя.
Шаги 3 и 4 — аварийные. Пользователь потеряет незаписанные данные. Если в этот момент шла запись в базу, есть риск повредить файл. Делайте так, только когда штатный выход невозможен, и при наличии свежей копии базы.
Типичное сообщение при попытке обновить занятую файловую базу
— Ошибка блокировки информационной базы для конфигурирования. Оно значит, что кто-то ещё открыл базу: ищите его в «Активных пользователях» Конфигуратора. Сеансы фоновых заданий в файловой базе тоже возможны, если у кого-то открыт клиент: регламентные задания выполняются внутри клиентского сеанса.
Удалять какие-либо служебные файлы из каталога базы, чтобы «снять блокировку», не нужно. Блокировку держит процесс, а не файл: закройте процесс — и база освободится.
Автоматическое завершение неактивных сеансов
Сотрудники забывают выходить из 1С, особенно на терминальных серверах: сеанс RDP отключился, а 1С внутри работает неделю. Решений три.
Параметры спящих сеансов в свойствах базы
В свойствах информационной базы в консоли кластера есть поля «Время засыпания пассивного сеанса» и «Время завершения спящего сеанса» (в секундах). Они касаются сеансов, у которых клиент потерял связь с сервером: сеанс сначала «засыпает» и освобождает ресурсы, а через заданное время завершается. Для пользователей, которые просто оставили программу открытой, эти настройки не сработают — связь у них есть.
Отключить терминальный сеанс Windows
Если 1С работает на терминальном сервере, настройте в групповой политике лимиты для отключённых и бездействующих сеансов служб удалённых рабочих столов. Когда Windows завершает сеанс RDP, закрывается и процесс 1С, а сеанс на сервере 1С освобождается.
Скрипт на rac по расписанию
Самый гибкий вариант — ночной скрипт в планировщике заданий Windows. Пример на PowerShell завершает все сеансы тонкого клиента в выбранной базе, которые не были активны больше 4 часов:
$rac = "C:\Program Files\1cv8\8.3.25.1374\bin\rac.exe"
$cluster = "<cluster-uuid>"
$infobase = "<infobase-uuid>"
$limit = (Get-Date).AddHours(-4)
$raw = & $rac session list --cluster=$cluster --infobase=$infobase
$blocks = ($raw -join "`n") -split "`n\s*`n"
foreach ($b in $blocks) {
$id = if ($b -match 'session\s*:\s*(\S+)') { $Matches[1] }
$app = if ($b -match 'app-id\s*:\s*(\S+)') { $Matches[1] }
$last = if ($b -match 'last-active-at\s*:\s*(\S+)') { [datetime]$Matches[1] }
if ($id -and $app -eq '1CV8C' -and $last -and $last -lt $limit) {
& $rac session terminate --cluster=$cluster --session=$id
Write-Output "Завершён сеанс $id, последняя активность $last"
}
}
Путь к rac.exe замените на свой каталог платформы. Перед боевым запуском закомментируйте строку terminate и посмотрите, какие сеансы скрипт выбирает. Конфигуратор (Designer) и фоновые задания (BackgroundJob) в примере не трогаются.
Ставьте такой скрипт на ночь, когда в базе никто не работает . Днём он выкинет бухгалтера, который ушёл на обед с открытым документом.
Частые вопросы
Освобождается ли лицензия сразу после выхода из 1С?
Чем сеанс отличается от соединения в консоли кластера?
Можно ли выйти из 1С так, чтобы сразу зайти под другим пользователем?
Файл → Выход и снова запустите базу из окна запуска, выбрав другого пользователя. Если включена аутентификация Windows, окно выбора пользователя не появится — для входа под другой учётной записью нужна аутентификация 1С.