Как обновить конфигурацию поставщика в 1С, не затрагивая изменения основной конфигурации?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет IT и автоматизация бизнеса
← На главную

В практике сопровождения нетиповых баз 1С нередко возникает ситуация, когда доработки вносились напрямую в основную конфигурацию, а конфигурация поставщика годами оставалась без изменений. При попытке применить очередное обновление через файл обновлений .cfu платформа выдает ошибку о несоответствии версий, так как файл обновления ориентируется на номер релиза конфигурации поставщика, находящейся на поддержке, а не на версию основной конфигурации. Разберем, как синхронизировать конфигурацию поставщика с текущим релизом основной конфигурации, не повредив накопленные доработки.

Пошаговый алгоритм выравнивания конфигурации поставщика

Для корректного обновления конфигурации поставщика без изменения структуры и модулей основной конфигурации не требуется последовательно накатывать все промежуточные релизы за несколько лет. Достаточно использовать полный файл поставки .cf того релиза, которому сейчас фактически соответствует функционал основной конфигурации.

  1. Создаем резервную копию информационной базы перед выполнением любых операций с конфигурацией.
  2. Открываем меню «Конфигурация» — «Поддержка» — «Обновить конфигурацию».
  3. Выбираем вариант «Выбор файла обновления» и указываем путь к полному файлу конфигурации .cf требуемого типового релиза.
  4. В окне подтверждения обновления проверяем, что предложен переход со старой версии конфигурации поставщика на целевую, и нажимаем «ОК».
  5. В открывшемся окне «Сравнение, объединение конфигураций» обязательно снимаем все флаги со всех объектов метаданных. Для этого нажимаем кнопку снятия всех отметок в верхней панели окна объединения. Снятие отметок гарантирует, что метаданные и модули основной рабочей конфигурации останутся нетронутыми.
  6. Нажимаем кнопку «Выполнить». Платформа обновит только конфигурацию поставщика и правила поддержки.
  7. Применяем изменения к базе данных через меню «Конфигурация» — «Обновить конфигурацию базы данных» (клавиша F7).

После выполнения этих действий номер версии конфигурации поставщика станет равен версии файла .cf, а все доработки основной конфигурации останутся без изменений. Последующие обновления можно будет выполнять в штатном режиме, в том числе с использованием файлов .cfu.

Особенности выполнения процедуры в распределенной информационной базе (РИБ)

Если информационная база работает в режиме распределенной информационной базы (РИБ), необходимо учитывать механизм синхронизации изменений конфигурации:

  1. Обновление выполняется только в главном узле. Ни в коем случае не следует повторять процедуру обновления конфигурации поставщика вручную в подчиненных узлах.
  2. Штатный обмен данными. После применения изменений в центральном узле запускается штатный сеанс обмена. Измененная конфигурация поставщика автоматически упаковывается в пакет обмена и передается в периферийный узел.
  3. Применение в подчиненном узле. При приеме сообщения обмена в подчиненном узле обмен зарегистрирует изменение конфигурации. Пользователю или администратору подчиненного узла останется открыть Конфигуратор и применить изменения через меню «Конфигурация» — «Обновить конфигурацию базы данных».
  4. Запрет динамического обновления. При обновлении конфигурации поставщика или структуры объектов категорически запрещено использовать динамическое обновление информационной базы в центральном узле, так как это может привести к рассинхронизации таблиц регистрации изменений в узлах РИБ.

Альтернативный способ через повторную постановку на поддержку

Если штатное обновление через меню поддержки завершается ошибкой (например, из-за повреждения структуры метаданных поддержки или расхождения внутренних идентификаторов), применим альтернативный метод:

  1. Переходим в меню «Конфигурация» — «Поддержка» — «Настройка поддержки» и нажимаем кнопку «Снять с поддержки».
  2. Открываем меню «Конфигурация» — «Сравнить, объединить с конфигурацией из файла» и выбираем типовой файл .cf нужного релиза.
  3. На вопрос платформы о постановке конфигурации на поддержку отвечаем утвердительно.
  4. В окне сравнения и объединения снимаем все флаги, чтобы не затереть доработки основной конфигурации. Правила поддержки для измененных объектов автоматически установятся в состояние Редактируется с сохранением поддержки.
  5. Нажимаем «Выполнить» и сохраняем конфигурацию базы данных (F7).

Технические нюансы трехстороннего сравнения и обработчиков данных

Проанализируем важные технические аспекты, которые следует учитывать при резком переходе на новую версию поставщика:

  1. Механизм 3-way merge (трехстороннее сравнение). При штатном обновлении платформа сопоставляет три состояния: старую конфигурацию поставщика, новую конфигурацию поставщика и текущую основную конфигурацию. При резком прыжке через множество релизов старый эталон сравнения заменяется. Если в промежуточных версиях поставщик удалял или переименовывал реквизиты, при последующих обновлениях автоматическое сопоставление таких объектов может потребовать ручного контроля.
  2. Свойства конфигурации и режим совместимости. При снятии всех флагов в окне объединения корневые свойства конфигурации (включая РежимСовместимости) в основной конфигурации не меняются. Необходимо вручную проверить, соответствует ли установленный режим совместимости требованиям целевой конфигурации поставщика.
  3. Обработчики обновления данных. Обновление конфигурации поставщика со снятыми флагами затрагивает только метаданные поддержки и не запускает процедуры миграции данных. Когда в дальнейшем будет выполняться реальное обновление модулей и структуры данных основной конфигурации, пропуск промежуточных релизов может привести к тому, что встроенные алгоритмы обновления информационной базы в режиме 1С:Предприятие не смогут корректно сконвертировать данные со слишком старых форматов.
← На главную