Выгнать всех из базы 1С: завершение сеансов на сервере

· 9 мин

Содержание

Пятница, шесть вечера. Нужно обновить конфигурацию , а в базе висят четыре сеанса: двое ушли домой, не закрыв 1С, один обедает вторую неделю. Конфигуратор пишет, что для монопольного доступа надо отключить пользователей 1С, и дальше не пускает.

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

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

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

  1. Узнайте, кто в базе и что делает. Список активных пользователей покажет имя, компьютер, приложение и время начала сеанса.
  2. Предупредите людей. Просто напишите в рабочий чат время, до которого нужно сохраниться и выйти.
  3. Убедитесь, что нет фоновых процессов: длительное закрытие месяца , загрузка из банка, обмен с сайтом. Их сеансы тоже видны в списке, это строки «Фоновое задание» и «Регламентное задание».
  4. Сделайте резервную копию, если после отключения будут менять структуру данных (обновление, тестирование и исправление, загрузка из файла).

Не завершайте сеанс, пока в нём идёт проведение или перепроведение за период. Транзакция откатится, но на большой базе откат тянется долго, а повторный запуск съест ещё час.

Способы отличаются возможностями:

СпособЧто нужноКогда использовать
Окно «Активные пользователи» в программеПрава администратора в базеОбычное планово-предупредительное отключение
Консоль администрирования кластераПрава администратора кластераЗависшие сеансы, пользователь не пускает по иным причинам
КонфигураторПользователь с правом администрированияНужен монопольный режим для обновления
Утилита racРаботающий сервис rasАвтоматизация, расписание, много баз
Диспетчер задач или серверДоступ к ОСФайловая база или полностью зависший процесс

Отключение пользователей через интерфейс 1С

Это самый мягкий способ, и начинать лучше с него. Откройте базу под администратором и найдите раздел администрирования, подраздел «Поддержка и обслуживание». Там есть пункт со списком активных пользователей. Если не нашли, введите «Активные пользователи» в поле поиска по командам.

Закрываем вход для остальных

В окне списка есть команда «Блокировка работы пользователей». Задайте:

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

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

Завершаем сеансы вручную

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

💡 Фоновые и регламентные задания в списке можно не трогать: на время обновления их блокирует отдельный флаг, о нём ниже.

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

Консоль нужна, когда из программы не получается: база не открывается, пользователь «завис», или вы вообще не можете войти. Консоль серверов ставится вместе с платформой (в старых версиях это оснастка, в новых отдельное приложение). Подключитесь к серверу, обычно по адресу машины и порту 1545, и раскройте дерево: кластеры, нужный кластер, информационные базы, ваша база.

Закрываем базе вход

Откройте свойства информационной базы. Там есть блок блокировки:

  1. Включите «Блокировка начала сеансов включена».
  2. Заполните «Начало» и «Окончание» блокировки. Окончание лучше задать, иначе потом забудете снять.
  3. Введите текст сообщения и «Код разрешения», чтобы войти самому.
  4. При необходимости включите блокировку регламентных заданий.
  5. Нажмите «Применить».

Теперь новые подключения отсекаются, а те, кто в базе, остаются. Это штатная блокировка кластера, она не зависит от платформы клиента.

Рвём сеансы и соединения

В дереве базы есть две ветки: «Сеансы» и «Соединения». Разница важна.

  • Сеанс — логический вход пользователя в базу. Его видно в списке активных пользователей.
  • Соединение — технический канал клиента или процесса с сервером. Может висеть, даже когда сеанса уже нет.

Для обычного отключения: откройте «Сеансы», выделите нужные строки (можно все), нажмите правой кнопкой и выберите «Завершить». Если сеанс не уходит, перейдите в «Соединения» и выберите «Отключить» у соответствующих строк. Колонки «Приложение» и «Компьютер» подскажут, кто есть кто.

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

Через Конфигуратор: для монопольного режима

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

Путь первый. Меню «Администрирование», «Активные пользователи». Там видны все сеансы. Для клиент-серверной базы список можно использовать, чтобы увидеть, кто мешает, и дальше завершить сеансы в консоли или программе. В файловой базе завершать сеансы из этого окна нельзя, только смотреть.

Путь второй. Запустить Конфигуратор с параметром, который сразу отключит всех. В окне запуска выбора базы можно добавить параметр командной строки. Для разрешения входа под блокировкой используется ключ /UC с кодом разрешения:

1cv8.exe DESIGNER /S "srv01\buh" /N Админ /P пароль /UC РазрешитьВход

Здесь srv01\buh — сервер и имя базы в кластере, а РазрешитьВход — код разрешения, который вы задали при блокировке. Конфигуратор откроется, даже когда вход для всех остальных закрыт.

💡 Монопольный режим в Конфигураторе включайте только когда в списке не осталось сеансов, кроме вашего. Иначе получите ту же ошибку, а фоновые сеансы прячутся не всегда на виду.

Командная строка и скрипты: rac и параметры запуска

Если баз много или отключение нужно делать по расписанию (например, ночью перед выгрузкой), выручает утилита rac. Она лежит в каталоге платформы рядом с остальными исполняемыми файлами и общается с сервисом администрирования ras. Запустите его на сервере:

ras cluster --port=1545

Дальше нужны идентификаторы. Это длинные UUID, их берут из вывода команд.

rac cluster list
rac infobase summary list --cluster=<ID_кластера>
rac session list --cluster=<ID_кластера> --infobase=<ID_базы>

