К статье
Практический материал

Администрирование · 11 мин

Как завершить сеансы пользователей в 1С

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

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

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

Как определить, кто сейчас работает в базе

Прежде чем что-то отключать, нужно увидеть текущую картину: кто подключён, откуда, как давно и чем занят. В файловом режиме откройте раздел «Администрирование → Обслуживание → Активные пользователи» (в конфигурациях на БСП). Откроется список сеансов с именами пользователей, временем начала работы и компьютерами. Учтите, что список показывает только подключения к текущей базе — если у вас несколько баз на одном сервере, проверять нужно каждую.

В клиент-серверном режиме полную картину даёт консоль администрирования серверов 1С (файл 1CV8 Servers.msc или «Администрирование серверов 1С Предприятия» в меню «Пуск»). Раскройте ветку «Центральные серверы → имя сервера → Кластеры → Локальный кластер → Сеансы». Здесь видны все сеансы всех баз кластера, тип клиента (тонкий, толстый, веб, фоновое задание, COM-соединение), время последнего обращения и потребление памяти.

Сеанс без активности часамиВероятно, «зависший» клиент

Проверьте время последнего обращения — если оно старое, сеанс можно завершать безопасно

Тип «Фоновое задание»Выполняется регламентная операция

Принудительное завершение может оборвать обмен данными или расчёт на середине

Много сеансов одного пользователяДублирование подключений

Частая причина — обрывы сети и тайм-ауты; завершайте дубли, оставляя активный

Завершение сеансов в файловой базе

В файловом режиме нет сервера приложений, поэтому управление происходит из самой 1С — при условии, что у вас есть права администратора. В типовых конфигурациях на базе Библиотеки стандартных подсистем перейдите в «Администрирование → Обслуживание → Блокировка работы пользователей» (в некоторых версиях — «Блокировка работы с программой»). Установите флаг блокировки, укажите текст сообщения, которое увидят пользователи, и время начала блокировки.

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

Если типовой подсистемы нет (самописная конфигурация), остаётся монопольный режим: запустите конфигуратор и попробуйте установить монопольный доступ — он не включится, пока в базе есть пользователи, и покажет их список. В крайнем случае файловую базу можно «освободить» на уровне операционной системы, закрыв процессы 1cv8.exe на компьютерах пользователей, но это грубый метод с риском повреждения данных при прерывании записи.

Завершение сеансов через консоль кластера серверов

Это основной способ для клиент-серверной 1С. Откройте консоль администрирования на сервере или на своём компьютере (если зарегистрирован нужный кластер). Перейдите в «Кластеры → Локальный кластер → Сеансы», выделите нужные строки (Ctrl и Shift работают как обычно), нажмите правую кнопку и выберите «Удалить». Сеанс завершается принудительно — клиент получит сообщение о разрыве соединения.

Для массового отключения с защитой от переподключения используйте свойства информационной базы: правый клик по базе в ветке «Информационные базы» → «Свойства». Установите флаг «Блокировка начала сеансов включена», задайте время начала и окончания, сообщение и код разрешения — строку, которую администратор сможет указать при входе, чтобы работать во время блокировки. После этого удалите сеансы нужной базы.

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

Зависшие сеансы и соединения

Иногда сеанс остаётся в списке после аварийного закрытия клиента — например, при обрыве сети. Такой «фантом» держит лицензию и может блокировать монопольные операции. Ориентируйтесь на колонку «Последний вызов СУБД» и время бездействия: если активности нет длительное время, сеанс смело удаляйте. Дополнительно проверьте ветку «Соединения» — там отображаются физические подключения к кластеру.

Утилита rac и автоматизация через скрипты

Когда баз много или отключения нужны по расписанию (например, перед ночным бэкапом), удобнее консольная утилита rac из каталога установки сервера 1С. Она позволяет получить список сеансов и завершить их без графической консоли, что легко встроить в скрипт обслуживания.

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

