Отключаем пользователей от базы 1С: от вежливой просьбы до rac

· 9 мин

Содержание

Завершить сеансы пользователей в 1С 8.3 быстрее всего через консоль администрирования кластера: Кластер → Информационные базы → <база> → Сеансы, выделить сеансы и выбрать в контекстном меню «Удалить». Если людей нужно не просто выкинуть, а не пустить обратно на время обновления — сначала включают блокировку начала сеансов, а уже потом удаляют оставшихся.

Выбор способа зависит от трёх вещей: файловая база или клиент-серверная, есть ли у вас пароль администратора кластера и сколько времени до работ. Для ночных регламентов удобнее скрипт на rac, для зависших сеансов — перезапуск службы, а в файловой базе — блокировка средствами самой программы.

Какой способ отключения выбрать

СпособКогда подходитРиски
Пользователь выходит самЕсть 10–15 минут, людей немногоКто-то забудет, ушёл на обед с открытой базой
Консоль кластера серверовКлиент-серверная база, нужен быстрый результатНесохранённые документы пропадут
Блокировка начала сеансовРегламент: обновление, загрузка .dt, тестирование и исправлениеЗабыли снять — утром никто не войдёт
«Активные пользователи» и блокировка в самой 1СНет доступа к серверу, есть права администратора в базеВ клиент-серверном режиме всё равно нужен пароль администратора кластера
Остановка службы или процессовСеансы «висят», консоль не помогаетОбрываются сеансы во ВСЕХ базах сервера
Скрипт на racНочные регламенты по расписаниюОшибка в фильтре — отключите не ту базу

Сеанс и соединение — разные вещи. Сеанс — это пользователь (или фоновое задание) в базе. Соединение — сетевой канал клиента с рабочим процессом. Обычно удаляют именно сеансы: соединения закрываются вслед за ними.

Как пользователю штатно завершить свою работу

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

  1. Записать и провести открытые документы.
  2. Закрыть формы, где идёт долгая операция (закрытие месяца , обработка, загрузка).
  3. Выйти через главное меню: значок с тремя полосками в левом верхнем углу → Файл → Выход. Можно просто закрыть окно программы крестиком.
  4. Если окно не закрывается — подождать: обычно клиент дописывает данные на сервер.

Что ломает штатный выход:

  • 🔌 обрыв сети или VPN — клиент пропал, а сеанс на сервере ещё живёт;
  • 💻 «убитый» через Диспетчер задач процесс 1cv8c.exe или 1cv8.exe;
  • 🌙 ноутбук ушёл в сон с открытой базой;
  • 🖥 закрытая RDP-сессия без выхода из 1С: программа продолжает работать на терминальном сервере.

Последний случай самый частый. На терминальном сервере «отключиться» от RDP — не значит выйти из 1С. Сеанс занимает лицензию и мешает обновлению. Научите людей выходить из программы, а на сервере задайте лимит для отключённых RDP-сессий в групповых политиках.

Завершение сеансов в консоли управления кластером серверов

Для клиент-серверной базы это основной инструмент. Консоль — оснастка MMC «Администрирование серверов 1С Предприятия», ставится вместе с платформой.

Подключение к серверу

  1. Запустите консоль. Если её нет в меню «Пуск» или она пустая, зарегистрируйте radmin.dll из папки bin нужной версии платформы командой от администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1467\bin\radmin.dll"
  1. Правой кнопкой по «Central 1C:Enterprise 8.3 servers» → «Создать» → «Центральный сервер 1С:Предприятия 8.3».
  2. Укажите имя сервера и порт агента — по умолчанию 1540.
  3. Если на кластере заведены администраторы, консоль спросит логин и пароль.

Версия консоли (то есть зарегистрированного radmin.dll) должна совпадать с версией сервера. Иначе консоль либо не подключится, либо покажет ошибку о несовпадении версий.