Завершить конкретный сеанс:

rac session terminate --cluster=<ID_кластера> --session=<ID_сеанса>

Отключить соединение:

rac connection disconnect --cluster=<ID_кластера> --process=<ID_процесса> --connection=<ID_соединения>

Включить блокировку входа на весь период работы:

rac infobase update --cluster=<ID_кластера> --infobase=<ID_базы> --infobase-user=Админ --infobase-pwd=пароль --sessions-deny=on --denied-message="Обновление базы" --permission-code=РазрешитьВход

Снять блокировку после работ:

rac infobase update --cluster=<ID_кластера> --infobase=<ID_базы> --infobase-user=Админ --infobase-pwd=пароль --sessions-deny=off

Если на кластере заданы свои администраторы, к каждой команде добавьте --cluster-user и --cluster-pwd. Точный набор ключей зависит от версии платформы, поэтому сверяйтесь со встроенной справкой: rac help infobase update.

Типовой сценарий для ночного скрипта

  1. Включить блокировку входа и регламентных заданий.
  2. Подождать 5-10 минут: у людей на экране появляется сообщение.
  3. Получить список сеансов базы и в цикле завершить каждый.
  4. Выполнить обновление, выгрузку или тестирование.
  5. Снять блокировку.

Все секреты из скрипта вынесите в переменные окружения или защищённый файл, а не в текст.

В самой 1С есть и более мягкий механизм: в стандартных конфигурациях действует параметр запуска /C"ЗавершитьРаботуПользователей", который заставляет работающие клиенты корректно закрыться. Он есть там, где подключена библиотека стандартных подсистем, и работает через периодическую проверку на клиентах.

Когда сеанс не отключается: зависшие сеансы

Бывает так: вы нажали «Завершить», а строка осталась. Причины обычно такие:

  • 🔄 Клиент выполняет длинный серверный вызов, и сеанс закроется только после его окончания.
  • 🔒 Идёт транзакция с блокировками, откат занимает минуты.
  • 🖥 Клиентский процесс на рабочем месте завис, а соединение осталось «висеть» из-за сетевого обрыва.
  • 🧩 Рабочий процесс сервера (rphost) перегружен и не обрабатывает команды.

Порядок действий от мягкого к жёсткому:

  1. Подождите 2-3 минуты и обновите список. Часто сеанс уходит сам.
  2. Завершите соединение в консоли, а не только сеанс.
  3. Посмотрите, какой рабочий процесс обслуживает базу (в консоли ветка «Рабочие процессы»), и какой PID у него. В диспетчере задач или командой tasklist найдите rphost с этим номером и проверьте нагрузку.
  4. Только если процесс окончательно завис, остановите его. Кластер поднимет новый, но сеансы всех баз на этом процессе оборвутся.
  5. Если и это не помогло, перезапустите службу «Агент сервера 1С:Предприятия». Это уже остановка для всех баз на сервере.

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

Диагностика: выберите симптом

Файловая база

В файловой базе нет сервера и кластера, поэтому «завершить сеанс» из консоли невозможно. Каждый клиент напрямую работает с файлом 1Cv8.1CD. Что делать:

  • Увидеть, кто держит файл, можно на компьютере, где лежит база: оснастка управления компьютером, раздел общих папок, «Открытые файлы». Выберите файл 1Cv8.1CD и закройте его.
  • Можно найти процессы 1cv8.exe на рабочих местах и закрыть их через диспетчер задач.
  • Отдельно проверьте файл блокировки 1Cv8.cdn в каталоге базы: он создаётся при работе и показывает, что кто-то ещё подключён.

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

Что делать после работ

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

После отключения и работ
Выполнено: 0 / 5

Как не оказаться в этой ситуации снова

Отключать людей силой приходится из-за привычек, и часть из них лечится заранее.

  • Договоритесь о «окне обслуживания»: например, по четвергам после 19:00 базу можно закрывать без предупреждения.
  • Закрепите в регламенте, что 1С по окончании рабочего дня закрывается. Забытые на ночь сеансы держат лицензии и блокируют обновления.
  • Настройте блокировку заранее запланированным заданием на сервере. Тогда сообщение «база закроется в 19:00» увидят все.
  • Ведите список сеансов, которые нельзя трогать: обмены, интеграции, служебные учётные записи роботов.
  • Проверьте журнал регистрации после отключения: там видно, кто и когда завершил сеанс, это пригодится при разборе споров.

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

Отключится ли пользователь без потери данных?
Если он успел сохранить документы, то да. Всё, что не записано, потеряется. Незавершённые транзакции откатываются автоматически.
Можно ли отключить всех одной командой?
В консоли кластера можно выделить все строки в ветке «Сеансы» и завершить их разом. В rac придётся пройтись по списку сеансов в цикле.
Чем блокировка входа отличается от завершения сеансов?
Блокировка не пускает новых и не трогает вошедших. Завершение сеанса убирает тех, кто уже внутри. Для обслуживания нужны обе операции.
Нужно ли отключать регламентные задания перед обновлением?
Да. Иначе фоновое задание может создать новый сеанс и сорвать монопольный режим. Отдельный флаг блокировки заданий есть и в консоли, и в rac.
Что делать, если администратор забыл код разрешения?
Снимите блокировку в консоли кластера: там можно отключить флаг без кода. Для этого нужны права администратора кластера.