Как обновить правила обмена в Конвертации данных 2.1 при добавлении новых реквизитов и избежать «покраснения» связей?

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

При работе с инструментом «1С:Конвертация данных 2.1» (КД 2.1) программисты часто сталкиваются с неприятной ситуацией: в рабочую конфигурацию (например, «Управление торговлей») добавляется новый реквизит, который необходимо включить в обмен. Однако при попытке обновить описание конфигурации в КД многие существующие правила конвертации свойств (ПКС) «ломаются» — они подсвечиваются красным цветом, так как теряют связь с объектами метаданных. Это происходит из-за несовпадения внутренних идентификаторов (UUID) в справочнике метаданных КД.

В данной статье мы разберем несколько проверенных способов, как добавить новый реквизит в существующие правила обмена с минимальными трудозатратами, сохранив при этом работоспособность всех старых настроек. Мы проанализируем как стандартные механизмы системы, так и «хитрости» с редактированием файлов правил вручную.

Почему ПКС становятся красными при обновлении?

Прежде чем перейти к решениям, выясним причину проблемы. В Конвертации данных 2.1 описание метаданных конфигураций хранится в виде элементов справочников. Когда вы загружаете новый файл описания (полученный с помощью обработки MD82Exp.epf), система пытается сопоставить новые объекты со старыми. Если по какой-то причине (разные версии обработки выгрузки, изменение структуры метаданных) система не находит соответствия, старый объект помечается на удаление, а создается новый.

Поскольку ПКС (Правило конвертации свойства) ссылается на конкретный элемент справочника метаданных по ссылке, а не по имени, при замене объекта метаданных ссылка в правиле становится «битой». В интерфейсе КД мы видим это как красный текст в колонках источника или приемника.

Способ 1. Ручное добавление реквизита в описание конфигурации

Если вам нужно добавить всего один или два новых реквизита, самым быстрым и безопасным методом будет их ручное внесение непосредственно в справочник метаданных внутри базы КД 2.1. Это гарантирует, что старые реквизиты не будут затронуты.

Рассмотрим шаги по реализации этого метода:

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

Способ 2. Редактирование файла правил XML («Ленивый» способ)

Этот метод часто называют самым эффективным, когда не хочется возиться с обновлением тяжелых описаний метаданных. Мы добавим реквизит в правила «в обход» интерфейса, а КД сама создаст нужные метаданные при загрузке.

Проанализируем ситуацию и выполним следующие действия:

  1. Выгрузим текущие правила обмена в файл XML.
  2. Откроем полученный файл в любом текстовом редакторе (лучше использовать Notepad++ или VS Code).
  3. Найдем узел ПКО (Правило конвертации объекта) для нужного нам объекта (например, Номенклатуры).
  4. Внутри блока Свойства найдем любое существующее ПКС, которое похоже на наше (например, строковый реквизит).
  5. Скопируем блок кода <Свойство>...</Свойство> и вставим его ниже.
  6. Заменим значения в тегах Наименование, Источник и Приемник на имя нашего нового реквизита.

Пример того, как должен выглядеть блок в XML:


<Свойство>
    <Код>101</Код>
    <Наименование>НовыйРеквизит --> НовыйРеквизит</Наименование>
    <Порядок>500</Порядок>
    <Источник Имя="НовыйРеквизит" Тип="Строка"/>
    <Приемник Имя="НовыйРеквизит" Тип="Строка"/>
</Свойство>

После сохранения файла загрузим правила обратно в КД. Система при загрузке обнаружит, что в правилах упоминается свойство, которого нет в её справочнике метаданных, и автоматически предложит создать его. Соглашаемся — и реквизит добавлен без «покраснения» остальных строк.

Способ 3. Правильное использование стандартного обновления метаданных

Если изменений в конфигурации много, ручной ввод не поможет. В КД 2.1 есть встроенный помощник обновления. Чтобы он не «ломал» правила, нужно соблюдать технологию.

Разберем по шагам алгоритм обновления:

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

Способ 4. Работа с перечислениями и значениями

Особое внимание стоит уделить случаям, когда новый реквизит является Перечислением (как в примере из форума с НДС). Просто добавить реквизит в ПКО недостаточно. Нужно настроить ПКЗ (Правила конвертации значений).

Выясним причину: если в источнике появилось значение НДС22, а в приемнике оно называется так же, КД все равно не перенесет его автоматически, пока не будет создано правило сопоставления конкретных элементов перечисления.

При добавлении нового значения перечисления через XML это выглядит так:


<Значение>
    <Код>10</Код>
    <Наименование>НДС22 --> НДС22</Наименование>
    <Порядок>500</Порядок>
    <Источник>НДС22</Источник>
    <Приемник>НДС22</Приемник>
</Значение>

Использование сторонних инструментов для «склеивания» метаданных

Существуют специализированные внешние обработки для 1С, которые позволяют заменить описание конфигурации в уже готовых правилах обмена (XML) без захода в саму базу Конвертации. Эти инструменты анализируют файл xml правил и файл xml новых метаданных, автоматически сопоставляя их по именам и типам. Это бывает полезно, когда база КД сильно замусорена или доступ к ней ограничен. Подобные инструменты позволяют выполнить процедуру Replace Exchange Rules, что значительно экономит время при масштабных обновлениях типовых конфигураций (например, при переходе с УТ 11.4 на УТ 11.5).

Подведем итог: для быстрого добавления одного реквизита используйте Способ 2 (правка XML) или Способ 1 (ручное добавление в справочник). Если же конфигурация обновилась глобально — используйте штатную загрузку метаданных, но крайне внимательно следите за процессом сопоставления объектов на этапе загрузки, чтобы не допустить появления дублей объектов метаданных в базе КД.

← На главную