Удаление сеансов

  1. Раскройте Кластеры → <кластер> → Информационные базы → <база> → Сеансы.
  2. Справа появится список: пользователь, компьютер, приложение, время начала, последняя активность.
  3. Выделите нужные строки (Ctrl или Shift для нескольких).
  4. Правой кнопкой → «Удалить» и подтвердите.

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

Колонка «Приложение» помогает не удалить лишнее:

ЗначениеЧто этоУдалять?
Тонкий клиент, Толстый клиентОбычный пользовательДа, если вышло время
КонфигураторРазработчик или администраторСначала спросите — может идти обновление
Фоновое заданиеРегламентное задание базыДа, но лучше включить блокировку регламентных заданий
Веб-клиент, Веб-серверПользователь через браузер или HTTP-сервисПо ситуации
COM-соединениеВнешняя программа, обменУточните, кто подключается

Удаление сеанса не сохраняет данные пользователя. Документ, который он не записал, пропадёт. Транзакция, которая шла в момент удаления, откатится.

Блокировка новых соединений перед регламентными работами

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

Блокировка в консоли кластера

  1. Правой кнопкой по базе → «Свойства».
  2. Введите логин и пароль администратора информационной базы (пользователь 1С с полными правами).
  3. Заполните поля:
    • «Блокировка начала сеансов включена» — галочка;
    • «Начало» и «Конец» — интервал блокировки; пустой конец означает «пока не снимут вручную»;
    • «Сообщение» — текст, который увидит пользователь при попытке входа;
    • «Код разрешения» — пароль, по которому администратор войдёт несмотря на блокировку;
    • «Блокировка регламентных заданий включена» — чтобы фоновые задачи не стартовали во время работ.
  4. Нажмите «ОК», затем удалите оставшиеся сеансы, как описано выше.

Блокировка не выкидывает тех, кто уже внутри. Она только запрещает новые входы. Поэтому порядок такой: блокировка → удаление сеансов → работы → снятие блокировки.

Как войти в заблокированную базу

Администратор запускает 1С с параметром /UC и кодом разрешения. Например, в командной строке:

"C:\Program Files\1cv8\8.3.24.1467\bin\1cv8.exe" DESIGNER /S"srv1c\buh" /N"Администратор" /P"пароль" /UC1234

Код можно дописать и в поле «Дополнительные параметры запуска» в настройках базы в окне запуска.

Ставьте «Конец» блокировки с запасом, но не оставляйте поле пустым на ночных работах. Если скрипт или человек забудет снять блокировку, она хотя бы сама закончится к утру.

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

Если доступа к серверу нет, а права администратора в базе есть, поможет функционал типовых конфигураций на БСП: Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА и ERP. Механизм общий для платформы и библиотеки, поэтому пути совпадают.

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

Администрирование → Обслуживание → Активные пользователи.

Форма показывает, кто сейчас в базе, с какого компьютера и в каком приложении. Выделите строку и нажмите «Завершить сеанс». В клиент-серверной базе программа попросит параметры администрирования кластера: если на кластере есть администраторы, без их логина и пароля сеанс не завершится.

В Конфигураторе тоже есть Администрирование → Активные пользователи, но этот список только для просмотра — отключить из него никого нельзя.

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

Администрирование → Обслуживание → Блокировка работы пользователей.

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

Особенность файловой базы

В файловом режиме нет кластера и нет консоли. Принудительно оборвать чужой сеанс изнутри программы нельзя. Блокировка БСП работает за счёт того, что клиенты сами видят флаг блокировки, показывают предупреждение и закрываются.

Для автоматического отключения БСП понимает параметры запуска:

ПараметрЧто делает
/C"ЗавершитьРаботуПользователей"Устанавливает блокировку и завершает работу пользователей
/C"РазрешитьРаботуПользователей"Снимает блокировку
/UC<код>Вход в заблокированную базу
Какая у вас ситуация?

Аварийное завершение через службы Windows и Linux

Этот путь — когда консоль не отвечает, сеанс после удаления «воскресает» или рабочий процесс завис.

