При выполнении типовых административных операций в Конфигураторе — обновлении конфигурации, сравнении и объединении с файлом поставщика (.cf) или попытке открыть свойства метаданных — разработчики нередко сталкиваются с критической ошибкой «Неверный формат хранилища данных». Проанализируем причины этой проблемы, а также разберем как штатные способы восстановления, так и методы глубокой диагностики с помощью специализированных утилит.
Сбой свидетельствует о нарушении целостности одного из внутренних упакованных потоков (контейнеров метаданных) информационной базы или файла выгрузки. Выясним основные причины:
%LOCALAPPDATA%\1C\1Cv8\ и %APPDATA%\1C\1Cv8\ при аварийном завершении работы Конфигуратора или сбоях питания.CONFIG, CONFIGSAVE и PARAMS.Прежде чем прибегать к сторонним утилитам, рассмотрим простые платформенные методы, которые позволяют точно выявить сбойный объект конфигурации:
Перейдем в главное меню: Конфигурация → Выгрузить конфигурацию в файлы... Либо выполним команду выгрузки через пакетный режим запуска Конфигуратора с логированием:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F "D:\Bases\Trade" /DumpConfigToFiles "D:\DumpXML" /Out "D:\DumpLog.txt"
Процесс сериализации метаданных прерывается ровно на том элементе (модуле, макете или форме), чей внутренний поток разрушен. Имя сбойного объекта будет зафиксировано в окне сообщений или файле лога.
Выполним проверку через меню Конфигурация → Проверка конфигурации... с установленными флагами логической целостности и поиска некорректных ссылок.
Разберем по шагам типовые сценарии восстановления целостности базы данных:
Полностью очистим каталоги кэша пользователя и удалим информационную базу из списка запуска 1С, после чего добавим ее повторно. Это создаст новый внутренний идентификатор базы (GUID) и исключит влияние старого кэша.
Если ошибка возникает исключительно при операциях обновления или сравнения с поставщиком, снимем конфигурацию с поддержки:
Откроем Конфигурация → Поддержка → Настройка поддержки и нажмем кнопку Снять с поддержки. Это удалит поврежденный внутренний поток поставщика. Затем сохраним конфигурацию базы данных (клавиша F7).
После этого выберем пункт Конфигурация → Сравнить, объединить с конфигурацией из файла..., укажем чистый .cf поставщика нужного релиза и при объединении заново включим поддержку.
Для файловых баз запустим утилиту chdbfl.exe (находится в каталоге bin установленной платформы) с установленным флагом «Исправлять обнаруженные ошибки». Далее в режиме Конфигуратора выполним Администрирование → Тестирование и исправление... с включенной реструктуризацией таблиц.
Если сбой произошел во время сохранения изменений, в базе данных на сервере СУБД можно выполнить очистку таблицы незафиксированных изменений:
TRUNCATE TABLE CONFIGSAVE;
Это вернет конфигурацию к последнему стабильно сохраненному состоянию конфигурации базы данных.
Если штатные средства не помогают или на руках имеется только поврежденный файл конфигурации (.cf), применим специализированный инструментарий.
Посмотрим на роли этих утилит в процессе восстановления:
CONFIG или файла базы данных и локализовать конкретные ошибки (например, сбои кодировок или контрольных сумм блоков). С ее помощью получаем внутренний UUID сбойного метаданного..cf, .epf). Сама по себе она не ищет ошибки, но позволяет разобрать файл на составляющие элементы.Разберем алгоритм исправления:
Tool_1CD находим поврежденный внутренний поток и определяем, какому объекту конфигурации он принадлежит (по идентификатору GUID).V8Unpack распаковываем проблемный .cf-файл.V8Unpack и загружаем восстановленный .cf в базу через меню Конфигурация → Загрузить конфигурацию из файла...Важное предостережение: выгрузка информационной базы в файл .dt не устраняет внутренние логические повреждения метаданных, так как она переносит таблицы CONFIG и PARAMS без их пересборки. При повреждении структуры всегда работайте с файлами .cf или восстанавливайте конфигурацию поставщика из оригинального дистрибутива.