Администрирование · 12 мин
Как выбить пользователей из 1С: все рабочие способы отключения сеансов
Способы отключить пользователей от базы 1С: консоль кластера, консольные команды, блокировка сеансов, обработки и аварийное завершение. Пошаговые инструкции для администратора.
Отключить пользователей от базы 1С приходится регулярно: перед обновлением конфигурации, при загрузке данных, во время регламентных операций или когда «зависший» сеанс держит блокировку и мешает работе остальных. Набор доступных инструментов зависит от режима работы базы — файлового или клиент-серверного — и от того, есть ли у вас права администратора кластера.
В клиент-серверном варианте основной инструмент — консоль администрирования серверов 1С, где сеансы завершаются точечно или массово. В файловом варианте централизованного механизма нет, поэтому используются обходные пути: завершение процессов на компьютерах пользователей, блокировка установки соединений или программный запрос на завершение работы. Ниже разобраны все рабочие способы с ограничениями каждого.
Как определить, кто сейчас работает в базе
Прежде чем отключать кого-либо, нужно понять, какие сеансы активны и что они делают. В клиент-серверном варианте откройте консоль кластера, выберите нужную информационную базу и перейдите на вкладку «Сеансы». Здесь видны имя пользователя, компьютер, время начала сеанса, длительность текущего вызова и объём прочитанных и записанных данных. Показатель «Длительность вызова СУБД» помогает отличить активно работающего пользователя от простаивающего сеанса.
В файловом варианте список активных пользователей доступен прямо в клиенте: меню «Администрирование» → «Активные пользователи» (в типовых конфигурациях пункт может называться «Активные сеансы»). Монитор показывает пользователей и режимы запуска, но не даёт механизма принудительного отключения — это только информатор.
Отдельно проверьте фоновые задания: завершение сеанса пользователя не останавливает уже запущенное фоновое задание, оно продолжит выполняться в рамках своего сеанса. Если обновление конфигурации не начинается из-за «занятости» базы, часто виновато именно фоновое задание, а не живой пользователь.
Проверьте, не завис ли запрос, прежде чем завершать сеанс
Такой сеанс безопасно завершать
Завершение сеанса не остановит задание — отмените его отдельно
Отключение сеансов через консоль администрирования кластера
Это основной и самый контролируемый способ для клиент-серверной базы. Откройте «Администрирование серверов 1С:Предприятия», раскройте кластер, выберите базу и перейдите на вкладку «Сеансы». Выделите один или несколько сеансов (через Ctrl или Shift), затем в контекстном меню выберите «Удалить». Сеанс завершается немедленно, пользователь видит сообщение о разрыве соединения с сервером.
Учтите важный нюанс: удаление сеанса не всегда мгновенно освобождает соединение с СУБД. Соединения живут в пуле и переиспользуются, поэтому на уровне SQL Server или PostgreSQL соединение может висеть ещё некоторое время. Для целей «освободить базу перед обновлением» это не мешает — блокировки пользовательского сеанса снимаются сразу.
- 1Откройте консоль «Администрирование серверов 1С:Предприятия» и подключитесь к кластеру
- 2Выберите информационную базу и перейдите на вкладку «Сеансы»
- 3Отсортируйте список по пользователю или времени начала и выделите нужные сеансы
- 4В контекстном меню нажмите «Удалить» и подтвердите действие
- 5Проверьте вкладку «Соединения»: при необходимости удалите и зависшие соединения
Точечное отключение одного пользователя
Если нужно отключить конкретного сотрудника — например, его сеанс держит монопольную блокировку, — найдите его по имени пользователя в списке сеансов. У одного пользователя может быть несколько сеансов (толстый клиент, тонкий клиент, веб-клиент, фоновые сеансы), поэтому проверьте колонку «Приложение» и завершайте именно проблемный сеанс, а не все подряд.
Массовое отключение всех пользователей
Для массового отключения выделите все сеансы в списке (Ctrl+A) и удалите их. Не забудьте исключить свой собственный сеанс администратора, если он отображается, и сеансы служебных учётных записей, под которыми работают регламентные задания, — иначе обмены и отчёты по расписанию остановятся. Перед массовым отключением корректной практикой считается заранее предупредить сотрудников и дать им 5–10 минут на сохранение данных.
Блокировка сеансов и установка кода разрешения
Отключить текущих пользователей — половина задачи. Пока вы готовитесь к обновлению, в базу будут заходить новые. Для этого в свойствах информационной базы в консоли кластера есть параметры «Блокировка начала сеансов» и «Код разрешения». Установите дату и время начала блокировки, задайте код — и новые сеансы без кода создаваться не будут.
Сам администратор заходит в базу с параметром командной строки /UC код (или через диалог запуска, указав код разрешения). Это стандартная схема обновления конфигурации: включить блокировку, дождаться выхода пользователей или отключить их принудительно, выполнить обновление, снять блокировку.
В типовых конфигурациях на базе Библиотеки стандартных подсистем есть штатный механизм «Блокировка работы пользователей» (раздел «Администрирование» → «Обслуживание»). Он делает то же самое из интерфейса программы: планирует блокировку, рассылает пользователям предупреждение и по таймауту завершает их сеансы программно. Это самый «мягкий» вариант, потому что у пользователей есть время сохранить работу.
Как выбить пользователей из файловой базы
В файловом варианте нет кластера и консоли сеансов, поэтому действия зависят от того, как опубликована база. Если база лежит в общей сетевой папке, сеанс каждого пользователя — это процесс 1cv8.exe на его компьютере. Принудительно завершить его можно удалённо через диспетчер задач (при наличии доступа), командой taskkill по сети или через групповые политики, но всё это требует административных прав на целевых машинах.
Практичный программный вариант — обработка или регламентный механизм, который вызывает у пользователей функцию завершения работы. В типовых конфигурациях для этого используется «Блокировка работы пользователей»: при её включении активным пользователям выводится предупреждение, а по истечении заданного времени их работа завершается автоматически. Это единственный штатный способ «выгнать» пользователей файловой базы без доступа к их компьютерам.
Если файловая база опубликована на веб-сервере, дополнительно можно перезапустить пул приложений или службу веб-сервера — это разорвёт все соединения разом. Способ грубый, но эффективный, когда нужно освободить базу немедленно и предупреждать некого.
Сравнение вариантов для файловой базы
Подходит для плановых работ: пользователи получают предупреждение и завершают сеанс сами. Требует, чтобы механизм был в конфигурации
Быстрое принудительное завершение процессов 1cv8.exe. Нужны права администратора на ПК пользователей и список машин
Мгновенно рвёт все соединения при публикации через IIS/Apache. Грубо, несохранённые данные теряются
Отключение через командную строку и скрипты
Для автоматизации ночных регламентных операций удобно отключать сеансы скриптом. В связке с PowerShell администраторы используют COM-объект V83.ComConnector или утилиту rac из состава сервера 1С. Утилита rac позволяет получить список сеансов и завершить их по одному командой rac session terminate с указанием кластера и идентификатора сеанса.
rac session list --cluster=<ID_кластера> --infobase=<ID_базы>
rac session terminate --cluster=<ID_кластера> --session=<ID_сеанса>Типовой сценарий ночного обновления выглядит так: скрипт включает блокировку сеансов с кодом разрешения, ждёт заданный интервал, получает список оставшихся сеансов через rac, завершает их, запускает конфигуратор в пакетном режиме с обновлением базы и снимает блокировку. Такой подход исключает ситуацию, когда утром выясняется, что обновление не выполнилось из-за одного забытого сеанса.
При написании скриптов обязательно исключайте из завершения сеансы фоновых заданий, которые должны работать ночью, иначе автоматизация будет мешать сама себе. Фильтруйте список по типу приложения и по имени пользователя служебной учётной записи.
Зависшие сеансы и соединения: что делать
Типичная проблема — «зависший» сеанс: пользователь давно закрыл программу или его компьютер выключился, а сеанс в консоли кластера числится. Такие сеансы могут держать блокировки и показывать ложную «занятость» базы. В норме сервер сам завершает аварийно разорванные сеансы по таймауту, но ждать его не обязательно: зависший сеанс удаляется вручную через ту же вкладку «Сеансы».
Если после удаления сеанса блокировка в СУБД остаётся, проверьте вкладку «Соединения» и удалите зависшее соединение там. В крайнем случае блокировку снимают на стороне СУБД — через Activity Monitor в SQL Server или запрос к pg_locks в PostgreSQL с завершением конкретного процесса. Это уже зона ответственности администратора СУБД, и действовать там нужно аккуратно, чтобы не оборвать чужую активную транзакцию.
Как проверить результат
Остались только ваш сеанс и разрешённые служебные
Появляются новые сеансы пользователей — блокировка не включена
Обновление начинается без сообщения о занятых соединениях
Ошибка «база занята» — остались сеансы или фоновые задания
Число соединений сократилось после завершения сеансов
Висят старые соединения с блокировками — нужна зачистка на уровне СУБД
Типичные ошибки при отключении пользователей
Чаще всего проблемы возникают не из-за самого отключения, а из-за пропущенных подготовительных шагов. Разберём основные ошибки и их последствия.
Отдельно стоит упомянуть попытки решить вопрос перезагрузкой сервера 1С. Это действительно отключит всех, но заодно остановит все базы кластера, все регламентные задания и может прервать важные процессы в смежных системах. Перезагрузка службы агента сервера — крайняя мера, а не штатный инструмент.
Что важно запомнить
В клиент-серверной базе сеансы завершаются через консоль кластера, в файловой — через типовой механизм блокировки работы пользователей или завершение процессов на ПК. Перед массовым отключением включайте блокировку новых сеансов с кодом разрешения, предупреждайте пользователей и не трогайте служебные сеансы. После отключения проверяйте, что база действительно свободна, включая соединения на уровне СУБД.
Частые вопросы
Можно ли выбить пользователя из 1С, не имея доступа к консоли кластера?
Да, если конфигурация построена на Библиотеке стандартных подсистем: администратор с полными правами в самой программе может включить «Блокировку работы пользователей», которая программно завершит активные сеансы по таймауту. Без этого механизма и без доступа к кластеру принудительно отключить пользователей клиент-серверной базы нельзя.
Потеряет ли пользователь данные при принудительном завершении сеанса?
Несохранённые данные будут потеряны: открытый и не записанный документ, незавершённый ввод по строке, несохранённые настройки. Уже записанные в базу объекты не пострадают — транзакционная модель 1С гарантирует целостность данных при обрыве соединения.
Почему после удаления сеансов база всё равно «занята»?
Чаще всего виноваты фоновые задания, которые выполняются в собственных сеансах, или зависшие соединения на уровне СУБД. Проверьте список фоновых заданий, вкладку «Соединения» в консоли кластера, а при необходимости — активные запросы и блокировки в самой СУБД.
Как отключить всех пользователей ночью автоматически?
Настройте скрипт: включение блокировки сеансов с кодом разрешения, пауза на выход пользователей, получение списка оставшихся сеансов через утилиту rac и их завершение, затем пакетный запуск конфигуратора для обновления и снятие блокировки. Такой сценарий полностью автоматизирует ночные регламентные работы.
Что делать, если пользователь заходит в базу снова сразу после отключения?
Значит, не включена блокировка начала сеансов. Установите её в свойствах информационной базы в консоли кластера, задайте код разрешения — без кода новые сеансы создаваться не будут, а вы сможете войти с параметром /UC.
Опасно ли завершать сеанс, в котором идёт проведение документа?
Для целостности базы это безопасно: незавершённая транзакция откатится. Но откат длинной транзакции сам по себе занимает время и может держать блокировки, а пользователь потеряет результат работы. По возможности дождитесь завершения операции или согласуйте отключение с пользователем.