Остановка службы или процесса обрывает сеансы ВСЕХ пользователей во ВСЕХ базах этого сервера. Делайте это в нерабочее время или после оповещения. Если в момент остановки шло обновление конфигурации или загрузка .dt — база может остаться в несогласованном состоянии, восстанавливаться придётся из резервной копии.

Windows

  1. Откройте services.msc.
  2. Найдите службу «Агент сервера 1С:Предприятия 8.3» (в названии может быть указана разрядность, например «x86-64»).
  3. Выберите «Перезапустить».

Из командной строки то же самое делают через sc stop и sc start с именем службы. Точное имя посмотрите в свойствах службы, поле «Имя службы».

Если завис один рабочий процесс, а не весь сервер, сначала посмотрите в консоли Кластер → Рабочие процессы. У процесса rphost видно занятую память и число соединений. Его можно завершить в Диспетчере задач — менеджер кластера запустит новый. Сеансы, жившие в этом процессе, оборвутся.

Linux

С платформы 8.3.21 сервер ставится как systemd-юнит с номером версии в имени. Найдите его и перезапустите:

systemctl list-units | grep srv1cv8
sudo systemctl restart srv1cv8-8.3.24.1467@default

На более ранних версиях использовался init-скрипт srv1cv83. Процессы те же, что в Windows: ragent, rmngr, rphost.

Файловая база на общей папке

Здесь сервера 1С нет — каждый клиент сам открывает файл 1Cv8.1CD. Если чужой компьютер завис или выключен, а файл занят:

  1. На файловом сервере откройте «Управление компьютером» → «Общие папки» → «Открытые файлы».
  2. Найдите строки с путём к 1Cv8.1CD нужной базы и пользователем.
  3. Правой кнопкой → «Закрыть открытый файл».

Пользователь, у которого закрыли файл, получит ошибку и потеряет несохранённые данные.

Автоматизация через командную строку: rac и ras

Для ночных регламентов кликать в консоли неудобно. Утилита rac делает то же самое из командной строки. Она общается не с агентом напрямую, а с сервером администрирования ras — его нужно запустить отдельно (по умолчанию порт 1545).

Запуск ras как фонового процесса на Linux:

/opt/1cv8/x86_64/8.3.24.1467/ras cluster --daemon

На Windows ras.exe лежит в той же папке bin, его обычно регистрируют службой, чтобы он поднимался вместе с сервером.

Базовые команды

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

Если на кластере есть администраторы, к командам добавляют --cluster-user= и --cluster-pwd=. Полный список параметров — в справке rac help session и rac help infobase.

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

#!/bin/bash
# Завершает все сеансы базы buh на локальном сервере
RAC="/opt/1cv8/x86_64/8.3.24.1467/rac"
AUTH="--cluster-user=admin --cluster-pwd=secret"
BASE="buh"

CL=$($RAC cluster list | awk '/^cluster /{print $3; exit}')

IB=$($RAC infobase summary list --cluster=$CL $AUTH | \
     awk -v b="$BASE" '/^infobase /{id=$3} /^name /{if ($3==b) {print id; exit}}')

for S in $($RAC session list --cluster=$CL --infobase=$IB $AUTH | awk '/^session /{print $3}'); do
  $RAC session terminate --cluster=$CL --session=$S $AUTH
done

Шаблон /^session / с пробелом важен: он отсекает поле session-id, в котором лежит короткий номер, а не идентификатор.

Блокировку начала сеансов тоже ставят через rac infobase update с логином и паролем администратора базы. Используемые там ключи (запрет сеансов, сообщение, код разрешения, запрет регламентных заданий) проверьте по rac help infobase для своей версии платформы: набор параметров со временем расширялся.

Не храните пароль администратора кластера открытым текстом в скрипте на общем ресурсе. Минимум — права на файл только для учётной записи, под которой работает планировщик.

Для файловых баз автоматизация строится на параметрах запуска БСП: ночной планировщик запускает 1cv8.exe ENTERPRISE с /C"ЗавершитьРаботуПользователей", затем выполняет работы, затем снимает блокировку через /C"РазрешитьРаботуПользователей".

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

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