При ежедневной работе с файловыми базами данных 1С:Предприятие (файл 1Cv8.1CD) системные администраторы и специалисты технической поддержки нередко сталкиваются с внезапным аварийным закрытием программы. Пользователи получают фатальное уведомление: «Неустранимая ошибка. Файл базы данных поврежден». При этом стандартные средства администрирования перестают работать: выгрузка информационной базы в файл выгрузки .dt аварийно прерывается, а штатное «Тестирование и исправление» в конфигураторе завершается с ошибкой на этапе реструктуризации или сжатия таблиц.
Разберем подробный алгоритм спасения поврежденной базы, выясним внутренние причины нарушения целостности файла данных и рассмотрим меры, исключающие повторение таких сбоев в будущем.
Для понимания логики восстановления проанализируем первопричины сбоя. В файловом режиме все данные, конфигурация, индексы и служебная информация хранятся в одном бинарном файле 1Cv8.1CD. Основные факторы его повреждения:
1cv8.exe через диспетчер задач в момент модификации данных.Перед любыми манипуляциями с поврежденным файлом обязательно создадим его полную физическую копию на файловом уровне. Даже если база повреждена, исходный файл нельзя изменять без возможности отката.
1cv8.exe и 1cv8c.exe полностью завершены на всех компьютерах.1Cv8.1CD) в отдельную резервную папку на локальном диске.%AppData%\1C\1Cv8 и %LocalAppData%\1C\1Cv8, либо просто удалим базу из списка запуска 1С и добавим ее заново. Это исключит влияние локальных кэшированных структур на диагностику.Штатный конфигуратор при запуске «Тестирования и исправления» проверяет логическую целостность объектов. Если повреждена сама физическая структура страниц файла 1Cv8.1CD, конфигуратор просто аварийно закроется. Поэтому первым обязательным шагом является запуск утилиты chdbfl.exe, которая проверяет файл на физическом уровне.
Разберем запуск утилиты по шагам:
C:\Program Files\1cv8\[Номер_Версии_Платформы]\bin\chdbfl.exe (или Program Files (x86) для 32-разрядных версий).chdbfl.exe.1Cv8.1CD.Посмотрим на типичный отчет утилиты при успешном восстановлении:
Часто сбой происходит в служебных таблицах, например, таблице истории работы пользователей: Повреждены данные таблицы '_USERSWORKHISTORY'. Восстановлено 1453 из 1454 записей. Потеряно 1 значений полей неограниченной длины. Таблицы с именами _USERSWORKHISTORY, _SYSTEMSETTINGS, _COMMONSETTINGS и _USERSETTINGS хранят историю навигации, интерфейсные настройки и пользовательские кэши. Утрата записей в таких служебных таблицах никак не влияет на проводки, первичные документы и бухгалтерские остатки, однако их исправление восстанавливает физическую целостность файла.
После первого прохода запустим проверку утилитой повторно. Повторный запуск должен вернуть статус: «Ошибок не обнаружено».
После устранения физических повреждений откроем базу данных в режиме «Конфигуратор». Первым делом выполним операцию «Администрирование» — «Выгрузить информационную базу...» и сохраним файл .dt. Если выгрузка прошла успешно, файл базы данных уже пригоден для дальнейших восстановительных работ.
Теперь проведем логическое восстановление ссылочной целостности через конфигуратор:
Если утилита chdbfl.exe завершает работу с фатальной ошибкой или база не позволяет выполнить тестирование, применим обходные пути спасения данных:
ВыгрузкаЗагрузкаДанныхXML перенесем нормативно-справочную информацию и документы по периодам. Обработка переносит данные непосредственно объектами через встроенный язык, минуя поврежденные системные таблицы.Tool_1CD) позволяют открыть файл 1Cv8.1CD в обход платформы. С их помощью можно проанализировать список таблиц, сбросить флаг аварийного завершения транзакции или очистить конкретную сбойную служебную таблицу (например, полностью очистить данные _USERSWORKHISTORY), вернув базе работоспособность.Для исключения регулярных сбоев файловых баз придерживаемся следующих правил эксплуатации:
1Cv8.1CD имеет ограничение на максимальный размер одной таблицы в 4 ГБ. При приближении к этому порогу операции реструктуризации становятся нестабильными.