Принудительное завершение чужих сеансов в 1С 8.3: от вежливой блокировки до закрытия файла
Содержание
Выбросить пользователей из базы
1С проще всего штатно: в конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание и установите блокировку работы пользователей — программа предупредит всех и через несколько минут закроет их сеансы. Если кто-то завис и не уходит, в файловом варианте закройте его подключение к файлу 1Cv8.1CD средствами Windows, а в серверном — удалите сеанс в консоли кластера.
Порядок одинаков для любой базы: сначала мягко, потом жёстко. Мягкие способы не теряют данные, жёсткие обрывают сеанс без сохранения — несохранённый документ у бухгалтера пропадёт.
Что нужно знать до того, как выгонять людей из базы
Файловая и серверная база держат пользователей по-разному. От этого зависит, какой инструмент сработает.
| Файловая база | Клиент-серверная база | |
|---|---|---|
| Кто держит базу | Процессы 1cv8.exe, 1cv8c.exe, веб-сервер, открывшие файл 1Cv8.1CD | Сеансы в кластере серверов 1С |
| Где видно сеансы | «Активные пользователи» в 1С, открытые файлы Windows | Консоль кластера, rac, «Активные пользователи» |
| Жёсткое отключение | Закрыть открытый файл или завершить процесс | Удалить сеанс в кластере |
| Блокировка новых входов | Блокировка работы пользователей (БСП) | Блокировка начала сеансов в свойствах базы или в БСП |
Перед стартом проверьте три вещи:
- 📢 Предупредили ли людей. Сообщение в общий чат за 10–15 минут спасёт чей-то незаписанный документ.
- 🔑 Есть ли у вас права. В 1С нужна роль «Полные права» или администратора, в Windows — права администратора на файловом сервере, для кластера — пароль администратора кластера, если он задан.
- 🕒 Нет ли долгой операции. Если кто-то закрывает месяц или проводит документы пакетом, обрыв оставит часть документов непроведёнными. Дождитесь окончания.
Штатный способ: блокировка работы пользователей изнутри 1С
В типовых конфигурациях на Библиотеке стандартных подсистем есть форма, которая делает всё сама. Откройте Администрирование → Обслуживание и найдите в группе команд пункт «Блокировка работы пользователей».
Как установить блокировку
- Впишите сообщение, которое увидят пользователи: «Обновление базы, вход закрыт до 19:00».
- Задайте время начала и окончания блокировки. Если поле окончания пустое, блокировка снимается только вручную.
- Укажите код разрешения — любое слово или число, например
1234. С ним администратор сможет войти в закрытую базу. - Нажмите «Установить блокировку».
Дальше программа рассылает предупреждение всем работающим. Пользователи видят окно с вашим текстом, а по истечении отведённого времени их клиенты закрываются. Новые входы запрещены.
Чтобы войти самому, добавьте к строке запуска параметр /UC с кодом разрешения:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /UC1234
Для ярлыка или списка баз то же самое прописывают в поле «Дополнительные параметры запуска» в свойствах базы.
Список активных пользователей
Посмотреть, кто сейчас в базе, можно двумя способами:
- в режиме 1С:Предприятие — через
Администрирование → Обслуживание → Активные пользователиили черезВсе функции → Стандартные → Активные пользователи; - в Конфигураторе — через меню
Администрирование → Активные пользователи.
В списке видно имя пользователя, компьютер, приложение (тонкий клиент, Конфигуратор, фоновое задание) и время начала сеанса. Это первый шаг перед любыми действиями: вы знаете, кого именно выбрасываете и с какого компьютера.
Сеанс «Фоновое задание» в списке — это регламентное задание, а не человек. В файловой базе их выполняет один из клиентских сеансов, поэтому они исчезают вместе с ним.
Почему в файловой базе штатный способ иногда не срабатывает
В файловом варианте нет сервера, который мог бы оборвать чужой сеанс. Блокировка работает на добровольной основе: каждый клиент сам периодически проверяет, не установлена ли блокировка, и сам закрывается.
Поэтому не уходят:
- ❄️ зависшие клиенты — программа не отвечает и проверку не выполняет;
- 🛠 открытый Конфигуратор — он не подчиняется блокировке из режима предприятия;
- 💻 «призраки» — компьютер выключили по кнопке или пропала сеть, а файловый сервер всё ещё считает файл открытым.
Для них нужен уровень операционной системы.
Как устроена блокировка файловой базы 1С
Файловая база — это каталог с файлом 1Cv8.1CD, каталогом журнала регистрации 1Cv8Log и служебными файлами платформы. Каждый запущенный клиент открывает 1Cv8.1CD и держит его, пока работает.
Блокировку держит не запись внутри базы, а открытый дескриптор файла в операционной системе. Пока хотя бы один процесс держит файл, база считается занятой. Если процесс умер, система освобождает файл — сама или после таймаута сетевого подключения.
Отсюда практический вывод:
- база лежит на сетевой папке — смотрите открытые файлы на том компьютере, где лежит папка, а не у пользователя;
- база опубликована на веб-сервере — файл держит процесс веб-сервера (
httpd.exeу Apache,w3wp.exeу IIS), и выбросить веб-клиентов можно только перезапуском службы или пула; - пользователи работают на терминальном сервере — файл держат процессы
1cv8.exeи1cv8c.exeв их терминальных сеансах.
Ручная чистка каталога базы: что трогать нельзя
Часто советуют «удалить файлы блокировки » в папке базы. Пока процесс держит файл, Windows его не удалит — вы получите сообщение, что файл используется. А когда процессов не осталось, файл и так свободен.
Никогда не удаляйте 1Cv8.1CD и каталог 1Cv8Log — это сама база и её журнал. Служебные файлы, которые платформа создаёт рядом, она пересоздаёт сама. Удалять их стоит только при закрытых клиентах и после копии всей папки.
Если после закрытия всех процессов и перезагрузки сервера база по-прежнему пишет, что занята, проблема обычно в правах на папку или в антивирусе, который сканирует 1Cv8.1CD. Исключите каталог базы из проверки в реальном времени.
Закрываем зависшие подключения через Windows
Это главный приём для файловой базы. Работает, когда база лежит в общей папке на сервере или на компьютере, к которому подключаются остальные.
Закрытие файла обрывает работу пользователя мгновенно. Всё, что он не записал, пропадёт. Делайте это после предупреждения или для заведомо зависших сеансов.
Через оснастку «Управление компьютером»
- На компьютере, где лежит база, нажмите
Win + Rи введитеcompmgmt.msc. - Откройте
Общие папки → Открытые файлы. - Отсортируйте по столбцу «Открытый файл» и найдите строки с путём к вашему
1Cv8.1CD. В столбце «Пользователь» — учётная запись Windows того, кто держит базу. - Выделите нужные строки, правой кнопкой мыши — «Закрыть открытый файл».
Вкладка Общие папки → Сеансы рядом показывает, с каких компьютеров подключены люди. Закрыв сеанс целиком, вы отключите пользователя от всех файлов этой папки.
Через командную строку
Те же действия, но быстрее. Запустите командную строку от имени администратора:
net file
Команда выведет список открытых по сети файлов с идентификаторами. Найдите строку с 1Cv8.1CD и закройте её:
net file 123 /close
Здесь 123 — идентификатор из первого столбца.
Если база лежит на терминальном сервере
Сетевых подключений к файлу нет — его открывают локальные процессы. Откройте Диспетчер задач, вкладку «Пользователи» или «Подробности», найдите процессы 1cv8c.exe и 1cv8.exe нужного пользователя и завершите их. Из командной строки:
query process 1cv8c.exe
taskkill /PID 4520 /F
query process покажет пользователей и идентификаторы процессов; 4520 замените своим.
Сеансы в клиент-серверной базе: консоль кластера
В серверном варианте всё проще: сеансы видит и обрывает сервер 1С.
Откройте оснастку «Администрирование серверов 1С Предприятия». Если она не открывается или пишет об ошибке класса, зарегистрируйте radmin.dll нужной версии платформы командной строкой от администратора:
regsvr32 "C:\Program Files\1cv8\8.3.24.1548\bin\radmin.dll"
Номер версии в пути подставьте свой — он должен совпадать с версией сервера.
Удаляем сеансы конкретной базы
- Разверните
Центральные серверы 1С:Предприятия 8.3 → ваш сервер → Кластеры → кластер → Информационные базы → нужная база. - Откройте узел «Сеансы». В списке — пользователь, компьютер, приложение, время начала и время последней активности.
- Выделите сеансы, правой кнопкой мыши — «Удалить».
Пользователь получит сообщение об обрыве соединения. Рядом есть узел «Соединения» — их удалять не нужно, после удаления сеанса соединение закроется само.
Закрываем вход в базу на время работ
Чтобы выброшенные пользователи не зашли снова через минуту, откройте свойства информационной базы в консоли и включите «Блокировка начала сеансов включена». Заполните:
- 🕒 начало и окончание блокировки;
- 💬 сообщение для пользователей;
- 🔑 код разрешения — для своего входа с
/UC.
Там же можно поставить флаг «Блокировка регламентных заданий включена», чтобы фоновые задания не захватывали базу во время обновления.
Монопольный режим: зачем вообще выгонять пользователей
Чаще всего всех выбрасывают ради одного: получить монопольный доступ. Он нужен для ограниченного круга операций:
- 🔄 обновление конфигурации базы данных, когда меняется структура;
- 📥 загрузка информационной базы из файла
.dt; - 🧰 тестирование и исправление информационной базы.
Для обычной работы, выгрузки в .dt или правки конфигурации без её применения монопольный режим не нужен.
Если при обновлении появилось сообщение, что монопольный режим установить не удалось, — значит, в базе остался хотя бы один сеанс. Порядок такой:
- В Конфигураторе откройте
Администрирование → Активные пользователии посмотрите, кто остался. Свой сеанс Конфигуратора в списке тоже будет — это нормально. - Закройте оставшихся способами выше: блокировкой, через открытые файлы или консоль кластера.
- Повторите обновление. Если база серверная, проверьте и фоновые задания: они тоже держат сеанс.
Для ночного обновления удобно сначала включить блокировку начала сеансов с кодом разрешения, а Конфигуратор запускать с /UC. Тогда никто не войдёт между вашим отключением пользователей и стартом обновления.
Автоматизация: скрипты и параметры запуска
Если выгонять людей приходится каждую ночь — перед копией или обновлением, — делайте это скриптом.
Параметры запуска БСП
Конфигурации на БСП понимают параметр запуска /C с командой:
ЗавершитьРаботуПользователей— устанавливает блокировку и завершает сеансы;РазрешитьРаботуПользователей— снимает блокировку.
Запускать нужно под пользователем с полными правами и с кодом разрешения:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC1234
В файловой базе этот сеанс ждёт, пока остальные закроются сами, поэтому зависшие клиенты всё равно придётся добивать средствами Windows.
PowerShell для файловой базы
На файловом сервере с Windows Server 2016 и новее открытые по сети файлы закрываются одной командой:
Get-SmbOpenFile | Where-Object { $_.Path -like "*\Buh\1Cv8.1CD" } | Close-SmbOpenFile -Force
Путь в фильтре замените своим. Без -Force команда попросит подтверждение для каждого файла.
rac для серверной базы
Утилита rac работает через сервер администрирования ras (по умолчанию порт 1545) — он должен быть запущен как служба. Базовые команды:
rac cluster list
rac infobase summary list --cluster=<id_кластера>
rac session list --cluster=<id_кластера> --infobase=<id_базы>
rac session terminate --cluster=<id_кластера> --session=<id_сеанса>
Идентификаторы берите из вывода предыдущих команд. Для включения блокировки начала сеансов через rac infobase update набор ключей зависит от версии платформы — сверьтесь с rac help infobase, прежде чем ставить команду в расписание.
Скрипт обрывает сеансы без вопросов. Ставьте его в расписание на время, когда в базе гарантированно никто не работает, и предупредите сотрудников о регламенте.
Частые ошибки и как избежать «вечно занятой» базы
Чтобы выбрасывать пользователей приходилось реже:
- 🌙 Назначьте регламентное окно для обновлений и копий — например, после 20:00 — и закрепите его приказом или письмом.
- 🛡 Добавьте каталог файловой базы в исключения антивируса.
- 🔌 Попросите сотрудников закрывать 1С в конце дня, а не выключать компьютер кнопкой.
- 🖥 Если в файловой базе работают больше 5–10 человек и зависания частые, задумайтесь о переходе на клиент-серверный вариант: там сеансами управляет сервер, а не добрая воля клиента.