Типовой сценарий скрипта: сначала командой rac session list получите список сеансов с идентификаторами, отфильтруйте по базе, затем в цикле выполните terminate для каждого. Перед этим тем же rac установите блокировку: rac infobase update --sessions-deny=on с параметрами сообщения и кода разрешения. Храните такие скрипты под контролем версий и тестируйте на копии — ошибка в фильтре завершит сеансы не той базы.

Альтернатива rac — PowerShell с COM-объектом V83.COMConnector и методом администрирования, либо сторонние обработки, использующие встроенный язык 1С. Для файловых баз внутри кода доступна функция ПолучитьСоединенияИнформационнойБазы() и метод ОтключитьСоединение() — так делают кнопку «выгнать всех» в самописных конфигурациях.

Риски и как не потерять данные

Принудительное завершение сеанса равнозначно выдергиванию вилки: незаписанные документы, открытые формы с изменениями и незавершённые транзакции пропадают. Если в момент отключения шла запись большого документа или закрытие месяца, возможны незавершённые транзакции в СУБД и, в худшем случае, необходимость тестирования и исправления базы.

Безопасная практика — всегда давать пользователям окно на сохранение: включите блокировку за 10–15 минут до отключения с понятным сообщением («База будет недоступна с 19:00, сохраните документы»). Перед критичными операциями сделайте резервную копию и убедитесь, что она читается. Если после массового отключения планируется обновление конфигурации, проверьте, что не осталось фоновых заданий — они тоже держат соединения.

Типичные ошибки
01
Удаление сеансов без блокировки новых — пользователи переподключаются, и обновление не начинается
02
Завершение сеанса с фоновым заданием обмена — обрыв на середине и рассинхронизация данных
03
Отключение всех сеансов подряд, включая свой собственный административный
04
Блокировка без кода разрешения — администратор сам не может войти в базу для обслуживания
05
Забытая блокировка после работ — утром сотрудники не могут войти, хотя обновление давно завершено

Проверка результата и снятие блокировки

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

Контрольные точки

Как проверить результат

Список сеансов базы в консоли кластера
Норма

Пусто или только сеанс администратора

Тревожный признак

Сеансы появляются снова — блокировка не включена

Монопольный режим / обновление конфигурации
Норма

Устанавливается без ошибок о занятых соединениях

Тревожный признак

Сообщение об активных пользователях — ищите фоновые задания и COM-соединения

Вход пользователя после снятия блокировки
Норма

Вход выполняется, сообщение о блокировке не показывается

Тревожный признак

Ошибка блокировки — флаг не снят или задан неверный период

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

Итог

Что важно запомнить

Сначала блокировка новых соединений — потом завершение активных сеансов. Файловая база управляется изнутри 1С, клиент-серверная — через консоль кластера или утилиту rac. Принудительное отключение уничтожает несохранённые данные, поэтому предупреждайте пользователей и проверяйте фоновые задания. После работ снимайте блокировку и проверяйте вход.

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

Как завершить сеанс, если нет доступа к консоли кластера?

Используйте утилиту rac с командной строки сервера или попросите коллегу с правами администратора кластера. В крайнем случае перезапуск службы «Агент сервера 1С:Предприятия» завершит все сеансы кластера, но это аварийная мера, затрагивающая все базы сразу.

Пользователь завершил сеанс, но лицензия не освободилась. Что делать?

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

Можно ли завершить сеанс конкретного пользователя из кода 1С?

Да, через ПолучитьСоединенияИнформационнойБазы() с последующим вызовом ОтключитьСоединение() для нужного соединения — но метод требует административных прав и работает с ограничениями в зависимости от режима. В клиент-серверном варианте надёжнее RAC или административные API кластера.

Что такое код разрешения при блокировке сеансов?

Это произвольная строка, которую вы задаёте при включении блокировки. Администратор вводит её в параметре /UC при запуске 1С или в строке подключения — и входит в базу, пока остальным доступ закрыт. Без кода во время блокировки не войдёт никто, включая вас.

Завершаются ли при этом фоновые и регламентные задания?

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

Как отключить всех пользователей файловой базы, если типовой обработки блокировки нет?

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