В процессе сопровождения измененных конфигураций 1С:Предприятие 8.3 специалисты иногда сталкиваются с парадоксальной ситуацией: в окне настройки поддержки отображается, что конфигурация поставщика уже имеет актуальную (новую) версию, в то время как основная конфигурация всё еще остается на старой версии. Это происходит, если при обновлении через файл .cfu (файл обновления) в окне сравнения и объединения были сняты почти все флажки (например, обновлялись только конкретные отчеты), но процесс был доведен до конца. Система зафиксировала обновление поставщика, но программный код и метаданные основной конфигурации остались прежними. Разберем подробно, как выйти из этой ситуации и корректно завершить обновление.
Рассмотрим механизм работы файла обновления .cfu. В отличие от полного файла конфигурации (.cf), файл обновления содержит только разницу (дифференциал) между конкретными версиями. Когда мы запускаем процесс, 1С сначала обновляет внутреннюю конфигурацию поставщика, а затем предлагает применить эти изменения к основной рабочей конфигурации. Если мы соглашаемся с обновлением конфигурации поставщика, но отказываемся от изменения объектов в основной конфигурации, возникает «разрыв».
Проанализируем последствия такого «лоскутного» обновления:
Это самый надежный и правильный метод решения проблемы. Полный файл конфигурации не содержит ограничений по версиям «от» и «до», поэтому он позволит нам принудительно синхронизировать основную конфигурацию с поставщиком.
Разберем этот метод по шагам:
1cv8.cf..cf файл.Если у вас нет под рукой полного файла .cf, но конфигурация поставщика внутри базы уже имеет нужную версию (3.0.60.34), мы можем попытаться «доподтянуть» основную конфигурацию из внутренних данных. Выясним, как это сделать правильно.
Проанализируем последовательность действий:
Внимание! После выполнения этого способа номер версии в свойствах основной конфигурации может остаться старым. Рассмотрим, как это исправить. Нажмите правой кнопкой мыши на корне конфигурации (самая верхняя строка дерева метаданных), выберите Свойства и найдите поле Версия. Если там указано 3.0.59.45, вручную исправьте на 3.0.60.34. Это необходимо для корректного запуска обработчиков в режиме «Предприятие».
Если у вас есть копия базы, где обновление прошло успешно и версии совпадают, мы можем использовать ее как «эталон». Это поможет избежать ошибок ручного выбора объектов.
Рассмотрим алгоритм действий:
standard.cf.standard.cf. Этот метод хорош тем, что в окне сравнения вы увидите именно те изменения, которые реально должны быть в системе для данной версии.После того как мы синхронизировали метаданные в Конфигураторе, работа не закончена. При запуске в режиме «Предприятие» должны выполниться обработчики обновления (заполнение новых регистров, конвертация данных). Если после входа в программу ничего не происходит, нужно подтолкнуть систему.
Разберем, какие инструменты для этого существуют:
/C ЗапуститьОбновлениеИнформационнойБазы.
Справочники.ИдентификаторыОбъектовМетаданных.ОбновитьДанныеСправочника();
Константы.ПараметрыДополнительнойОбработкиОбновления.Установить(Новый ХранилищеЗначения(Новый Структура));
Иногда после таких сложных манипуляций Конфигуратор продолжает отображать неверные данные или «глючить» при сравнении. Это связано с локальным кэшем метаданных. Выясним, как его очистить полностью.
Посмотрим на пути, по которым 1С хранит временные файлы:
%LOCALAPPDATA%\1C\1cv8\%APPDATA%\1C\1cv8\Рекомендуется: Удалить все папки с длинными буквенно-цифровыми именами (GUID) из этих директорий. Также можно просто удалить базу из списка в стартере 1С и добавить её заново — это создаст новый кэш для этого подключения.
Резюмируем: Ситуация, когда конфигурация поставщика опережает основную, не является критической, если у вас есть доступ к полным дистрибутивам. Главное — обеспечить полное соответствие кода и структуры метаданных основной конфигурации заявленной версии поставщика, не забывая при этом сохранять собственные доработки через механизм сравнения и объединения.