Аварийное отключение электроэнергии или сбой в работе оборудования часто приводят к повреждению структуры файлов информационной базы. Распространенная проблема в файловом режиме — возникновение сообщения «Ошибка формата потока» при попытке обновить конфигурацию. При этом сама база данных может исправно запускаться в режиме пользователя, но процесс реструктуризации при обновлении завершается сбоем.
Проанализируем причины этой проблемы и разберем проверенные способы восстановления работоспособности базы данных.
Разберем, почему штатные утилиты проверки не всегда решают проблему:
chdbfl.exe: данное средство проверяет только физическую целостность внутренних страниц файла 1CD (индексы и заголовки таблиц). Оно не проверяет логическую целостность сжатых бинарных потоков (zlib), хранящихся во внутренних таблицах Config, ConfigSave и Params.ConfigSave: если сбой произошел в момент сохранения изменений, в базе остается некорректная временная конфигурация. При попытке обновления платформой считывается поврежденный поток данных..1cD-journal или .lgf), из-за чего запись событий обновления становится невозможной.Если ошибка возникает из-за незавершенного сохранения временной конфигурации, рассмотрим базовый алгоритм сброса нераспределенных изменений:
ConfigSave и отменит незафиксированные изменения..cfl, .1cL и поврежденный файл журнала .1cD-journal.Если откат конфигурации не помог, значит, повреждены бинарные потоки самой структуры метаданных. В этом случае наиболее надежным решением является перенос структуры и данных в «чистую» базу.
Разберем по шагам порядок действий:
.cf).Иногда графический интерфейс Конфигуратора вызывает сбой при попытке отобразить визуальные изменения потоков данных. В такой ситуации проанализируем выполнение обновления через пакетный режим командной строки.
Для запуска пакетного обновления выполним команду в консоли Windows:
"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" DESIGNER /F "C:\PathToDatabase" /UpdateCfg "C:\PathToUpdate\1cv8.cfu" /UpdateDBCfg
В этой команде параметр /F указывает путь к каталогу файловой базы, /UpdateCfg задает путь к файлу обновления, а параметр /UpdateDBCfg запускает реструктуризацию и обновление конфигурации базы данных в автоматическом режиме.
Если файловый механизм не может обработать поврежденный поток или размер служебных таблиц превышает лимит файлового формата (4 ГБ на таблицу), перенесем базу на СУБД (например, PostgreSQL или MS SQL Server):
.dt (через меню Администрирование > Выгрузить информационную базу)..dt.