Часто у начинающих специалистов или администраторов баз данных 1С возникает закономерный вопрос: зачем тратить время на последовательное обновление через файлы CFU, если можно взять актуальный файл полной конфигурации CF и сразу обновить базу до нужной версии? На первый взгляд кажется, что это значительно сэкономит время. Однако такой подход таит в себе серьезную опасность для данных. Проанализируем ситуацию подробно и выясним причину, по которой существует жесткий регламент обновления конфигураций 1С.
Для начала давайте четко разграничим эти два формата файлов, чтобы понимать механику их работы:
Файлы CFU содержат внутри себя информацию о том, на какие именно версии баз они могут быть установлены. Эту информацию платформа проверяет перед началом обновления.
Рассмотрим популярный сценарий: у нас есть рабочая база версии 10, а мы хотим получить версию 20. У нас на руках есть полный файл CF 20-й версии. Если мы обновим базу через него, структура метаданных (конфигурация) действительно станет точно такой же, как в версии 20. Конфигуратор отработает, структура таблиц в СУБД обновится. Но что произойдет с самими данными?
Дело в том, что конфигурация не живет отдельно от накопленной информации. За время эволюции от версии 10 до версии 20 разработчики могли кардинально изменить архитектуру учета. Посмотрим на классический пример реструктуризации:
УдалитьЭтотСправочник.Если мы пойдем правильным путем (через CFU), обновление пройдет мягко: данные плавно перекочуют из старых таблиц в новые. Если же мы прыгнем с 10 на 20 версию с помощью полного CF, система увидит лишь одно: в старой базе был справочник, а в новой конфигурации его нет. Платформа просто удалит таблицу вместе со всеми данными, которые копились годами! Информация не будет разнесена по новым регистрам, так как промежуточные алгоритмы обработки данных не были запущены.
Проанализируем ключевой механизм, обеспечивающий сохранность информации при переходах между релизами. Это так называемые программные обработчики обновления, в частности механизм ОтложенноеОбновлениеИБ. Для принудительного выполнения и контроля таких алгоритмов можно использовать обработку для запуска процедур обновления в типовых конфигурациях.
В каждом промежуточном релизе разработчики пишут специальный программный код миграции. Этот код не выполняется в Конфигураторе. Он запускается только при первом старте системы в режиме "Предприятие". Конфигуратор лишь меняет структуру таблиц (добавляет новые колонки, таблицы), а вот перекладкой данных из одной колонки в другую занимается код, написанный программистами на встроенном языке 1С.
Поэтому правильный алгоритм обновления выглядит так:
Если вы "накатите" сразу CF 20-й версии, система просто не поймет, что были пропущены версии с 10 по 19. Она не запустит промежуточные скрипты. Новые таблицы останутся пустыми, документы могут перестать проводиться, а отчеты начнут выдавать некорректные цифры.
Существует еще одна важная техническая деталь. Платформа 1С:Предприятие связывает объекты метаданных не по их визуальным именам (например, Справочник "Номенклатура"), а по скрытым внутренним уникальным идентификаторам (UUID).
Файлы CFU гарантируют строгую преемственность этих идентификаторов и сохраняют жесткую привязку к "поддержке поставщика". Если неопытный пользователь попытается обновиться через файл CF с использованием механизма "Сравнить и объединить", велика вероятность сбоя идентификаторов. Объекты могут потерять связь с конфигурацией поставщика, начать дублироваться (появится две Номенклатуры) или перезаписаться с ошибками.
Да, можно. Обновление через CFU не означает, что вы обязаны устанавливать строго каждую промежуточную версию (10, 11, 12, 13...). Разработчики формируют файлы CFU таким образом, чтобы они включали в себя изменения сразу для нескольких предыдущих версий.
Узнать допустимый маршрут переходов (с каких версий можно обновиться на текущую) можно в файле UpdInfo.txt, который всегда поставляется вместе с обновлением, или на официальном портале поддержки 1С. Конфигуратор также сам проанализирует выбранный файл CFU и сообщит, подходит ли он к текущему релизу вашей базы.
Несмотря на то, что для регулярного обновления рабочих баз существует регламентированный путь через CFU, полные файлы конфигурации (CF) официально применяются в ряде сценариев:
Разберем главное правило: быстрее — не значит безопаснее. Желание сэкономить пару часов на установке промежуточных обновлений может привести к невосполнимой потере данных и долгим дням восстановления из резервных копий.
Обновление рабочих баз с данными всегда должно выполняться штатными средствами через файлы CFU, с соблюдением разрешенных маршрутов перехода (согласно UpdInfo.txt) и обязательным запуском программы в пользовательском режиме для корректной отработки программных обработчиков обновления.