В процессе штатного обслуживания информационных баз 1С специалисты нередко сталкиваются с ситуацией, когда процедура обновления завершается сбоем на самом начальном этапе. При выборе файла обновления платформа выдает диагностическое сообщение: «Файл не содержит обновлений для данной конфигурации». При проверке состояния через меню Конфигурация — Поддержка — Настройка поддержки обнаруживается, что в открывшемся окне отсутствуют сведения о поставщике и номере версии, а в верхней строке отображается статус «Конфигурация не находится на поддержке». Разберем детально, почему так происходит и как вернуть информационную базу в штатный режим обновления.
Для понимания причин сбоя проанализируем внутреннюю архитектуру файлов поставки платформы «1С:Предприятие»:
.cf), файл обновления (.cfu) содержит исключительно дельту — разницу метаданных между фиксированным перечнем релизов. Для применения такой дельты платформе требуется не просто структура основной конфигурации, а сохраненная внутри информационной базы эталонная конфигурация поставщика. Если конфигурация была снята с поддержки или соответствующая внутренняя таблица повреждена, платформе не к чему применить дифференциальное обновление, что и приводит к ошибке.Снять с поддержки вместо опции Включить возможность изменения. При полном снятии конфигурация поставщика безвозвратно удаляется из информационной базы.Прежде чем выполнять любые манипуляции с метаданными информационной базы, зафиксируем обязательные правила безопасности:
1Cv8.1CD при закрытых сеансах пользователей, а также создаем дамп через меню Администрирование — Выгрузить информационную базу (файл .dt).Конфигурация — Загрузить конфигурацию из файла, если база содержит нетиповые доработки (добавленные реквизиты, документы, регистры или справочники). Полная загрузка файла конфигурации приведет к удалению пользовательских объектов метаданных и безвозвратной потере накопленной в них информации при обновлении базы данных клавишей F7.Этот метод является наиболее надежным и безопасным как для полностью типовых, так и для доработанных конфигураций. Он позволяет заново внедрить в базу конфигурацию поставщика нужного релиза, не повредив добавленные объекты и существующий программный код. Разберем процедуру по шагам:
Справка — О программе. Допустим, текущий релиз — 1.0.42.7..cf (файл поставки конфигурации), а не файл обновления .cfu. Если полного дистрибутива нет, его можно получить, развернув пустую демонстрационную или чистую базу из полного установщика этого релиза и выгрузив файл через меню Конфигурация — Сохранить конфигурацию в файл.Конфигуратор. Переходим в меню Конфигурация — Сравнить, объединить с конфигурацией из файла... и выбираем подготовленный файл .cf релиза 1.0.42.7.Выполнить. В появившемся окне настройки правил поддержки для всех объектов оставляем или устанавливаем вариант Редактируется с сохранением поддержки (если планируются дальнейшие доработки) либо режим полной блокировки изменений в зависимости от потребностей. Нажимаем ОК.Конфигурация — Обновить конфигурацию базы данных.После завершения реструктуризации проверяем окно Конфигурация — Поддержка — Настройка поддержки. В нем должны корректно отображаться имя конфигурации поставщика, статус поддержки и номер текущей версии. Теперь база готова к штатной установке последующих обновлений в формате .cfu.
Если информационная база гарантированно не содержит никаких пользовательских доработок и снятие с поддержки произошло по ошибке, можно применить более быстрый способ восстановления:
.cf текущего релиза (например, 1.0.42.7).Конфигурация — Загрузить конфигурацию из файла.....cf. Платформа полностью заменит текущую конфигурацию эталонной и автоматически пропишет конфигурацию поставщика.Если после выполнения описанных операций окно поддержки по-прежнему не открывается или возникают внутренние ошибки формата потока, проанализируем целостность таблиц информационной базы на низком уровне. Для файловых баз используем штатную утилиту chdbfl.exe:
C:\Program Files\1cv8\[номер_версии]\bin\ или C:\Program Files (x86)\1cv8\[номер_версии]\bin\).chdbfl.exe, указываем путь к файлу базы данных 1Cv8.1CD, устанавливаем флаг «Исправлять обнаруженные ошибки» и нажимаем «Выполнить».Нередко в процессе обновления крупных конфигураций возникает сопутствующая проблема: на этапе сравнения метаданных (например, на 70–80%) конфигуратор аварийно завершает работу без вывода понятной ошибки. Разберем методы обхода этого сбоя:
1cv8.exe ограничен лимитом в 2 ГБ оперативной памяти. При сравнении объемных конфигураций память исчерпывается. Решением является запуск конфигуратора с использованием 64-разрядного клиента платформы 1С.
"C:\Program Files\1cv8\8.3.9.2170\bin\1cv8.exe" DESIGNER /F "D:\Bases\BGU" /N "Администратор" /P "Пароль" /UpdateCfg "D:\Updates\1.0.43.1\1cv8.cfu" /UpdateDBCfg
Рассмотренные подходы позволяют полностью восстановить штатный механизм обновления информационной базы и обеспечить сохранность пользовательских данных при любых сбоях конфигурации поставщика.