При попытке открыть или конвертировать файловую базу 1С (файл 1Cv8.1CD) Конфигуратор может выводить сообщение: «Ошибка СУБД. действие может быть выполнено только в исключительном режиме доступа» или аварийно завершать работу. Подобная проблема часто возникает при смене платформы, аварийном завершении сеанса, либо в случаях, когда файл заблокирован сторонними процессами. Разберем подробнее, почему возникает эта ошибка и как восстановить доступ к базе данных.
Посмотрим на основные факторы, из-за которых Конфигуратор не может получить монопольный доступ к файлу базы данных:
1Cv8.1CD удерживается фоновыми службами (антивирус, индексатор Windows, служба резервного копирования или веб-сервер IIS/Apache), либо в системе завис фоновый процесс 1cv8.exe.Проанализируем базовые шаги по устранению файловых блокировок и сбросу служебных данных:
1cv8.exe и 1cv8s.exe в Диспетчере задач Windows.C:\Base1C\) и скопируйте туда только файл 1Cv8.1CD. Не копируйте служебные файлы и папки журналов.1Cv8.1CD и убедитесь, что снята галочка «Только для чтения».
C:\Users\<Имя_Пользователя>\AppData\Local\1C\1cv8\
C:\Users\<Имя_Пользователя>\AppData\Roaming\1C\1cv8\
Если Конфигуратор продолжает требовать конвертацию или завершается со сбоем, проанализируем структуру заголовка файла. Для этого откройте файл 1Cv8.1CD в любом бинарном (HEX) редакторе и посмотрите на нулевой блок данных.
Структура нулевого блока содержит информацию о версии формата:
1CDBMSV8.Рассмотрим значения этих байт:
8.0.3.0 или 8.0.5.0 — базы ранних версий 1С 8.0;8.1.0.0 — базы 1С 8.1 и ранних тестовых релизов 8.2;8.2.0.0 — базы 1С 8.2 до версии 8.2.13 включительно;8.2.14.0 — базы 1С 8.2 (начиная с 8.2.14) и базовые версии 8.3;8.3.8.0 — новый формат файловой базы данных платформы 8.3.8 и выше.Если сигнатура указывает на формат 8.3.8.0, открыть такую базу на релизах платформы ниже 8.3.8 невозможно — возникнет ошибка несовместимости формата.
Если Конфигуратор падает при автоматической попытке конвертации базы формата 8.3.8, воспользуемся штатной консольной утилитой cnvdbfl.exe, которая находится в папке bin установленной платформы 1С.
Рассмотрим порядок работы с утилитой через командную строку:
"C:\Program Files\1cv8\8.3.10.2699\bin\cnvdbfl.exe" -i "C:\Base1C\1Cv8.1CD"
"C:\Program Files\1cv8\8.3.10.2699\bin\cnvdbfl.exe" -c -f 8.3.8 -p 8k "C:\Base1C\1Cv8.1CD"
После завершения конвертации утилитой попытайтесь повторно открыть базу в режиме Конфигуратора нужной версии платформы.
Посмотрим на этап проверки физической целостности. Запустите утилиту chdbfl.exe из каталога bin нужного релиза платформы, выберите файл базы данных, укажите флаг «Исправлять ошибки» и нажмите кнопку «Выполнить». Утилита проверит физическую целостность таблиц и устранит повреждения блоков, после чего базу можно будет открыть в штатном режиме.