Файловая база занята: как выгнать всех пользователей и освободить 1Cv8.1CD

· 9 мин

Содержание

Завершить сеансы в файловой базе 1С можно двумя путями. Штатный: установить блокировку работы пользователей в Администрирование → Обслуживание, и программа сама попросит всех выйти. Принудительный: закрыть файл 1Cv8.1CD средствами Windows на компьютере, где лежит база, или снять процесс 1cv8.exe / 1cv8c.exe у пользователя.

Штатный путь безопаснее: люди успевают сохранить документы. Принудительный нужен, когда сеанс «висит»: человек давно ушёл, компьютер завис, а Конфигуратор не пускает в монопольный режим для обновления или тестирования. В файловой базе 1С 8.3 нет кластера серверов, поэтому привычной кнопки «завершить сеанс» из консоли администрирования здесь нет. Работают инструменты самой конфигурации и Windows.

Почему сеансы в файловой базе остаются открытыми

Файловая база — это папка с файлом 1Cv8.1CD. Каждый запущенный клиент 1С открывает этот файл напрямую, по сети или локально. Пока процесс жив, файл занят. Отсюда типичные источники «лишних» сеансов:

  • 🖥️ Пользователь не закрыл программу. Ушёл домой, 1С осталась открытой.
  • 🧊 Клиент завис. Окна нет, а процесс 1cv8c.exe висит в диспетчере задач.
  • 📡 Оборвалась сеть. Ноутбук ушёл в сон или отключился Wi-Fi, а сервер ещё держит открытый файл.
  • 🔌 Внешнее подключение. Обработка обмена, отчёт из Excel, скрипт через COM-соединение работают с базой без видимого окна.
  • 🌐 Веб-публикация. Если файловая база опубликована через IIS или Apache, сеансы веб-клиентов живут внутри процесса веб-сервера.
  • 🪟 Терминальный сервер . Пользователь отключился от RDP-сессии, но не вышел из неё. Его 1С продолжает работать.

Сначала поймите, к какому типу относится ваш случай. От этого зависит способ: зависший клиент не отреагирует на блокировку, а веб-сеанс не найдёте в диспетчере задач на компьютере пользователя.

Кто сейчас в базе: список активных пользователей и журнал регистрации

Прежде чем что-то закрывать, посмотрите, кто подключён и с какого компьютера.

Активные пользователи

  • В Конфигураторе: Администрирование → Активные пользователи.
  • В режиме 1С:Предприятие (БП 3.0, ЗУП 3.1, УТ 11): Администрирование → Обслуживание, ссылка «Активные пользователи».
  • В любой конфигурации: ≡ → Все функции → Стандартные → Активные пользователи. Если пункта «Все функции» нет, включите его в ≡ → Сервис → Параметры.

В списке видно имя пользователя, приложение (тонкий клиент, Конфигуратор, COM-соединение, фоновое задание), компьютер и время начала работы. Колонка «Компьютер» — главная: по ней вы найдёте, куда идти или к кому подключаться.

Список в файловом варианте информационный. Оборвать из него чужой сеанс нельзя: в клиент-серверной базе это делается через кластер, а здесь его нет.

Журнал регистрации

Если в списке висит сеанс, а человек уверяет, что давно вышел, откройте журнал регистрации:

  • в Конфигураторе — Администрирование → Журнал регистрации;
  • в пользовательском режиме — Администрирование → Обслуживание → Журнал регистрации.

Установите отбор по пользователю и событиям «Сеанс. Начало» и «Сеанс. Завершение». Если у сеанса есть начало, но нет завершения, процесс оборвался аварийно или до сих пор работает. По колонке «Компьютер» и номеру сеанса видно, откуда шло подключение.

Сам журнал хранится в папке 1Cv8Log внутри каталога базы. Её не трогайте: удаление файлов оттуда не освобождает базу, а только стирает историю.

Способы завершить сеансы: что выбрать

СпособКогда подходитЧем рискуете
Блокировка работы пользователейЛюди на месте, клиенты отвечаютПочти ничем, сеансы закрываются с предупреждением
Закрытие процесса у пользователяИзвестен компьютер, клиент зависНесохранённый документ пропадёт
Выход из RDP-сессииБаза на терминальном сервереТо же, плюс закроются другие программы пользователя
Закрытие файла через «Общие папки»Компьютер недоступен, клиент «призрак»Обрыв записи, риск повреждения 1Cv8.1CD
Перезапуск веб-сервераВисят сеансы веб-клиентаРазом отключатся все веб-пользователи

