В процессе сопровождения информационных баз 1С можно столкнуться с нетипичной ситуацией: после выполнения обновления номер версии конфигурации в окне «О программе» в режиме «1С:Предприятие» показывает новый релиз, а в Конфигураторе в свойствах корневого объекта конфигурации остается номер предыдущего релиза. При попытке накатить следующее обновление процесс сохранения конфигурации базы данных аварийно завершается закрытием Конфигуратора («крэш» платформы) либо в режиме Предприятия возникают критические ошибки выполнения кода.
Разберем детально причины возникновения такой рассинхронизации и пошагово рассмотрим проверенные способы восстановления целостности информационной базы.
Проанализируем основные технические факторы, приводящие к подобному поведению системы:
CONFIG), редактируемую конфигурацию (таблица CONFIGSAVE) и конфигурацию базы данных (таблица PARAMS или системные таблицы СУБД). Если процесс обновления был прерван, выполнялось динамическое обновление («демонское») или произошел сбой записи, между этими таблицами возникает несоответствие.ВерсииПодсистем (или константы версий). Если метаданные конфигурации не зафиксировались, а обработчики обновления уже записали новые номера подсистем в базу, возникает расхождение номеров, а последующие процедуры падают из-за отсутствия нужных объектов или макетов.1cv8.exe упирается в лимит памяти 2–3 ГБ, из-за чего платформа аварийно закрывается без внятных сообщений об ошибках.Рассмотрим самый простой и часто наиболее эффективный метод для файловых баз, когда повреждена внутренняя структура таблиц конфигурации:
.dt.В процессе загрузки файла .dt платформа 1С заново строит таблицы базы данных и системные структуры конфигураций с нуля, отбрасывая временный мусор и восстанавливая соответствие между таблицами CONFIG и PARAMS.
Если база данных повреждена на физическом уровне, выгрузка в .dt может завершаться ошибкой. В этом случае воспользуемся штатной утилитой проверки файловых баз:
1Cv8.1CD простым копированием в отдельный каталог.C:\Program Files\1cv8\8.3.XX.XXXX\bin\) и запустим файл chdbfl.exe.1Cv8.1CD, установим флаг Исправлять обнаруженные ошибки и нажмем кнопку Выполнить.Разберем ситуацию, когда основная конфигурация содержит логические ошибки, не позволяющие применить обновление базы данных:
.cf)..cf.Когда графический интерфейс Конфигуратора аварийно завершает работу из-за нехватки оперативной памяти в процессе реструктуризации, применим запуск в пакетном режиме. Это освобождает ресурсы, так как не инициализируются визуальные редакторы и дерево метаданных:
"C:\Program Files\1cv8\current\bin\1cv8.exe" DESIGNER /F "C:\Bases\MyBase" /UpdateDBCfg
Если требуется принудительно запустить процедуры обновления данных в режиме Предприятия при возникновении сбоев БСП, используем специальный параметр запуска:
"C:\Program Files\1cv8\current\bin\1cv8.exe" ENTERPRISE /F "C:\Bases\MyBase" /C ЗапуститьОбновлениеИнформационнойБазы
Нередко разница в номерах версий вызвана тем, что клиентское приложение считывает устаревшие закэшированные метаданные с диска пользователя. Выполним полную очистку кэша:
%LocalAppData%\1C\1cv8\
%AppData%\1C\1cv8\
%TEMP%, чтобы исключить сбои из-за фрагментированных временных файлов реструктуризации.Если база продолжает регулярно падать при каждом последующем релизе, это свидетельствует о глубоких скрытых повреждениях формата файла .1CD. В такой ситуации применим кардинальное решение:
ВыгрузкаЗагрузкаXML.epf (для конфигураций с одинаковой структурой метаданных) или конфигурацию 1С:Конвертация данных.Такой подход полностью исключает любые аппаратные и структурные коллизии старого файла базы данных и гарантирует стабильную установку всех последующих обновлений.