В процессе администрирования и обслуживания файловых баз 1С:Предприятия специалисты часто сталкиваются с ситуацией, когда все пользователи завершили работу, однако файл базы данных 1Cv8.1CD или каталог с информационной базой остаются заблокированными. В результате невозможно выполнить обновление конфигурации, запустить утилиту тестирования и исправления chdbfl.exe, сделать резервную копию или переименовать каталог. Разберем причины возникновения таких блокировок, выясним, почему сторонние утилиты наподобие Unlocker не помогают при работе по сети, и рассмотрим корректные способы решения проблемы.
Проанализируем принцип работы утилит принудительного освобождения файлов. Программы класса Unlocker или IObit Unlocker функционируют на уровне драйверов и системных вызовов локальной операционной системы. Они перехватывают открытые файловые дескрипторы (handles) процессов, запущенных на том же компьютере, где установлена утилита.
Если база данных 1С размещена на удаленном компьютере или сервере в общей сетевой папке (SMB-ресурс), запустить локальный Unlocker с клиентского рабочего места и снять удаленную блокировку невозможно. Дескриптор открытого файла 1Cv8.1CD удерживается сетевой службой операционной системы удаленного компьютера (процессом System или службой LanmanServer). Поэтому снять такую блокировку можно только непосредственно на том компьютере, где физически расположен файл базы данных.
Выясним, какие факторы приводят к удержанию блокировок в файловом режиме:
1cv8.exe или 1cv8c.exe на стороне пользователя может остаться в памяти и удерживать сетевую сессию..cfl, .pfl, 1Cv8tmp.*). При некорректном выходе эти файлы могут оставаться в каталоге базы и мешать повторному монопольному захвату.w3wp.exe или httpd.exe) постоянно держит файл 1Cv8.1CD открытым даже при отсутствии активных пользовательских запросов.Рассмотрим распространенную ошибку: попытку скопировать файл 1Cv8.1CD средствами проводника Windows во время работы пользователей или принудительно оборвать сетевое соединение в момент транзакции.
Платформа 1С сбрасывает данные на диск страницами. Если выполнить простое копирование занятого файла через проводник, получится неконсистентный слепок («грязное чтение»), так как часть страниц может находиться в процессе записи. Принудительный сброс дескриптора во время активной записи приводит к физическому разрушению внутренней структуры таблиц базы данных. Поэтому перед любыми манипуляциями необходимо корректно завершать сессии.
Разберем по шагам системные инструменты, позволяющие освободить файл базы данных на компьютере-хосте.
На компьютере, где расположена база (или удаленно при наличии прав администратора), нажимаем Win + R, вводим команду fsmgmt.msc и переходим в раздел Открытые файлы. Находим файл 1Cv8.1CD, нажимаем правой кнопкой мыши и выбираем пункт «Закрыть открытый файл».
Для просмотра и отключения открытых файлов через командную строку Windows от имени администратора используем следующие команды:
openfiles /query
openfiles /disconnect /id <Номер_Сессии>
В современных версиях Windows Server и Windows 10/11 удобнее использовать встроенный модуль SMB:
# Просмотр открытых файлов базы данных
Get-SmbOpenFile | Where-Object {$_.Path -like "*1Cv8.1CD*"}
# Принудительное закрытие дескриптора по ID
Close-SmbOpenFile -FileId <ID_Файла> -Force
Если файл заблокирован локальным процессом, используем консольную утилиту Марка Руссиновича handle.exe:
handle.exe 1Cv8.1CD
handle.exe -c <ID_Дескриптора> -p <PID_Процесса> -y
Проанализируем типовой регламент восстановления базы данных, если требуется проверка утилитой chdbfl.exe:
1cv8.exe и 1cv8c.exe.fsmgmt.msc или PowerShell убеждаемся, что сетевые дескрипторы закрыты.1Cv8.1CD.chdbfl.exe по сети крайне не рекомендуется из-за низкой скорости и риска обрыва соединения.chdbfl.exe.*.cfl), затем возвращаем исправленный 1Cv8.1CD на исходное место. Пути к базе у пользователей при этом менять не потребуется.Чтобы избежать повторения проблем с сетевыми блокировками файловых баз, рассмотрим надежные архитектурные решения: