Администраторам баз данных 1С:Предприятие часто приходится сталкиваться с необходимостью проведения регламентных работ, обновления конфигурации или выполнения резервного копирования. В таких ситуациях критически важно освободить базу данных от активных сеансов, чтобы исключить конфликты блокировок и повреждение данных. Наиболее надежным и профессиональным способом решения этой задачи является использование режима Конфигуратора, который предоставляет администратору расширенные права управления сессиями.
Процесс принудительного разрыва соединений требует четкого понимания архитектуры работы платформы и последствий резкого обрыва связи для работающих сотрудников. Неправильные действия могут привести к потере незадокументированных операций или зависанию транзакций на уровне СУБД. Поэтому перед тем как осуществить блокировку нового входа и завершение текущих сеансов, необходимо убедиться в целесообразности таких действий и предупредить персонал о технических работах.
В данной статье мы подробно разберем алгоритм действий, который позволяет администратору получить полный контроль над базой данных, перевести её в монопольный режим и корректно завершить все активные подключения. Мы рассмотрим как штатные средства платформы, так и нюансы работы с сервером 1С:Предприятия в файловом и клиент-серверном вариантах.
Подготовка к административным работам и оценка рисков
Перед началом любых манипуляций с активными пользователями администратор должен провести предварительный анализ текущей ситуации в базе. Необходимо понять, какие именно процессы выполняются в данный момент: проводится ли закрытие периода, идет ли массовое проведение документов или пользователи просто просматривают отчеты. Эта информация поможет выбрать наименее болезненный способ завершения сеансов.
Если пользователь в этот момент записывал сложный документ с проведением, может возникнуть ситуация "висячей" транзакции, которую придется откатывать вручную через консоль управления СУБД. Всегда старайтесь минимизировать риски, выбирая время наименьшей активности.
⚠️ Внимание: Принудительное завершение сеансов может привести к потере данных, которые пользователь не успел сохранить. Убедитесь, что у вас есть актуальная резервная копия базы перед началом работ.
Для оценки нагрузки можно использовать встроенные средства мониторинга или внешние утилиты, если они настроены в вашей инфраструктуре. Анализ логов регистрации событий также может подсказать, кто именно занимает базу в текущий момент времени. Это позволит адресно связаться с конкретными сотрудниками перед применением радикальных мер.
Вход в базу в режиме Конфигуратора
Первым и обязательным шагом для получения прав на управление сеансами является авторизация в системе под учетной записью с полными правами. Вам необходимо запустить ярлык базы данных и в окне запуска 1С выбрать режим работы Конфигуратор. Обычный режим 1С:Предприятие не предоставляет доступа к необходимым функциям администрирования сеансов.
При входе в систему убедитесь, что используемая учетная запись пользователя 1С входит в состав группы Полные права или имеет аналогичные привилегии, назначенные через утилиту ibcmd или консоль администрирования кластера серверов. Без этих прав пункт меню для управления пользователями будет недоступен или неактивен.
В случае работы с клиент-серверным вариантом, вход в конфигуратор может занять больше времени из-за необходимости установления соединения с сервером лицензий и основным сервисом кластера. Если вход блокируется сообщением о том, что база занята, это означает, что кто-то уже удерживает монопольную блокировку, и вам потребуется выяснить, кто именно это делает.
Если вход в Конфигуратор невозможен из-за ошибки "База занята", попробуйте перезапустить службу агента сервера 1С на сервере, но только если это не нарушит работу других критических баз.
Использование монопольного режима для блокировки входа
Одним из самых эффективных методов подготовки к выгрузке пользователей является установка монопольного режима. Эта функция запрещает вход в базу любым новым пользователям, а также сигнализирует текущим сеансам о том, что начинаются регламентные работы. Активация этого режима производится через главное меню конфигуратора.
Для включения ограничения необходимо перейти в меню Администрирование и выбрать пункт Монопольный режим. После активации данного параметра система начнет предотвращать любые попытки новой авторизации. Существующие пользователи смогут продолжать работу до момента явного завершения их сеансов администратором или до самостоятельного выхода.
Использование монопольного режима особенно актуально при обновлении типовых конфигураций, когда требуется загрузить новые файлы обработки или изменить структуру метаданных. В этом состоянии база находится под полной защитой от несанкционированных изменений со стороны рядовых пользователей.
☑️ Подготовка к монопольному режиму
Принудительное завершение активных сеансов
После того как вход в базу заблокирован, необходимо завершить уже активные подключения. В современных версиях платформы 1С:Предприятие 8.3 и выше этот процесс автоматизирован и выполняется через интерфейс конфигуратора. Вам потребуется перейти в меню Администрирование и выбрать пункт Активные пользователи.
Откроется окно со списком всех текущих сессий, где отображается имя пользователя, компьютер, с которого выполнен вход, время начала сеанса и текущее приложение. Вы можете выбрать одного конкретного пользователя для завершения или воспользоваться кнопкой Завершить все, чтобы разом разорвать все соединения с базой данных.
При выполнении команды завершения система отправляет сигнал клиентскому приложению о необходимости закрытия. Если клиентское приложение не реагирует (например, зависло), сессия будет разорвана принудительно на уровне сервера. Важно отметить, что в файловом варианте работы базы этот процесс может происходить мгновенно, тогда как в клиент-серверном может потребоваться несколько секунд для корректного освобождения ресурсов.
⚠️ Внимание: При завершении сеанса через меню "Активные пользователи" все незавершенные транзакции будут отменены. Данные, не записанные в базу, будут утеряны безвозвратно.
Если стандартный механизм завершения не срабатывает и пользователь продолжает висеть в списке активных, возможно, имеет место блокировка на уровне операционной системы или СУБД. В таких случаях может потребоваться более глубокое вмешательство через консоль управления кластером серверов 1С.
Управление сеансами через консоль кластера серверов
Для администраторов, работающих в клиент-серверном варианте, основным инструментом управления является консоль кластера серверов 1С:Предприятия. Этот инструмент предоставляет более детальный контроль по сравнению с конфигуратором и позволяет управлять сессиями даже в тех случаях, когда сама база данных недоступна для входа.
В дереве консоли необходимо раскрыть узел вашего кластера, найти нужный информационный поток (базу данных) и перейти в ветку Сеансы. Здесь отображается исчерпывающая информация о каждом подключении, включая идентификаторы процессов и используемые блокировки. Вы можете выделить ненужные сеансы, нажать правую кнопку мыши и выбрать команду Удалить.
Преимуществом данного метода является возможность завершения "зависших" сессий, которые не видны или не удаляются через конфигуратор. Кроме того, здесь можно просмотреть детали блокировок и понять, какой именно процесс удерживает базу в состоянии занятости, что критически важно для диагностики проблем производительности.
| Параметр сеанса | Описание | Важность для админа |
|---|---|---|
| Идентификатор (ID) | Уникальный номер сессии в кластере | Высокая (для скриптов) |
| Пользователь | Имя учетной записи 1С | Средняя (для связи) |
| Компьютер | Имя или IP клиента | Высокая (для поиска) |
| Начало сеанса | Время подключения | Низкая |
| Основное приложение | Имя запущенного процесса | Средняя (диагностика) |
Что делать, если сеанс не удаляется?
Если сеанс не удаляется через консоль кластера, возможно, процесс завис на уровне операционной системы сервера. В этом случае требуется найти процесс rphost или ras, соответствующий проблемному сеансу, и завершить его через Диспетчер задач или команду kill в Linux. Делайте это только в крайнем случае, так как это может привести к падению всего сервиса 1С.
Особенности работы с файловыми базами данных
Работа с файловыми версиями баз данных имеет свои специфические особенности, связанные с отсутствием центрального сервиса управления сессиями. В файловом режиме блокировки реализуются через файловую систему операционной системы, что делает процесс разрыва соединений более зависимым от состояния сети и прав доступа к папкам.
Чтобы выгнать пользователей из файловой базы, часто недостаточно просто завершить сеанс в конфигураторе, если файл блокировки 1Cv8.1CD или лок-файлы остаются активными. В таких ситуациях может потребоваться физическое удаление файлов блокировок из каталога базы данных, но делать это можно только убедившись, что сервер 1С или пользователи действительно не работают с базой.
При использовании файлового сервера (SMB) иногда помогает временное закрытие общей папки с базой данных для всех пользователей через настройки доступа Windows или Linux. Это принудительно разорвет сетевые соединения и освободит файлы базы, однако данный метод является грубым и может повредить индексные файлы при неудачном стечении обстоятельств.
⚠️ Внимание: Удаление файлов блокировок (
.lck) вручную допустимо только при полной уверенности, что сервер 1С остановлен и ни один пользователь не имеет открытого доступа к файлам базы.
Для автоматизации процесса в файловых бадах можно использовать специальные обработки или внешние скрипты, которые проверяют наличие активных подключений и отправляют уведомления пользователям перед закрытием доступа. Это позволяет сделать процесс более мягким и контролируемым.
Автоматизация процесса через внешние обработки и скрипты
Для регулярного выполнения задач по очистке базы от пользователей целесообразно использовать автоматизированные решения. Платформа 1С позволяет создавать внешние обработки, которые при запуске в режиме предприятия (с правами админа) могут программно завершать сеансы других пользователей, используя встроенные объекты метапланов.
Примером может служить обработка, использующая объект МенеджерСеансов (в некоторых версиях и конфигурациях доступ к нему ограничен, но в режиме отладки или с полными правами возможен). Скрипт может перебирать список активных пользователей и вызывать метод завершения для каждого из них, кроме текущего.
// Пример псевдокода для завершения сеансов
Сеансы = ПолучитьСеансы();
Для Каждого Сеанс Из Сеансы Цикл
Если Сеанс.Пользователь <> ТекущийПользователь Тогда
ЗавершитьСеанс(Сеанс.ID);
КонецЕсли;
КонецЦикла;
Также возможно использование командной строки и утилиты rac (1C:Enterprise Remote Administration Console) для управления кластером из скриптов.bat или.sh. Это позволяет интегрировать процесс выгона пользователей в общие скрипты резервного копирования или обновления, запуская их по расписанию через планировщик задач.
Автоматизация через утилиту rac является наиболее надежным способом для клиент-серверных баз, так как не требует графического интерфейса и может выполняться удаленно.
Частые проблемы и способы их решения
В процессе администрирования вы можете столкнуться с ситуацией, когда пользователь не выкидывается из базы, несмотря на все предпринятые действия. Часто это связано с тем, что сессия зависла на уровне сетевого взаимодействия или процесса rphost на сервере перестал отвечать на запросы управления.
В таких случаях рекомендуется проверить журналы регистрации событий 1С и системные логи операционной системы. Ошибки сети, разрывы VPN-туннелей или сбои в работе оборудования могут приводить к появлению "фантомных" сессий, которые числятся активными, но физически уже не существуют.
Еще одной распространенной проблемой является блокировка со стороны антивирусного ПО или системы резервного копирования, которые сканируют файлы базы в момент попытки администратора получить монопольный доступ. Настройка исключений для каталогов 1С и процессов сервера обычно решает эту проблему.
Можно ли выгнать пользователя, если он работает в толстом клиенте?
Да, режим работы клиента (тонкий, толстый или веб) не влияет на возможность администратора завершить сеанс через Конфигуратор или консоль кластера. Механизм разрыва соединения унифицирован для всех типов клиентов платформы 1С:Предприятие 8.
Что будет, если выгнать пользователя в момент проведения документа?
Проведение документа прервется, транзакция будет отменена сервером. Документ не запишется, изменения не сохранятся. Пользователю придется открыть документ заново и провести его повторно после восстановления доступа.
Как узнать, кто держит базу, если список пользователей пуст?
Если список пуст, но вход невозможен, возможно, удерживается служебная блокировка (например, идет обновление конфигурации или работа фоновых заданий). Проверьте журнал регистрации или перезапустите службы 1С на сервере.
Нужно ли перезагружать сервер после выгона всех пользователей?
В большинстве случаев перезагрузка сервера не требуется. Достаточно завершить сеансы и снять блокировки. Перезагрузка нужна только в случае критических сбоев в работе процессов rphost или ras, которые не восстанавливаются штатными средствами.
Можно ли ограничить время сессии для автоматического выгона?
В стандартных средствах 1С нет функции автоматического выгона по таймеру бездействия для всех пользователей сразу. Однако это можно реализовать через регламентные задания в конфигурации или внешние скрипты мониторинга активности.