Как обновить правила обмена в 1С:Конвертация данных 2.1 после изменения метаданных конфигурации?

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

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

Основные причины сбоев обмена после обновления

Проанализируем ключевые факторы, из-за которых правила обмена выходят из строя после обновления одной из обменивающихся баз:

  1. Переименование или удаление объектов и реквизитов. Если в новом релизе изменилось имя поля, табличной части или самого справочника/документа, механизмы выгрузки/загрузки не смогут обратиться к устаревшим именам.
  2. Изменение типов данных. Например, реквизит изменился со строки на ссылку или потерял один из типов в составном типе данных. Из-за этого платформа не может привести загружаемое значение к обновленному типу.
  3. Изменение состава перечислений. Появление новых значений или переименование старых элементов перечисления приводит к появлению пустых ссылок при загрузке.
  4. Ошибки в программных обработчиках. Если в событиях правил (например, ПередВыгрузкой, ПослеЗагрузки) используется прямой обращение к реквизитам через точку, удаление или переименование этих реквизитов вызовет ошибку выполнения кода.

Порядок актуализации метаданных и доработки правил в КД 2.1

Рассмотрим последовательность действий для обновления правил обмена с помощью выгруженного XML-файла структуры метаданных (полученного внешней обработкой MD83Exp.epf).

Шаг 1. Загрузка новой структуры метаданных в КД 2.1

  1. Откроем конфигурацию «Конвертация данных 2.1».
  2. Перейдем в справочник Конфигурации и загрузим созданный обработкой MD83Exp.epf XML-файл с новой структурой (можно обновить существующую версию конфигурации или создать новую).
  3. В настройках конвертации заменим старую версию конфигурации источника или приемника на только что загруженную. При этом система автоматически попытается сопоставить объекты по их совпадению в XML-именах.

Шаг 2. Использование инструмента «Сравнить метаданные конфигураций»

Для того чтобы точно определить, какие именно объекты изменились и требуют ручного вмешательства, воспользуемся встроенной обработкой сравнения:

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

Шаг 3. Внесение изменений в правила конвертации

Выясним, где именно отображаются расхождения и как их устранить:

  1. Перейдем в Правила конвертации объектов (ПКО). Разделы, реквизиты и объекты, структура которых изменилась или потеряла соответствие, будут выделены красным цветом.
  2. В правилах конвертации свойств (ПКС) для подсвеченных красным реквизитов перевыберем актуальный источник или приемник из обновленного списка метаданных.
  3. В правилах конвертации значений (ПЗ) проверим корректность сопоставления элементов перечислений.
  4. Сохраним обновленные правила обмена в XML-файл для дальнейшего использования.

Важные технические нюансы и ограничения КД 2.1

При работе с механизмами обновления правил необходимо учитывать следующие особенности платформы:

  1. Проверку встроенного кода нужно проводить вручную. Механизм обновления структуры метаданных и сопоставления не анализирует тексты произвольных обработчиков на языке 1С. Все алгоритмы и события ПКО/ПКС требуется проверить на наличие обращений к удаленным реквизитам самостоятельно.
  2. Сопоставление выполняется строго по XML-именам. Если синоним реквизита изменился, но XML-имя осталось прежним, платформа не уведомит об изменениях, хотя логика работы поля могла поменяться.
  3. Изменение внутренних идентификаторов (UUID). Если при нештатном обновлении конфигурации у метаданных сменились UUID, КД 2.1 может распознать их как абсолютно новые объекты.

Альтернативные способы решения

Разберем дополнительные варианты доработки правил в зависимости от масштаба изменений:

← На главную