Идите по таблице сверху вниз: от мягкого к жёсткому.

Штатное завершение сеансов в файловой базе через блокировку

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

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

  1. Откройте Администрирование → Обслуживание и перейдите по ссылке «Блокировка работы пользователей».
  2. Напишите сообщение для пользователей: «Обновление программы с 18:00, сохраните документы и выйдите».
  3. Укажите время начала и окончания блокировки.
  4. Задайте код разрешения входа, например 12345. По нему администратор сможет зайти в заблокированную базу.
  5. Установите блокировку.

Пользователи увидят предупреждение. В файловом режиме сеансы закрывает сам клиент: через несколько минут программа на каждом рабочем месте завершится. Новые входы будут запрещены до снятия блокировки.

Чтобы войти в заблокированную базу самому, добавьте к параметрам запуска ключ /UC с кодом: /UC12345. В окне запуска это делается кнопкой «Изменить» на последнем шаге, в поле «Дополнительные параметры запуска».

Блокировка из командной строки

Удобно для ночного обновления по расписанию. Библиотека стандартных подсистем понимает параметр запуска ЗавершитьРаботуПользователей:

"C:\Program Files\1cv8\8.3.xx.xxxx\bin\1cv8.exe" ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" /C"ЗавершитьРаботуПользователей" /UC"12345"

Программа установит блокировку и выждет, пока сеансы закроются. Снимают блокировку тем же способом с параметром /C"РазрешитьРаботуПользователей". Номер версии в пути замените на свой — он виден в папке C:\Program Files\1cv8.

Блокировка не действует на зависший клиент. Если процесс не отвечает, он не получит предупреждение и не закроется. Такие сеансы снимают средствами Windows.

Принудительное завершение сеансов средствами Windows

Перед любым принудительным закрытием предупредите людей: незаписанные документы пропадут, а сеанс оборвётся без вопросов.

На компьютере пользователя

Откройте диспетчер задач (Ctrl+Shift+Esc), вкладка «Подробности». Завершите процессы:

  • 1cv8c.exe — тонкий клиент;
  • 1cv8.exe — толстый клиент и Конфигуратор;

Если в «Подробностях» процессов нет, а база всё равно занята, значит, файл держит другой компьютер или веб-сервер.

На терминальном сервере

Посмотрите список сессий и завершите нужную:

query user
logoff 3

Здесь 3 — идентификатор сессии из колонки «ID». Команда закроет всю RDP-сессию пользователя.

Если закрыть нужно только 1С, а остальные программы оставить, снимите процесс по имени пользователя:

taskkill /F /FI "USERNAME eq ivanova" /IM 1cv8c.exe

Без фильтра /FI команда taskkill /IM 1cv8c.exe /F выкинет из 1С всех пользователей сервера разом. Делайте так только вне рабочего времени.

На компьютере, где лежит папка с базой

Это самый действенный приём, когда пользовательский компьютер недоступен. Сетевая папка с базой открыта с конкретных машин, и Windows ведёт список открытых файлов.

  1. На файловом сервере откройте compmgmt.msc («Управление компьютером»).
  2. Перейдите в Служебные программы → Общие папки → Открытые файлы.
  3. Найдите строки с 1Cv8.1CD и 1Cv8.1CL. В колонке «Пользователь» — учётная запись, которая держит файл.
  4. Щёлкните по строке правой кнопкой и закройте открытый файл.

То же из командной строки сервера:

net file
net file 152 /close

net file выводит идентификаторы, пути и пользователей. Второй командой закрываете файл по его идентификатору.

Если база лежит на локальном диске и файл держит процесс на этой же машине, откройте монитор ресурсов (resmon), вкладку «ЦП», и в поле поиска «Связанные дескрипторы» введите 1Cv8. Вы увидите процесс, который держит файл, и сможете его завершить.

Веб-публикация файловой базы

Сеансы веб-клиента живут внутри веб-сервера. Перезапустите пул приложений публикации в диспетчере IIS или службу Apache. Все пользователи, работавшие через браузер, будут отключены.

Файл блокировки 1Cv8.1CL: удалять или нет

В каталоге файловой базы, рядом с 1Cv8.1CD, при подключениях появляется файл 1Cv8.1CL. Через него клиенты согласуют совместный доступ к базе. Когда последний пользователь выходит корректно, файл обычно освобождается.

