Администрирование · 11 мин
Как выкинуть пользователя из базы 1С через конфигуратор
Как завершить сеанс пользователя в 1С: консоль кластера, администрирование сервера, код на встроенном языке и завершение работы в файловой базе.
При попытке обновить конфигурацию или запустить регламентные задания 1С выдаёт ошибку «нарушена целостность структуры базы» либо «требуется монопольный доступ», потому что в базе остаются активные сеансы пользователей — иногда пользователь давно закрыл программу, а его сеанс завис и продолжает блокировать работу. Посмотреть список таких сеансов можно в консоли кластера серверов 1С (раздел «Сеансы») или в конфигураторе через «Администрирование → Активные пользователи». В статье разберём, как принудительно выкинуть пользователя из базы: через консоль кластера, программно из встроенного языка и с помощью блокировки сеансов.
Важно понимать: сам конфигуратор не имеет кнопки «выкинуть пользователя». Завершение сеансов выполняется через консоль управления сервером 1С (для клиент-серверного варианта), через функции администрирования в режиме «Предприятие» или программно на встроенном языке. Конфигуратор в этой связке — инструмент, из которого вы запускаете обновление или пишете код завершения сеансов.
Ниже разобраны все рабочие способы: от консоли кластера до кода, а также отличия для файловой базы, типичные ошибки и способы проверить, что база действительно освободилась.
Что происходит при принудительном завершении сеанса
Принудительное завершение сеанса — это аварийное закрытие соединения пользователя с базой. Несохранённые данные в открытых формах (незаписанный документ, редактируемый элемент справочника) будут потеряны. Транзакции, которые не были зафиксированы, откатятся — целостность данных при этом не нарушается, СУБД и платформа это гарантируют.
Опасность в другом: если пользователь в момент завершения проводил большой документ или выполнял длительную обработку, операция прервётся на середине. Данные останутся согласованными, но работу придётся повторять. Поэтому перед массовым завершением сеансов пользователей предупреждают и дают 5–15 минут на сохранение.
Отдельный случай — «зависшие» сеансы. Пользователь давно закрыл программу или у него пропала сеть, но сеанс в консоли кластера ещё числится. Платформа сама удаляет такие сеансы по таймауту, но ждать можно долго — проще завершить вручную.
Завершение сеанса через консоль кластера серверов
Это основной способ для клиент-серверного варианта работы. Консоль кластера (оснастка «Администрирование серверов 1С:Предприятия») устанавливается вместе с сервером 1С и доступна администратору с любого компьютера, где установлена компонента администрирования.
Откройте оснастку, разверните нужный сервер, затем ветку «Кластеры» → «Локальный кластер» → «Информационные базы». Выберите вашу базу и перейдите на вкладку «Сеансы» — вы увидите список всех активных подключений с именами пользователей, компьютерами, временем начала и режимом работы (тонкий клиент, толстый клиент, фоновое задание, соединение COM и т.д.).
Выделите нужный сеанс и нажмите «Удалить» (или выберите «Удалить» в контекстном меню). Сеанс завершится немедленно. Чтобы выкинуть всех, выделите весь список (Ctrl+A) и удалите — но предварительно убедитесь, что среди сеансов нет вашего собственного служебного подключения, которое ещё нужно.
- 1Откройте оснастку «Администрирование серверов 1С:Предприятия»
- 2Разверните сервер → Кластеры → Локальный кластер → Информационные базы
- 3Выберите базу и перейдите на вкладку «Сеансы»
- 4Найдите нужного пользователя по имени или компьютеру
- 5Выделите сеанс и нажмите «Удалить»
- 6Обновите список (F5) и убедитесь, что сеанс исчез
Как не дать пользователям зайти обратно
Удаление сеанса не мешает пользователю тут же войти снова. Если вам нужно время на обновление, сначала заблокируйте вход: в свойствах информационной базы в консоли кластера установите флажок «Блокировка начала сеансов включена», задайте сообщение для пользователей и при необходимости код разрешения. После этого новые сеансы создаваться не будут, а существующие можно спокойно завершить.
Завершение сеансов из режима «Предприятие»
В типовых конфигурациях на базе Библиотеки стандартных подсистем есть встроенный механизм блокировки и завершения сеансов. Он находится в разделе администрирования: «НСИ и администрирование» → «Обслуживание» → «Блокировка работы пользователей» (точный путь зависит от конфигурации).
Там же доступен список активных пользователей с возможностью завершить сеанс — обработка «Активные пользователи». Этот способ удобен, когда у вас нет доступа к консоли кластера, но есть права администратора в самой базе. Механизм работает через тот же агент сервера, поэтому для клиент-серверной базы потребуется указать параметры подключения к кластеру.
Плюс этого подхода — пользователи получают предупреждение с таймером и могут сохранить данные. Минус — если сеанс завис и не отвечает, штатное завершение может не сработать, и придётся идти в консоль кластера.
Программное завершение сеансов
Для автоматизации (например, скрипт ночного обслуживания) сеансы завершают через COM-объект V83.COMConnector или через административную консоль RAS в связке с утилитой rac. Пример логики: подключиться к агенту сервера, получить список сеансов рабочего процесса и вызвать метод TerminateSession для каждого.
Соединитель = Новый COMОбъект("V83.COMConnector");
Агент = Соединитель.ConnectAgent("ИмяСервера");
Кластеры = Агент.GetClusters();
Для Каждого Кластер Из Кластеры Цикл
Агент.Authenticate(Кластер, "", "");
РабочиеПроцессы = Агент.GetWorkingProcesses(Кластер);
Для Каждого Процесс Из РабочиеПроцессы Цикл
Соединение = Соединитель.ConnectWorkingProcess(Процесс.HostName + ":" + Процесс.MainPort);
Соединение.AddAuthentication(Соединение, "Администратор", "Пароль");
Сеансы = Соединение.GetInfoBaseSessions(ИнфБаза);
Для Каждого Сеанс Из Сеансы Цикл
Соединение.TerminateSession(ИнфБаза, Сеанс);
КонецЦикла;
КонецЦикла;
КонецЦикла;Обратите внимание: версия COM-объекта (V83, V84 и т.д.) должна соответствовать версии платформы сервера. Код требует учётной записи с правами администратора информационной базы. Перед применением в рабочей среде протестируйте скрипт на копии базы.
Особенности файловой базы
В файловом варианте нет сервера приложений, а значит, нет и консоли кластера. Сеанс — это процесс 1cv8.exe на компьютере пользователя, держащий открытым файл 1Cv8.1CD. Выкинуть пользователя централизованно штатными средствами нельзя.
Варианты действий: попросить пользователя выйти, завершить процесс на его компьютере через диспетчер задач (локально или через удалённый доступ), либо перезапустить общий доступ к папке с базой на файловом сервере — тогда все соединения оборвутся. Последний способ грубый: обрыв соединения с файлом базы при активной записи повышает риск повреждения данных, поэтому применять его стоит только когда пользователи точно не работают.
Если база файловая, но опубликована на веб-сервере, сеансы завершаются перезапуском пула приложений веб-сервера (IIS или Apache).
Сравнение способов завершения сеансов
Точечное и массовое завершение для клиент-серверной базы. Требует доступа к серверу и прав администратора кластера.
Вежливый вариант с предупреждением пользователей. Не работает против зависших сеансов и требует настроенного механизма БСП.
Подходит для автоматизации и ночных регламентов. Требует навыков разработки и тестирования.
Единственный вариант для файловой базы. Грубый метод, риск при активной записи в базу.
Как проверить, что база свободна
После завершения сеансов не полагайтесь на то, что «всех выкинуло». Откройте вкладку «Сеансы» в консоли кластера и обновите список — он должен быть пуст или содержать только ваш служебный сеанс. Дополнительно проверьте вкладку «Соединения»: иногда соединение остаётся после удаления сеанса и держит базу.
Надёжная проверка — попытка установить монопольный режим в конфигураторе. Если обновление конфигурации базы данных запускается без ошибки «Информационная база используется другими пользователями», значит, активных сеансов нет. Если ошибка появляется — ищите оставшийся сеанс или соединение в консоли.
Как проверить результат
Пуст или только ваш служебный сеанс
Остались сеансы пользователей или фоновые задания
Нет соединений с базой
Висят соединения без сеансов — удалите их вручную
Запускается без ошибки монопольного доступа
Ошибка «база используется» — сеанс где-то остался
Типичные ошибки и ограничения
Частая ошибка — удалить сеансы, но забыть включить блокировку входа. Пользователи с ярлыками на рабочем столе заходят обратно через минуту, и обновление снова не запускается. Правильная последовательность: сначала блокировка, потом завершение сеансов.
Вторая ошибка — путать сеансы и соединения. Сеанс — это логическая работа пользователя, соединение — технический канал с рабочим процессом. Монопольный доступ блокируют и те, и другие. Третья ошибка — завершение фоновых заданий вместе с пользовательскими сеансами: регламентное задание, прерванное на середине, может оставить невыполненную операцию, о которой никто не узнает.
Что важно запомнить
В клиент-серверной базе сеансы завершают в консоли кластера на вкладке «Сеансы», предварительно включив блокировку входа. В файловой базе централизованного механизма нет — завершайте процессы на стороне пользователей. Всегда проверяйте результат попыткой установить монопольный режим и не прерывайте фоновые задания без необходимости.
Частые вопросы
Можно ли выкинуть пользователя прямо из конфигуратора?
Нет, в конфигураторе нет инструмента управления сеансами. Используйте консоль кластера серверов, обработку «Активные пользователи» в режиме «Предприятие» или программный метод через COM-соединение с агентом сервера.
Пользователь завис и не отвечает — поможет ли удаление сеанса?
Да, удаление сеанса в консоли кластера завершит его на стороне сервера независимо от состояния клиента. У пользователя программа закроется с ошибкой соединения, а блокировки, которые держал сеанс, будут сняты.
Потеряются ли данные пользователя при принудительном завершении?
Несохранённые данные в открытых формах потеряются. Всё, что было записано в базу до завершения сеанса, сохранится — незавершённые транзакции откатываются, и целостность данных не нарушается.
Как выкинуть всех пользователей из файловой базы?
Штатного способа нет. Завершите процессы 1cv8.exe на компьютерах пользователей (вручную, через удалённый доступ или групповую политику) либо перезапустите общий доступ к папке с базой. Последний вариант применяйте только когда никто не работает.
Удалил сеансы, но обновление всё равно требует монопольный доступ. Что делать?
Проверьте вкладку «Соединения» в консоли кластера — соединения могут остаться после удаления сеансов, удалите их вручную. Также убедитесь, что не запущен второй конфигуратор с этой базой и нет COM-соединений от внешних программ.
Как предупредить пользователей перед завершением сеансов?
В свойствах информационной базы в консоли кластера включите блокировку начала сеансов и впишите текст сообщения — он покажется тем, кто попытается войти. В типовых конфигурациях на БСП механизм «Блокировка работы пользователей» дополнительно показывает активным пользователям предупреждение с обратным отсчётом.