Принудительное завершение чужих сеансов в 1С 8.3: от вежливой блокировки до закрытия файла

· 10 мин

Содержание

Выбросить пользователей из базы 1С проще всего штатно: в конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) откройте Администрирование → Обслуживание и установите блокировку работы пользователей — программа предупредит всех и через несколько минут закроет их сеансы. Если кто-то завис и не уходит, в файловом варианте закройте его подключение к файлу 1Cv8.1CD средствами Windows, а в серверном — удалите сеанс в консоли кластера.

Порядок одинаков для любой базы: сначала мягко, потом жёстко. Мягкие способы не теряют данные, жёсткие обрывают сеанс без сохранения — несохранённый документ у бухгалтера пропадёт.

Что нужно знать до того, как выгонять людей из базы

Файловая и серверная база держат пользователей по-разному. От этого зависит, какой инструмент сработает.

Файловая базаКлиент-серверная база
Кто держит базуПроцессы 1cv8.exe, 1cv8c.exe, веб-сервер, открывшие файл 1Cv8.1CDСеансы в кластере серверов 1С
Где видно сеансы«Активные пользователи» в 1С, открытые файлы WindowsКонсоль кластера, rac, «Активные пользователи»
Жёсткое отключениеЗакрыть открытый файл или завершить процессУдалить сеанс в кластере
Блокировка новых входовБлокировка работы пользователей (БСП)Блокировка начала сеансов в свойствах базы или в БСП

Перед стартом проверьте три вещи:

  • 📢 Предупредили ли людей. Сообщение в общий чат за 10–15 минут спасёт чей-то незаписанный документ.
  • 🔑 Есть ли у вас права. В 1С нужна роль «Полные права» или администратора, в Windows — права администратора на файловом сервере, для кластера — пароль администратора кластера, если он задан.
  • 🕒 Нет ли долгой операции. Если кто-то закрывает месяц или проводит документы пакетом, обрыв оставит часть документов непроведёнными. Дождитесь окончания.

Штатный способ: блокировка работы пользователей изнутри 1С

В типовых конфигурациях на Библиотеке стандартных подсистем есть форма, которая делает всё сама. Откройте Администрирование → Обслуживание и найдите в группе команд пункт «Блокировка работы пользователей».

Как установить блокировку

  1. Впишите сообщение, которое увидят пользователи: «Обновление базы, вход закрыт до 19:00».
  2. Задайте время начала и окончания блокировки. Если поле окончания пустое, блокировка снимается только вручную.
  3. Укажите код разрешения — любое слово или число, например 1234. С ним администратор сможет войти в закрытую базу.
  4. Нажмите «Установить блокировку».

Дальше программа рассылает предупреждение всем работающим. Пользователи видят окно с вашим текстом, а по истечении отведённого времени их клиенты закрываются. Новые входы запрещены.

Чтобы войти самому, добавьте к строке запуска параметр /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

Это главный приём для файловой базы. Работает, когда база лежит в общей папке на сервере или на компьютере, к которому подключаются остальные.

Закрытие файла обрывает работу пользователя мгновенно. Всё, что он не записал, пропадёт. Делайте это после предупреждения или для заведомо зависших сеансов.

Через оснастку «Управление компьютером»

  1. На компьютере, где лежит база, нажмите Win + R и введите compmgmt.msc.
  2. Откройте Общие папки → Открытые файлы.
  3. Отсортируйте по столбцу «Открытый файл» и найдите строки с путём к вашему 1Cv8.1CD. В столбце «Пользователь» — учётная запись Windows того, кто держит базу.
  4. Выделите нужные строки, правой кнопкой мыши — «Закрыть открытый файл».

Вкладка Общие папки → Сеансы рядом показывает, с каких компьютеров подключены люди. Закрыв сеанс целиком, вы отключите пользователя от всех файлов этой папки.

Через командную строку

Те же действия, но быстрее. Запустите командную строку от имени администратора:

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. Разверните Центральные серверы 1С:Предприятия 8.3 → ваш сервер → Кластеры → кластер → Информационные базы → нужная база.
  2. Откройте узел «Сеансы». В списке — пользователь, компьютер, приложение, время начала и время последней активности.
  3. Выделите сеансы, правой кнопкой мыши — «Удалить».

Пользователь получит сообщение об обрыве соединения. Рядом есть узел «Соединения» — их удалять не нужно, после удаления сеанса соединение закроется само.

Закрываем вход в базу на время работ

Чтобы выброшенные пользователи не зашли снова через минуту, откройте свойства информационной базы в консоли и включите «Блокировка начала сеансов включена». Заполните:

  • 🕒 начало и окончание блокировки;
  • 💬 сообщение для пользователей;
  • 🔑 код разрешения — для своего входа с /UC.

Там же можно поставить флаг «Блокировка регламентных заданий включена», чтобы фоновые задания не захватывали базу во время обновления.

Монопольный режим: зачем вообще выгонять пользователей

Чаще всего всех выбрасывают ради одного: получить монопольный доступ. Он нужен для ограниченного круга операций:

  • 🔄 обновление конфигурации базы данных, когда меняется структура;
  • 📥 загрузка информационной базы из файла .dt;
  • 🧰 тестирование и исправление информационной базы.

Для обычной работы, выгрузки в .dt или правки конфигурации без её применения монопольный режим не нужен.

Если при обновлении появилось сообщение, что монопольный режим установить не удалось, — значит, в базе остался хотя бы один сеанс. Порядок такой:

  1. В Конфигураторе откройте Администрирование → Активные пользователи и посмотрите, кто остался. Свой сеанс Конфигуратора в списке тоже будет — это нормально.
  2. Закройте оставшихся способами выше: блокировкой, через открытые файлы или консоль кластера.
  3. Повторите обновление. Если база серверная, проверьте и фоновые задания: они тоже держат сеанс.

Для ночного обновления удобно сначала включить блокировку начала сеансов с кодом разрешения, а Конфигуратор запускать с /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 человек и зависания частые, задумайтесь о переходе на клиент-серверный вариант: там сеансами управляет сервер, а не добрая воля клиента.

Частые вопросы

Узнает ли пользователь, что его выбросили?
При штатной блокировке — да, он видит ваше сообщение заранее. При закрытии файла или удалении сеанса в консоли он увидит ошибку соединения без пояснений.
Сохранятся ли данные, которые пользователь вводил в момент отключения?
Записанные документы и справочники останутся. Открытая и не записанная форма пропадёт целиком.
Можно ли выбросить только одного пользователя, не трогая остальных?
Да. В серверной базе удалите его сеанс в консоли. В файловой — закройте открытый файл только его учётной записи или завершите его процесс на терминальном сервере.
Расходует ли зависший сеанс лицензию?
Да, пока сеанс жив, он занимает лицензию. Поэтому «призраки» иногда проявляются как нехватка лицензий у новых пользователей.
Нужно ли снимать блокировку после работ?
Если вы задали время окончания — она снимется сама. Без времени окончания снимите её вручную в той же форме или в свойствах базы в консоли кластера.