Сбой при обновлении конфигурации 1С — одна из самых неприятных проблем, с которой могут столкнуться пользователи и администраторы систем. Ошибка с сообщением «Нарушена целостность структуры конфигурации» обычно сопровождается аварийным завершением работы Конфигуратора, ошибками SDBL при реструктуризации (например, несоответствие типов полей CAST) или ошибками несоответствия типов при запуске в режиме «Предприятие».
Рассмотрим подробнее причины возникновения этой неисправности и проанализируем последовательность шагов для успешного восстановления работоспособности информационной базы.
Повреждение структуры конфигурации происходит из-за рассинхронизации служебных таблиц базы данных. Проанализируем основные факторы, вызывающие этот сбой:
Config.Обратите внимание: штатная утилита проверки файловых баз chdbfl.exe проверяет лишь физическую целостность контейнера .1CD. Логические ошибки внутри сжатых бинарных потоков конфигурации она исправить не сможет и часто завершает работу аварийно на поврежденных базах.
В некоторых случаях сама база данных остается целой, а ошибка вызывается повреждением локальных временных файлов платформы. Простейшим решением является перерегистрация базы в списке запуска.
Разберем процесс по шагам:
При этом создается новый идентификатор базы данных, и платформа считывает структуру заново, минуя старый поврежденный кэш.
Если Конфигуратор открывается, но ругается на целостность при попытке отрезюмировать изменения или при запуске отладки, проанализируем состояние заголовочного окна. Если в заголовке присутствует знак синего восклицательного знака или модифицированности конфигурации, попробуем вернуть конфигурацию к состоянию конфигурации базы данных.
Это позволит отменить не зафиксированные изменения конфигурации и повторить процедуру обновления корректным файлом .cf.
Если структура таблицы метаданных сильно повреждена, а тестирование и исправление вылетает с критическими ошибками SQL/SDBL (например, Ошибка SDBL: Тип поля CAST ... несовместим с типом поля), наиболее надежным решением является перенос накопившихся данных в пустую заведомо исправную базу той же конфигурации и версии.
Рассмотрим последовательность действий:
.cf).ВыгрузкаЗагрузкаДанныхXML.epf (Универсальный обмен данными в формате XML). Если режим «Предприятие» запускается хотя бы с ограниченными функциями, выполняем выгрузку справочников и документов.Для опытных специалистов и системных администраторов существует метод низкоуровневой исправления таблиц в файловом или клиент-серверном варианте.
При возникновении ошибки вида Таблица не найдена '_Document370' или сбоях бинарных таблиц Config/ConfigSave выполняются следующие шаги:
Tool_1CD) или средств СУБД SQL просматривается структура поврежденных таблиц.Config очищаются и перезаполняются эталонными строками из рабочей копии той же версии конфигурации:
-- Пример логики замены таблицы Config в MS SQL Server
DELETE FROM [DamagedDB].[dbo].[Config];
INSERT INTO [DamagedDB].[dbo].[Config]
SELECT * FROM [CleanDB].[dbo].[Config];
После замены таблицы Config платформа 1С распознает структуру конфигурации как исправную, что позволит запустить Конфигуратор и выполнить команду Конфигурация -> Конфигурация базы данных -> Обновить конфигурацию базы данных (клавиша F7) для завершения реструктуризации таблиц с данными.
Перед выполнением любых манипуляций (тестирование, исправление, запуск утилит, очистка таблиц) обязательно создавайте физическую копию файла 1Cv8.1CD или выгрузку выгружаемого файла базы данных (.dt), если платформа позволяет это сделать. Это обезопасит данные от окончательной утраты при неудачной попытке восстановления.