Если 1С падала, файл может остаться. Тогда платформа при входе ругается на занятость базы, хотя в ней никого нет. Типичный текст:

Ошибка совместного доступа к файлу '1Cv8.1CD'. 32(0x00000020): Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.

Порядок действий:

  1. Убедитесь, что ни на одном компьютере нет процессов 1С, а в «Открытых файлах» сервера нет строк с этой базой.
  2. Скопируйте всю папку базы в другое место. Это ваша страховка.
  3. Переименуйте 1Cv8.1CL, например, в 1Cv8.1CL.old. Удалять сразу не нужно.
  4. Запустите 1С. Если база открылась, старый файл можно удалить.

Если Windows не даёт переименовать 1Cv8.1CL и пишет, что файл открыт, — это не мусор. Файл реально держит живой процесс. Вернитесь к предыдущему разделу и найдите его.

Если вы ставили блокировку работы пользователей и забыли код, проверьте каталог базы: в файловом варианте блокировка сеансов хранится в файле 1Cv8.cdn. Переименование этого файла снимает блокировку. Делайте это при закрытой программе.

Никогда не удаляйте и не переименовывайте сам 1Cv8.1CD: это и есть ваша база.

Что проверить после принудительного закрытия

Обрыв в момент записи может оставить в 1Cv8.1CD повреждённые страницы. Признаки: ошибки при открытии отдельных документов, «битые» ссылки, падение программы на конкретном списке.

Пока все сеансы закрыты, это лучший момент для проверки:

  1. Сделайте копию папки базы, если ещё не сделали.
  2. Запустите Конфигуратор и выберите Администрирование → Тестирование и исправление. Для этого режима нужен монопольный доступ, который вы только что получили.
  3. Для проверки физической целостности файла есть утилита chdbfl.exe из папки bin установленной платформы. Запускайте её только при полностью закрытой базе.

После проверки снимите блокировку и сообщите пользователям, что можно работать.

Диагностика: выберите симптом

Как не допускать зависших сеансов в файловой базе

Большая часть «призраков» появляется из-за нестабильного доступа к файлу. Несколько мер снимают проблему почти полностью.

  • 📶 Не работайте с файловой базой по Wi-Fi и VPN. Обрыв соединения оставляет файл открытым. Для удалённых сотрудников лучше терминальный сервер или веб-публикация.
  • 🛡️ Добавьте папку базы в исключения антивируса. Проверка 1Cv8.1CD на лету тормозит работу и может удерживать файл.
  • ⏱️ Ограничьте отключённые RDP-сессии. В групповой политике терминального сервера есть раздел Службы удалённых рабочих столов → Узел сеансов удалённых рабочих столов → Ограничение сеансов по времени. Задайте, через сколько завершать отключённый сеанс, например через 2 часа.
  • 🌙 Плановые работы — через блокировку. Обновление и копирование ставьте на ночь командой с /C"ЗавершитьРаботуПользователей", а не надейтесь, что все вышли сами.
  • 💤 Отключите сон на рабочих местах, где 1С открыта весь день. Ноутбук, уснувший с открытой базой, — частый источник висящего подключения.
  • 🧱 Следите за размером и числом пользователей. Когда одновременно работают ориентировочно больше 10–15 человек и блокировки случаются каждый день, файловый вариант уже тесен. Переход на клиент-серверный вариант даёт кластер и нормальное управление сеансами.
Почему в списке пользователей виден «Фоновое задание», хотя все вышли?
В файловом варианте фоновые и регламентные задания выполняются в процессе одного из открытых клиентов. Пока жив хотя бы один процесс 1С, такие строки могут появляться. Закройте все клиенты, и они исчезнут.
Занимает ли зависший сеанс лицензию?
Да, пока процесс 1С работает на компьютере, лицензию он держит. Снимите процесс, и лицензия освободится для другого рабочего места.
Можно ли просто перезагрузить файловый сервер?
Можно, это закроет все сетевые подключения к базе. Но это тот же обрыв без сохранения у всех пользователей сразу. Перед перезагрузкой поставьте блокировку и дайте людям выйти.
Почему база снова занята через минуту после закрытия файла?
Клиент на компьютере пользователя жив и переподключился к базе. Закрывайте процесс на самой машине или через терминальный сервер, а не только файл на сервере.
Помогает ли очистка кэша 1С от висящих сеансов?
Нет. Кэш хранится в профиле пользователя и на подключения к файлу базы не влияет. Он нужен при ошибках интерфейса и метаданных, а не при блокировках.