Администрирование · 9 мин
Как сбросить сеансы пользователей в 1С
Как сбросить сеансы пользователей в 1С через консоль кластера, конфигуратор и командную строку. Способы завершения сеансов для файловых и клиент-серверных баз.
Сброс сеансов пользователей — типовая задача администратора 1С. Она возникает перед обновлением конфигурации, при восстановлении базы из резервной копии, при блокировке регламентных заданий или когда пользователь «завис» и держит соединение, мешая монопольному доступу. Способ завершения сеанса зависит от режима работы базы: файловый или клиент-серверный.
В клиент-серверном варианте сеансами управляет кластер серверов 1С:Предприятия, и завершать их удобнее всего через консоль кластера. В файловом варианте централизованного механизма нет — приходится действовать через блокировку базы, завершение процессов или программные средства. Ниже разобраны все рабочие способы с условиями их применения.
Что такое сеанс и почему он «зависает»
Сеанс — это активное подключение пользователя или фонового процесса к информационной базе. Каждый запущенный клиент 1С, фоновое задание, веб-сервисное обращение создают отдельный сеанс. Пока существует хотя бы один сеанс, база занята: нельзя выполнить обновление конфигурации базы данных, восстановление из dt-файла и другие операции, требующие монопольного доступа.
Зависший сеанс возникает, когда клиентское приложение закрылось аварийно (отключение электричества, сбой сети, «убитый» процесс), а сервер ещё не зафиксировал разрыв. Кластер держит такой сеанс до истечения тайм-аута, который по умолчанию составляет несколько минут. В это время сеанс отображается как активный и мешает административным операциям.
Подготовка: блокировка новых подключений
Прежде чем сбрасывать существующие сеансы, закройте возможность создавать новые. Иначе пользователи будут переподключаться быстрее, чем вы успеваете удалять сеансы, и монопольного доступа не добиться. Блокировка устанавливается двумя способами.
Первый способ — через консоль кластера: откройте свойства информационной базы, установите флажок «Блокировка начала сеансов включена», задайте сообщение для пользователей, время начала и окончания блокировки и код разрешения. Код разрешения — это строка, которую администратор добавляет в параметр запуска /UC<код>, чтобы самому войти в заблокированную базу.
Второй способ — типовой функционал конфигураций на базе БСП: раздел «Администрирование» → «Обслуживание» → «Блокировка работы пользователей». Там же можно увидеть список активных пользователей и отправить им предупреждение. Этот вариант удобнее, когда под рукой нет доступа к консоли сервера.
- 1Предупредите пользователей о времени отключения и попросите завершить работу штатно
- 2Установите блокировку начала сеансов с кодом разрешения
- 3Дождитесь выхода пользователей или завершите оставшиеся сеансы принудительно
- 4Проверьте, что остался только ваш сеанс
- 5Выполните плановую операцию и снимите блокировку
Сброс сеансов через консоль кластера серверов
Основной инструмент для клиент-серверной 1С — консоль администрирования серверов (оснастка «Администрирование серверов 1С:Предприятия»). Она устанавливается вместе с сервером или отдельно на машину администратора. Откройте консоль, разверните нужный кластер, затем ветку «Информационные базы» → ваша база → «Сеансы».
В списке видны все активные сеансы: пользователь, приложение (тонкий клиент, конфигуратор, фоновое задание), время начала, компьютер. Чтобы завершить сеанс, выделите его и нажмите «Удалить» в контекстном меню или на панели действий. Можно выделить несколько сеансов с клавишей Ctrl и удалить их одной операцией.
Не путайте сеансы и соединения. Соединение — это низкоуровневая связь процесса с кластером, один сеанс может использовать несколько соединений. Для освобождения базы достаточно удалить сеансы; удаление соединений нужно реже, например при «зависших» рабочих процессах.
Сброс сеансов в файловой базе
В файловом варианте нет кластера и консоли, поэтому централизованно удалить чужой сеанс нельзя. Если база лежит в общей сетевой папке, сеансы держат процессы 1cv8.exe на компьютерах пользователей. Практические варианты действий:
- попросить пользователей выйти, установив блокировку сеансов через конфигуратор («Администрирование» → «Параметры информационной базы») или типовую обработку блокировки;
- завершить процессы 1cv8.exe на компьютерах пользователей — вручную, через диспетчер задач или удалённо командой
taskkill; - если доступ к компьютерам невозможен, временно переименовать или закрыть общий доступ к папке базы — жёсткий способ, применять только в крайнем случае.
taskkill /S COMPUTERNAME /IM 1cv8.exe /FКоманда выше завершает все процессы 1С на удалённом компьютере COMPUTERNAME. Потребуются права администратора на той машине. Учтите, что флаг /F принудительно «убивает» процесс без сохранения данных.
Программные способы и командная строка
Для автоматизации удобно использовать RAC — консольную утилиту администрирования кластера из комплекта сервера 1С. Сначала получите список сеансов, затем завершите нужные по идентификатору:
rac session --cluster=<ID_кластера> list --infobase=<ID_базы>
rac session --cluster=<ID_кластера> terminate --session=<ID_сеанса>Внутри самой 1С на встроенном языке доступен метод ПолучитьСеансыИнформационнойБазы(), возвращающий массив сеансов. В типовых конфигурациях на БСП есть процедуры завершения сеансов через административное соединение (COM-объект V83.COMConnector и агент кластера). Это позволяет, например, регламентным заданием ночью завершать все клиентские сеансы перед обменом данными.
Ещё один вариант — запуск конфигуратора в пакетном режиме с параметром /DisableStartupDialogs вместе с предварительной блокировкой сеансов: часть административных операций сама запрашивает монопольный доступ и откажется работать, пока база занята, поэтому без сброса сеансов не обойтись.
Как проверить, что все сеансы сброшены
После удаления сеансов обновите список в консоли кластера и убедитесь, что остался только ваш сеанс конфигуратора. Дополнительно проверьте вкладку «Соединения» — там не должно быть активных соединений от клиентских приложений. Если «лишние» сеансы появляются снова, значит, блокировка не действует или пользователи знают код разрешения.
Признаком успешного монопольного доступа служит запуск операции: обновление конфигурации базы данных или восстановление начинается без сообщения «информационная база используется». В файловом варианте проверить занятость можно по наличию файла 1Cv8.1CL рядом с базой — он существует, пока есть подключения (хотя после аварийных завершений может оставаться «мусорным»).
Как проверить результат
Остался только сеанс администратора
Сеансы пользователей появляются снова — не работает блокировка
Операция начинается без ошибок
Сообщение о занятости базы
Задания остановлены или завершены
Задание создаёт новый сеанс и мешает операции
Типичные ошибки и ограничения
Самая частая ошибка — сброс сеансов без предварительной блокировки. Пользователи с включённым автоподключением переподключаются за секунды, и монопольный доступ так и не наступает. Вторая ошибка — забыть про фоновые и регламентные задания: они тоже создают сеансы, и их нужно отключать в свойствах базы или дожидаться завершения.
Также учитывайте ограничения: консоль кластера и утилита RAC должны соответствовать версии сервера, а для подключения к агенту нужны права администратора кластера. В файловом варианте «мусорный» файл блокировки после сбоя может мешать входу — его удаляют вручную, убедившись, что база действительно никем не открыта.
Что важно запомнить
Сначала блокируйте новые подключения, затем завершайте оставшиеся сеансы. В клиент-серверной базе используйте консоль кластера или RAC, в файловой — блокировку и завершение процессов. Проверяйте результат по списку сеансов и не забывайте про фоновые задания.
Частые вопросы
Можно ли сбросить сеанс конкретного пользователя, не трогая остальных?
Да. В консоли кластера откройте список сеансов базы, найдите нужный по имени пользователя и удалите только его. Остальные сеансы продолжат работать без перерыва.
Пользователь вышел, а сеанс висит. Что делать?
Это «спящий» или зависший сеанс: кластер удалит его сам по тайм-ауту. Если ждать нельзя, завершите сеанс вручную в консоли кластера. Чтобы ситуация повторялась реже, проверьте настройки тайм-аутов кластера и стабильность сети.
Как сбросить сеансы, если нет доступа к консоли кластера?
Используйте типовую обработку «Блокировка работы пользователей» в конфигурациях на БСП — она завершает сеансы через административное соединение. Либо подключитесь к серверу по RDP и запустите консоль или утилиту RAC там.
Мешают фоновые задания, как их отключить?
В свойствах информационной базы в консоли кластера установите флажок «Блокировка регламентных заданий включена». Уже запущенные задания завершите, удалив соответствующие сеансы — в списке они помечены как фоновые.
Опасно ли принудительное завершение сеанса?
Для базы в целом — безопасно: транзакции откатятся. Потеряются только несохранённые данные конкретного пользователя. Опасно прерывать сеансы, выполняющие обновление конфигурации, загрузку или массовую обработку, — это может повредить данные.
Как узнать, кто сейчас работает в базе?
В консоли кластера откройте ветку «Сеансы» нужной базы — там видны пользователи, тип клиента и время начала. В файловом варианте список активных пользователей показывает типовая функция «Активные пользователи» в разделе администрирования.