Администрирование · 12 мин
Как выгнать активных пользователей из базы 1С
Как завершить сеансы активных пользователей в 1С: консоль кластера, конфигуратор, «Активные пользователи», регламентные блокировки. Безопасные способы и риски.
Завершить сеансы пользователей в 1С приходится регулярно: перед обновлением конфигурации, при восстановлении из резервной копии, при зависшем сеансе, который держит блокировку, или перед регламентным обслуживанием базы. Способ зависит от режима работы — файловый или клиент-серверный — и от того, нужно ли выгнать всех или одного конкретного пользователя.
Главный принцип: корректное завершение сеанса всегда предпочтительнее «жёсткого» обрыва процесса. При принудительном убийстве процесса rphost или завершении клиента через диспетчер задач есть риск потерять несохранённые данные пользователя и оставить «висячие» блокировки, которые снимутся только по таймауту. Поэтому начинать стоит с штатных механизмов платформы.
Определите режим работы базы и кого нужно отключить
Порядок действий в файловой и клиент-серверной базе различается принципиально. В файловом режиме нет сервера 1С, сеансы — это открытые соединения с файлом 1Cv8.1CD, и управлять ими централизованно можно только ограниченно. В клиент-серверном режиме все сеансы видны в консоли кластера, и администратор может завершить любой из них.
Заранее ответьте на три вопроса: нужно отключить всех или одного пользователя; нужно ли запретить новые подключения на время работ; есть ли у пользователей несохранённые данные. От ответов зависит, достаточно ли точечного удаления сеанса или потребуется полная блокировка базы.
Консоль кластера недоступна, используйте «Активные пользователи» и блокировку через код или типовые механизмы
Все сеансы видны в консоли кластера, доступно централизованное завершение
Проверьте колонку «Время вызова СУБД» и текущую активность в консоли, возможен спящий сеанс
Потребуется блокировка сеансов и завершение всех подключений, включая фоновые задания
Просмотр активных пользователей через конфигуратор
В любом режиме работы список подключённых пользователей доступен в конфигураторе: меню «Администрирование» → «Активные пользователи». Откроется список с именами пользователей, компьютерами, временем начала сеанса и режимом запуска. Это быстрый способ понять, кто сейчас в базе.
Ограничение этого инструмента: из окна «Активные пользователи» нельзя завершить чужой сеанс — оно служит только для просмотра. Зато здесь удобно сверить, остались ли подключения после рассылки просьбы выйти, и найти «забытые» сеансы на терминальных серверах и компьютерах, где 1С осталась запущенной на ночь.
В типовых конфигурациях (Бухгалтерия, ЗУП, Управление торговлей и других на БСП) есть аналогичный раздел в режиме предприятия: «Администрирование» → «Обслуживание» → «Активные пользователи». Оттуда же доступна установка блокировки работы пользователей без входа в конфигуратор — это удобно, если конфигуратор занят или обновление выполняется через поддержку.
Завершение сеансов в клиент-серверном режиме через консоль кластера
Основной инструмент для серверных баз — консоль кластера серверов 1С:Предприятия (оснастка «Администрирование серверов 1С Предприятия»). Откройте консоль, разверните нужный кластер, затем ветку «Сеансы» или выберите конкретную информационную базу и перейдите на вкладку «Сеансы». Вы увидите все подключения: пользователь, приложение (толстый клиент, веб-клиент, фоновое задание), время начала, активность.
Чтобы завершить конкретный сеанс, выделите его в списке и выберите в контекстном меню «Удалить». Сеанс будет завершён сервером: у пользователя появится сообщение о разрыве соединения, несохранённые данные пропадут. Фоновые задания и регламентные задания отображаются в том же списке — их тоже нужно завершить, если требуется монопольный доступ.
- 1Откройте оснастку «Администрирование серверов 1С Предприятия» и подключитесь к нужному кластеру
- 2Разверните кластер → «Информационные базы» → выберите базу → вкладка «Сеансы»
- 3Убедитесь, что пользователи предупреждены и сохранили данные
- 4Установите блокировку сеансов: свойства базы → «Блокировка сеансов установлена», задайте сообщение и код разблокировки
- 5Дождитесь выхода пользователей или завершите оставшиеся сеансы через «Удалить»
- 6Проверьте, что список сеансов пуст, включая фоновые задания
- 7Выполните регламентные работы, затем снимите блокировку сеансов
Обратите внимание на различие «Сеансы» и «Соединения» в консоли. Соединение — это сетевое подключение к рабочему процессу, сеанс — логическая сессия пользователя. Для «выгона» пользователя удаляют именно сеанс; удаление соединения без сеанса обычно не требуется.
Блокировка сеансов: как не дать пользователям зайти снова
Завершить сеансы — полдела: пока вы работаете, пользователи попробуют подключиться заново. Поэтому перед массовым отключением установите блокировку сеансов. В консоли кластера это делается в свойствах информационной базы: флаг «Блокировка сеансов установлена», поля «Сообщение» (его увидят пользователи при попытке входа) и «Код разблокировки» — строка, с которой можно зайти в базу в обход блокировки, добавив параметр UC в строку запуска.
В типовых конфигурациях блокировка называется «Блокировка работы пользователей» и включается из режима предприятия: «Администрирование» → «Обслуживание» → «Блокировка работы пользователей». Там можно указать период блокировки и текст сообщения. Механизм БСП дополнительно предлагает активным пользователям завершить работу самостоятельно, что снижает риск потери данных.
Файловый режим: как завершить работу пользователей
В файловой базе централизованной консоли нет. Практические варианты такие. Первый — попросить пользователей выйти и проверить оставшихся через «Администрирование» → «Активные пользователи» в конфигураторе. Второй — в типовых конфигурациях включить «Блокировку работы пользователей», которая корректно завершит сеансы по расписанию. Третий — программный: процедура с использованием функции завершения работы через встроенный язык либо вызов команды завершения работы системы у клиентов.
Если пользователь оставил 1С открытой и ушёл, а база нужна монопольно, допустим вариант завершить процесс 1cv8.exe на его компьютере (например, через диспетчер задач по RDP или удалённо). Это грубый способ: несохранённые данные будут потеряны, а при активной записи в момент обрыва есть риск повреждения файловой базы. Используйте его только когда штатные способы недоступны, и после этого прогоните «Тестирование и исправление» базы.
Программное завершение сеансов через встроенный язык
Для автоматизации (например, выгнать всех перед ночным обновлением) используют программный интерфейс. В клиент-серверном режиме сеансы получают через COM-соединение с агентом сервера или через административный интерфейс кластера: получить список сеансов информационной базы и вызвать метод завершения для каждого. Для файлового режима применяют ПолучитьСоединенияИнформационнойБазы() и рассылку клиентам команды на завершение работы.
Типовой подход в конфигурациях на БСП — использование готовых процедур подсистемы «Завершение работы пользователей»: она устанавливает блокировку, отправляет пользователям предупреждение и по истечении времени завершает сеансы штатно. Если вы внедряете свой механизм, обязательно предусмотрите задержку и предупреждение, чтобы пользователи успели сохранить данные.
Соединения = ПолучитьСоединенияИнформационнойБазы();
Для Каждого Соединение Из Соединения Цикл
Сообщить(Соединение.Пользователь.Имя + " — сеанс " + Соединение.НомерСеанса);
КонецЦикла;Зависшие сеансы и блокировки: что делать, если сеанс не удаляется
Иногда сеанс «висит»: пользователь давно вышел, но в консоли он отображается, держит лицензию или блокировку. Причины — аварийное завершение клиента, обрыв сети, спящий режим ноутбука. В консоли кластера такие сеансы обычно можно удалить принудительно; если удаление не помогает, проверьте настройки кластера: параметры «Интервал перезапуска» рабочих процессов и таймауты разрыва соединений влияют на автоматическую очистку.
Если зависший сеанс держит управляемые блокировки и мешает работе других, после удаления сеанса блокировки снимаются автоматически. Хуже ситуация с блокировками на уровне СУБД: их видно в консоли кластера в разделе «Блокировки» либо средствами СУБД (например, Activity Monitor в MS SQL Server). Снимать блокировки на уровне СУБД вручную стоит только понимая, какой процесс вы завершаете.
Проверка результата и возврат к работе
После завершения сеансов убедитесь, что база действительно свободна. В консоли кластера список сеансов должен быть пуст (кроме вашего административного, если он есть). В файловом режиме проверьте «Активные пользователи» и отсутствие файлов блокировок рядом с базой. Затем выполняйте регламентные работы: обновление, тестирование, загрузку данных.
По окончании работ снимите блокировку сеансов и убедитесь, что пользователи могут войти: попросите кого-то подключиться или проверьте сами под тестовой учётной записью. Если блокировка снимается через типовую обработку, проверьте, что расписание блокировки не перезапишет ваши изменения.
Как проверить результат
Сеансов нет или только ваш административный
Остались пользовательские или фоновые сеансы
Флаг установлен, задан код разблокировки
Блокировки нет — пользователи заходят во время работ
Пользователь входит штатно, без сообщения о блокировке
Появляется сообщение о блокировке или ошибка соединения
База открывается, тестирование без ошибок
Ошибки открытия или сообщения о нарушении целостности
Что важно запомнить
Сначала блокировка сеансов и предупреждение пользователей, затем завершение сеансов штатными средствами: консоль кластера для серверных баз, «Активные пользователи» и блокировка работы для файловых. Принудительный обрыв процессов — крайняя мера с риском потери данных и повреждения файловой базы.
Частые вопросы
Можно ли выгнать только одного пользователя, не трогая остальных?
Да, в клиент-серверном режиме: в консоли кластера откройте список сеансов базы, найдите нужного пользователя и удалите только его сеанс. Остальные продолжат работу. В файловом режиме точечного штатного инструмента нет — только просьба выйти или завершение процесса на его компьютере.
Пользователь вышел, а сеанс в консоли остался. Это нормально?
Кратковременно — да: сервер может некоторое время удерживать сеанс после закрытия клиента, особенно при использовании тонкого клиента и веб-клиента. Если сеанс висит часами и держит лицензию, удалите его вручную в консоли кластера и проверьте настройки таймаутов кластера.
Как выгнать пользователей, если нет доступа к консоли кластера?
В типовых конфигурациях используйте «Блокировку работы пользователей» из режима предприятия — она завершит сеансы штатно. Либо попросите администратора сервера выполнить завершение. Программный вариант — обработка, использующая COM-соединение с агентом сервера, но ей тоже нужны права администратора кластера.
Что будет с несохранёнными данными пользователя при удалении сеанса?
Они будут потеряны: открытый незаписанный документ, набранный текст, настройки отчёта не сохранятся. Поэтому перед массовым завершением всегда предупреждайте пользователей и давайте время на сохранение — штатные механизмы блокировки в типовых конфигурациях делают это автоматически.
Обновление конфигурации пишет, что база занята, хотя все вышли. Что проверить?
Проверьте фоновые и регламентные задания в списке сеансов консоли кластера — они тоже занимают базу. Также убедитесь, что никто не держит открытый конфигуратор, и что не осталось зависших сеансов. После их завершения монопольный доступ станет доступен.
Опасно ли завершать процесс rphost на сервере?
Да: через один рабочий процесс rphost обслуживаются многие сеансы, и его завершение оборвёт их все с потерей несохранённых данных. Это крайняя мера при полном зависании процесса. В штатной ситуации завершайте отдельные сеансы через консоль кластера.