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

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

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

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

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

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

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

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

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

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

Длительность вызова СУБД растётСеанс выполняет запрос к базе

Проверьте, не завис ли запрос, прежде чем завершать сеанс

Сеанс есть, вызовов нетПользователь простаивает или забыл закрыть программу

Такой сеанс безопасно завершать

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

Завершение сеанса не остановит задание — отмените его отдельно

Отключение сеансов через консоль администрирования кластера

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

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

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

Точечное отключение одного пользователя

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

Массовое отключение всех пользователей

Для массового отключения выделите все сеансы в списке (Ctrl+A) и удалите их. Не забудьте исключить свой собственный сеанс администратора, если он отображается, и сеансы служебных учётных записей, под которыми работают регламентные задания, — иначе обмены и отчёты по расписанию остановятся. Перед массовым отключением корректной практикой считается заранее предупредить сотрудников и дать им 5–10 минут на сохранение данных.

Блокировка сеансов и установка кода разрешения

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

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

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

Как выбить пользователей из файловой базы

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

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

Если файловая база опубликована на веб-сервере, дополнительно можно перезапустить пул приложений или службу веб-сервера — это разорвёт все соединения разом. Способ грубый, но эффективный, когда нужно освободить базу немедленно и предупреждать некого.

Сравнение вариантов для файловой базы

Блокировка работы пользователей (типовой механизм)

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

taskkill по сети

Быстрое принудительное завершение процессов 1cv8.exe. Нужны права администратора на ПК пользователей и список машин

Перезапуск веб-сервера

Мгновенно рвёт все соединения при публикации через IIS/Apache. Грубо, несохранённые данные теряются

Отключение через командную строку и скрипты

Для автоматизации ночных регламентных операций удобно отключать сеансы скриптом. В связке с PowerShell администраторы используют COM-объект V83.ComConnector или утилиту rac из состава сервера 1С. Утилита rac позволяет получить список сеансов и завершить их по одному командой rac session terminate с указанием кластера и идентификатора сеанса.

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

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

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

Зависшие сеансы и соединения: что делать

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

Если после удаления сеанса блокировка в СУБД остаётся, проверьте вкладку «Соединения» и удалите зависшее соединение там. В крайнем случае блокировку снимают на стороне СУБД — через Activity Monitor в SQL Server или запрос к pg_locks в PostgreSQL с завершением конкретного процесса. Это уже зона ответственности администратора СУБД, и действовать там нужно аккуратно, чтобы не оборвать чужую активную транзакцию.

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

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

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

Остались только ваш сеанс и разрешённые служебные

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

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

Запуск обновления конфигурации
Норма

Обновление начинается без сообщения о занятых соединениях

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

Ошибка «база занята» — остались сеансы или фоновые задания

Соединения на стороне СУБД
Норма

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

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

Висят старые соединения с блокировками — нужна зачистка на уровне СУБД

Типичные ошибки при отключении пользователей

Чаще всего проблемы возникают не из-за самого отключения, а из-за пропущенных подготовительных шагов. Разберём основные ошибки и их последствия.

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

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

Итог

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

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

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

Можно ли выбить пользователя из 1С, не имея доступа к консоли кластера?

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

Потеряет ли пользователь данные при принудительном завершении сеанса?

Несохранённые данные будут потеряны: открытый и не записанный документ, незавершённый ввод по строке, несохранённые настройки. Уже записанные в базу объекты не пострадают — транзакционная модель 1С гарантирует целостность данных при обрыве соединения.

Почему после удаления сеансов база всё равно «занята»?

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

Как отключить всех пользователей ночью автоматически?

Настройте скрипт: включение блокировки сеансов с кодом разрешения, пауза на выход пользователей, получение списка оставшихся сеансов через утилиту rac и их завершение, затем пакетный запуск конфигуратора для обновления и снятие блокировки. Такой сценарий полностью автоматизирует ночные регламентные работы.

Что делать, если пользователь заходит в базу снова сразу после отключения?

Значит, не включена блокировка начала сеансов. Установите её в свойствах информационной базы в консоли кластера, задайте код разрешения — без кода новые сеансы создаваться не будут, а вы сможете войти с параметром /UC.

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

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