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

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

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

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

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

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

Что такое сеанс и почему он «зависает»

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

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

Подготовка: блокировка новых подключений

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

Первый способ — через консоль кластера: откройте свойства информационной базы, установите флажок «Блокировка начала сеансов включена», задайте сообщение для пользователей, время начала и окончания блокировки и код разрешения. Код разрешения — это строка, которую администратор добавляет в параметр запуска /UC<код>, чтобы самому войти в заблокированную базу.

Второй способ — типовой функционал конфигураций на базе БСП: раздел «Администрирование» → «Обслуживание» → «Блокировка работы пользователей». Там же можно увидеть список активных пользователей и отправить им предупреждение. Этот вариант удобнее, когда под рукой нет доступа к консоли сервера.

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

Сброс сеансов через консоль кластера серверов

Основной инструмент для клиент-серверной 1С — консоль администрирования серверов (оснастка «Администрирование серверов 1С:Предприятия»). Она устанавливается вместе с сервером или отдельно на машину администратора. Откройте консоль, разверните нужный кластер, затем ветку «Информационные базы» → ваша база → «Сеансы».

В списке видны все активные сеансы: пользователь, приложение (тонкий клиент, конфигуратор, фоновое задание), время начала, компьютер. Чтобы завершить сеанс, выделите его и нажмите «Удалить» в контекстном меню или на панели действий. Можно выделить несколько сеансов с клавишей Ctrl и удалить их одной операцией.

Не путайте сеансы и соединения. Соединение — это низкоуровневая связь процесса с кластером, один сеанс может использовать несколько соединений. Для освобождения базы достаточно удалить сеансы; удаление соединений нужно реже, например при «зависших» рабочих процессах.

Сброс сеансов в файловой базе

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

  • попросить пользователей выйти, установив блокировку сеансов через конфигуратор («Администрирование» → «Параметры информационной базы») или типовую обработку блокировки;
  • завершить процессы 1cv8.exe на компьютерах пользователей — вручную, через диспетчер задач или удалённо командой taskkill;
  • если доступ к компьютерам невозможен, временно переименовать или закрыть общий доступ к папке базы — жёсткий способ, применять только в крайнем случае.
cmd
taskkill /S COMPUTERNAME /IM 1cv8.exe /F

Команда выше завершает все процессы 1С на удалённом компьютере COMPUTERNAME. Потребуются права администратора на той машине. Учтите, что флаг /F принудительно «убивает» процесс без сохранения данных.

Программные способы и командная строка

Для автоматизации удобно использовать RAC — консольную утилиту администрирования кластера из комплекта сервера 1С. Сначала получите список сеансов, затем завершите нужные по идентификатору:

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

Внутри самой 1С на встроенном языке доступен метод ПолучитьСеансыИнформационнойБазы(), возвращающий массив сеансов. В типовых конфигурациях на БСП есть процедуры завершения сеансов через административное соединение (COM-объект V83.COMConnector и агент кластера). Это позволяет, например, регламентным заданием ночью завершать все клиентские сеансы перед обменом данными.

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

Как проверить, что все сеансы сброшены

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

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

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

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

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

Остался только сеанс администратора

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

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

Запуск операции, требующей монопольного доступа
Норма

Операция начинается без ошибок

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

Сообщение о занятости базы

Фоновые и регламентные задания
Норма

Задания остановлены или завершены

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

Задание создаёт новый сеанс и мешает операции

Типичные ошибки и ограничения

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

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

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

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

Сначала блокируйте новые подключения, затем завершайте оставшиеся сеансы. В клиент-серверной базе используйте консоль кластера или RAC, в файловой — блокировку и завершение процессов. Проверяйте результат по списку сеансов и не забывайте про фоновые задания.

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

Можно ли сбросить сеанс конкретного пользователя, не трогая остальных?

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

Пользователь вышел, а сеанс висит. Что делать?

Это «спящий» или зависший сеанс: кластер удалит его сам по тайм-ауту. Если ждать нельзя, завершите сеанс вручную в консоли кластера. Чтобы ситуация повторялась реже, проверьте настройки тайм-аутов кластера и стабильность сети.

Как сбросить сеансы, если нет доступа к консоли кластера?

Используйте типовую обработку «Блокировка работы пользователей» в конфигурациях на БСП — она завершает сеансы через административное соединение. Либо подключитесь к серверу по RDP и запустите консоль или утилиту RAC там.

Мешают фоновые задания, как их отключить?

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

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

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

Как узнать, кто сейчас работает в базе?

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