Выгнать всех из базы 1С перед обновлением: сеансы, блокировки и зависшие подключения
Содержание
Отдельной кнопки «Отключить пользователя
» в Конфигураторе 1С 8.3 нет. Окно Администрирование → Активные пользователи только показывает, кто сидит в базе. Принудительно завершить чужой сеанс можно в клиент-серверной базе: через консоль администрирования кластера, утилиту rac или диалог Конфигуратора «Завершить сеансы и повторить», который появляется при обновлении конфигурации базы данных. В файловой базе сеанс закрывают на компьютере пользователя или снимают открытый файл на сервере, где лежит база.
Какой способ выбрать, зависит от ситуации. Нужно один раз освободить базу для обновления — хватит блокировки начала сеансов и завершения текущих. Сеанс завис и не уходит — придётся работать с процессами и файлами. Регулярные ночные работы — проще автоматизировать через rac и параметры запуска.
| Способ | Где работает | Когда выбирать |
|---|---|---|
| Диалог «Завершить сеансы и повторить» в Конфигураторе | Клиент-сервер | Обновление конфигурации БД, мешают чужие сеансы |
| Консоль администрирования серверов 1С | Клиент-сервер | Нужно выборочно завершить один-два сеанса |
rac session terminate | Клиент-сервер | Скрипты, ночные регламенты |
| Блокировка работы пользователей (БСП) | Файловая и клиент-сервер | Плановые работы с предупреждением сотрудников |
| Закрытие открытых файлов на сервере | Файловая | Сеанс «умер», а база всё ещё занята |
Как 1С ведёт сеансы и почему Конфигуратор только смотрит
Каждый запуск 1С:Предприятия, Конфигуратора, фонового или регламентного задания создаёт сеанс. В клиент-серверном варианте сеансы живут в кластере серверов 1С. Управляет ими менеджер кластера, а не клиентское приложение. Поэтому завершают их инструменты кластера: консоль, rac, программные методы администрирования.
В файловой базе кластера нет. Каждый клиент сам открывает файл 1Cv8.1CD и держит его, пока работает. Убить чужой сеанс «изнутри» платформа не может — только закрыть процесс 1cv8.exe или 1cv8c.exe на машине пользователя либо разорвать сетевое подключение к файлу.
Что показывает окно активных пользователей в Конфигураторе:
- 👤 имя пользователя информационной базы;
- 💻 компьютер, с которого открыт сеанс;
- 🧩 приложение: тонкий клиент, Конфигуратор, фоновое задание, COM-соединение;
- 🕒 время начала работы.
Этого достаточно, чтобы понять, кого попросить выйти. Для принудительного отключения переходите к способам ниже.
Монопольный доступ к базе нужен не всегда. Он требуется для обновления структуры базы данных, загрузки .dt, тестирования и исправления. Правка модулей без применения к базе и сохранение конфигурации в файл проходят при работающих пользователях.
Подготовка: что сделать до отключения пользователей
Принудительное завершение сеанса обрывает работу человека без сохранения. Несохранённый документ пропадёт, а начатая транзакция откатится. Поэтому сначала договоритесь, потом отключайте.
Минимальный порядок подготовки:
- 📣 Предупредите сотрудников о времени работ — письмом или сообщением в мессенджере за 15–30 минут.
- 📋 Откройте
Администрирование → Активные пользователив Конфигураторе и выпишите, кто сейчас в базе. - ⏸️ Проверьте, нет ли долгих фоновых операций: закрытия месяца, обмена, перепроведения. Их лучше дождаться.
- 💾 Сделайте резервную копию базы , если после отключения вы будете менять конфигурацию.
- 🔑 Для клиент-серверной базы приготовьте логин и пароль администратора кластера и администратора информационной базы — без них консоль и
racне дадут завершить сеансы.
Если в базе работает обмен с сайтом, ЭДО или банком через регламентные задания, они снова откроют сеанс через несколько секунд. Блокируйте не только пользователей, но и регламентные задания.
Отключение пользователей 1С через Конфигуратор и консоль кластера
Способ 1. «Завершить сеансы и повторить» при обновлении базы
Это единственный сценарий, где Конфигуратор сам предлагает выкинуть пользователей. Работает только в клиент-серверном варианте.
- Откройте Конфигуратор под администратором базы.
- Выполните
Конфигурация → Обновить конфигурацию базы данных(клавишаF7). - Если в базе есть другие сеансы и изменения требуют монопольного режима, платформа покажет диалог с кнопкой «Завершить сеансы и повторить».
- Нажмите её. При запросе введите учётные данные администратора кластера.
- Платформа завершит чужие сеансы и повторит обновление.
Если изменения можно применить без монопольного режима, платформа предложит динамическое обновление. Пользователи при этом остаются в базе, а новую конфигурацию увидят после перезапуска.
Способ 2. Консоль администрирования серверов 1С
Подходит, когда нужно отключить конкретного человека, а не всех.
- Запустите «Администрирование серверов 1С Предприятия» из меню «Пуск».
- Раскройте дерево:
Central 1C:Enterprise 8.3 Servers → имя сервера → Кластеры → кластер → Информационные базы → ваша база → Сеансы. - Справа появится список сеансов с пользователем, компьютером и приложением.
- Выделите нужный сеанс, откройте контекстное меню и выберите «Удалить».
- Подтвердите действие.
Сеанс пропадёт из списка за несколько секунд. У пользователя клиент покажет сообщение о разрыве соединения.
Консоль не открывается или пишет об ошибке регистрации? Часто помогает перерегистрация компонента: запустите от администратора regsvr32 "C:\Program Files\1cv8\8.3.xx.xxxx\bin\radmin.dll" из каталога нужной версии платформы.
Способ 3. Утилита rac из командной строки
Для rac должен работать сервер администрирования ras (по умолчанию порт 1545). Порядок такой: узнать идентификатор кластера, потом сеансы, потом завершить нужный.
rac cluster list
rac session list --cluster=<id_кластера> --cluster-user=admin --cluster-pwd=pass
rac session terminate --cluster=<id_кластера> --session=<id_сеанса> --cluster-user=admin --cluster-pwd=pass
Чтобы видеть сеансы только одной базы, сначала получите её идентификатор через rac infobase summary list --cluster=<id_кластера>. Полный список параметров для вашей версии платформы показывает rac help session.
Блокировка начала сеансов и монопольный режим
Завершить сеансы мало: через минуту бухгалтер снова откроет базу. Поэтому перед работами вход запрещают.
Блокировка в свойствах информационной базы (клиент-сервер)
В консоли кластера откройте свойства базы. Там есть флажки и поля:
- 🔒 «Блокировка начала сеансов включена»;
- 🕒 «Начало» и «Конец» блокировки;
- 💬 «Сообщение о блокировке» — его увидит пользователь при входе;
- 🔑 «Код разрешения» — с ним администратор войдёт, несмотря на блокировку;
- ⛔ «Блокировка регламентных заданий включена».
То же через rac:
rac infobase update --cluster=<id_кластера> --infobase=<id_базы> ^
--infobase-user=Администратор --infobase-pwd=pass ^
--sessions-deny=on --scheduled-jobs-deny=on ^
--denied-message="Обновление базы до 22:00" --permission-code=123
После работ верните --sessions-deny=off и --scheduled-jobs-deny=off.
Блокировка не завершает уже открытые сеансы сама по себе. Она лишь не пускает новых. Текущие сеансы завершают способами из предыдущего раздела.
Блокировка работы пользователей в типовых конфигурациях
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть обработка «Блокировка работы пользователей». В Бухгалтерии она в разделе Администрирование → Обслуживание. Она работает и в файловой базе.
Что делает обработка:
- Устанавливает блокировку с вашим сообщением и кодом разрешения.
- Предупреждает открытые клиенты, что скоро сеанс завершится.
- Через заданное время клиенты закрываются сами.
То же можно запустить из командной строки без входа в интерфейс:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"pass" /C"ЗавершитьРаботуПользователей" /UC"123"
Снять блокировку — тот же запуск с /C"РазрешитьРаботуПользователей". Параметр /UC с кодом разрешения пропускает вас в заблокированную базу, в том числе в Конфигуратор.
Самозакрытие клиентов срабатывает только у тех, кто работает в конфигурации на БСП. Зависший клиент, Конфигуратор коллеги или внешнее COM-соединение так не закроются.
Монопольный режим программно
Во встроенном языке монопольный режим ставит УстановитьМонопольныйРежим(Истина). Если в базе есть другие сеансы, метод вызовет исключение. Это удобно в своих обработках обслуживания: сначала проверили, что вы одни, потом выполняете работу.
Зависшие сеансы и файлы блокировки файловой базы
Бывает так: все вышли, а Конфигуратор всё равно пишет, что база занята, или в активных пользователях висит человек, который ушёл домой.
Файловая база
В каталоге файловой базы рядом с 1Cv8.1CD лежит 1Cv8.1CL — файл блокировки. Он есть, пока хоть один процесс держит базу. В базах, созданных на старых версиях платформы, ту же роль играет 1Cv8.cdn.
Порядок действий:
- На компьютерах пользователей проверьте «Диспетчер задач»: нет ли там процессов
1cv8.exe,1cv8c.exe. Их завершение закрывает сеанс. - Если база лежит в сетевой папке, на файловом сервере откройте
Управление компьютером → Общие папки → Открытые файлы. Найдите1Cv8.1CD,1Cv8.1CLи закройте их. - Если открытых файлов и процессов нет, а
1Cv8.1CLостался — удалите его вручную.
Закрытие открытого файла на сервере и удаление 1Cv8.1CL обрывают работу всех, кто ещё в базе, без сохранения данных. Делайте это только когда убедились, что живых пользователей нет, и после резервной копии 1Cv8.1CD. Никогда не удаляйте сам 1Cv8.1CD.
Если 1Cv8.1CL не удаляется с ошибкой «файл занят» — значит, его ещё держит процесс. Ищите его по шагам 1–2.
Клиент-серверная база
Сеанс, который не удаляется из консоли, обычно держит зависший рабочий процесс rphost. Посмотрите в консоли, какой процесс обслуживает сеанс, — колонка «Рабочий процесс» или раздел «Рабочие процессы».
Варианты от мягкого к жёсткому:
- Подождать: после обрыва соединения кластер сам удаляет сеанс по таймауту.
- Завершить нужный процесс
rphostв «Диспетчере задач» на рабочем сервере, сверив PID. - Перезапустить службу «Агент сервера 1С:Предприятия 8.3».
Процесс rphost обслуживает сразу много сеансов, часто нескольких баз. Его завершение и перезапуск службы обрывают работу всех пользователей кластера. Делайте это вне рабочего времени.
Крайний приём для «вечных» сеансов, которые возвращаются после рестарта, — очистка сеансовых данных кластера. Остановите службу агента, в каталоге srvinfo\reg_1541 удалите папки snccntx…, затем запустите службу. Перед этим скопируйте весь каталог srvinfo в резерв. Файлы 1CV8Clst.lst и 1CV8Reg.lst не трогайте: в них список баз и настройки кластера.
Как найти, кто держит базу: техжурнал и журнал регистрации
Когда сеанс появляется снова и снова, нужно понять, кто его открывает. Чаще всего это регламентное задание, внешний обмен через COM или чей-то забытый скрипт.
Журнал регистрации
В Конфигураторе откройте Администрирование → Журнал регистрации. Отберите события «Сеанс. Начало» и «Сеанс. Завершение» за нужный интервал. В колонках видны пользователь, компьютер и приложение.
Признаки виновника:
- 🔁 сеансы с интервалом в одну-две минуты — регламентное задание;
- 🧷 приложение «COM-соединение» — внешняя программа или обмен;
- 🖥️ компьютер сервера приложений — фоновые задания самой базы.
Технологический журнал
Если журнала регистрации не хватает, включите техжурнал. Создайте файл logcfg.xml в каталоге conf платформы, например C:\Program Files\1cv8\conf\:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\techlog" history="24">
<event>
<eq property="name" value="CONN"/>
</event>
<event>
<eq property="name" value="SESN"/>
</event>
<event>
<eq property="name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
Платформа подхватит настройку в течение минуты без перезапуска. Параметр history="24" хранит логи 24 часа. Событие SESN фиксирует действия с сеансами, CONN — установку и разрыв соединений, EXCP — исключения.
Не оставляйте техжурнал включённым постоянно. С property name="all" он быстро растёт, на нагруженном сервере — на гигабайты в час. Разобрались — удалите или переименуйте logcfg.xml.
Частые вопросы
Можно ли отключить пользователя из Конфигуратора в файловой базе?
Пользователь отключён, а лицензия всё ещё занята. Почему?
rac session list --licenses.Нужен ли монопольный режим, чтобы просто поправить модуль?
Как зайти в базу, если я сам поставил блокировку?
/UC с кодом разрешения, который указали при блокировке. В клиент-серверной базе код можно посмотреть или сменить в свойствах базы в консоли кластера.