При восстановлении информационной базы из выгрузки .dt и последующей конвертации на новой версии платформы «1С:Предприятие 8» разработчики и администраторы нередко сталкиваются с ошибкой СУБД: «Действие может быть выполнено только в исключительном режиме доступа». Проблема возникает даже в тех случаях, когда у пользователя операционной системы установлены полные права на папку с базой данных.
Разберем детально, почему платформа требует монопольный доступ, какие скрытые процессы могут блокировать базу и как пошагово решить эту проблему.
Проанализируем механику работы платформы при выполнении реструктуризации и конвертации. Во время обновления формата таблиц файловой базы данных 1Cv8.1CD система выполняет глубокие низкоуровневые операции, требующие абсолютной блокировки всех файлов каталога. Ошибка возникает в следующих случаях:
.dt был выгружен из устаревшей версии (например, «1С:Предприятие 8.1» или ранних релизов 8.2), прямая загрузка в актуальную платформу 8.3.10 и выше может завершиться сбоем из-за сильной разницы в структуре хранения таблиц.1Cv8.1CD для проверки или синхронизации, нарушая исключительный доступ 1С.1cv8.exe или 1cv8c.exe могут продолжать невидимо работать в памяти и удерживать файл блокировки..cfl, .1cl или временные файлы 1Cv8tmp.* в каталоге базы данных сигнализируют СУБД о том, что база занята.Рассмотрим основной метод, если исходная выгрузка была сделана в старой версии конфигурации. Платформа 8.3 не всегда корректно выполняет автоматическую двойную конвертацию внутренних структур базы напрямую из формата 8.1.
.dt.F7).Разберем по шагам, как исключить влияние зависших процессов и временных файлов на монопольный режим:
1cv8.exe, 1cv8c.exe, 1cv8s.exe.1Cv8.1CD. В частности, обязательно удалим файлы с расширениями *.cfl, *.1cl, а также временные файлы вида 1Cv8tmp.1cd.C:\Bases\MyBase), а не на сетевом ресурсе или в каталоге синхронизации облачного хранилища.Нередко причиной отказа в установке монопольного доступа становятся поврежденные данные кэша конфигурации. Выполним очистку временных файлов платформы:
%APPDATA%\1C\1Cv8
%LOCALAPPDATA%\1C\1Cv8
Если файл базы данных уже был частично сформирован из архива, но конвертация прервалась с ошибкой, выполним низкоуровневое тестирование физической целостности таблиц:
C:\Program Files\1cv8\8.3.10.XXXX\bin\ (или Program Files (x86)).chdbfl.exe.1Cv8.1CD из каталога восстанавливаемой базы.Посмотрим, как выполнить загрузку базы данных и реструктуризацию в обход графического интерфейса, что позволяет исключить ошибки, связанные с блокировками пользовательского сеанса:
Запустим командную строку (cmd) и выполним команду пакетной загрузки с параметром /RestoreIB:
"C:\Program Files\1cv8\8.3.10.2561\bin\1cv8.exe" DESIGNER /F "C:\Bases\NewBase" /RestoreIB "C:\Dumps\backup.dt" /UpdateDBCfg
Параметр /RestoreIB загружает данные из файла выгрузки, а /UpdateDBCfg сразу выполняет реструктуризацию и обновление конфигурации базы данных в пакетном режиме с автоматическим захватом монопольного доступа.