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

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

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

Выясним происхождение правил обмена

Прежде чем приступать к техническим действиям, проанализируем ситуацию. Как справедливо замечено в обсуждении, необходимо убедиться, что имеющиеся правила действительно были созданы в конфигурации «Конвертация данных». Чаще всего это XML-файл со специфической структурой тегов. Если обработка написана «вручную» и логика обмена жестко зашита в программный код на языке 1С без использования внешних файлов правил, то загрузить такой алгоритм в КД не получится. Однако в 90% случаев для типовых и доработанных обменов используются именно правила КД, которые «зашиты» в макеты обработки.

Шаг 1: Извлекаем правила из обработки

Если правила не лежат отдельным файлом на диске, а находятся внутри обработки, нам необходимо их достать. Разберем этот процесс по шагам:

  1. Откроем базу 1С в режиме «Конфигуратор».
  2. Перейдем в дерево метаданных и найдем нашу обработку (или откроем ее как внешний файл через Файл -> Открыть).
  3. Развернем ветку «Макеты». Обычно макет с правилами имеет понятное название, например, ПравилаОбмена, ExchangeRules или ПравилаВыгрузки.
  4. Откроем этот макет. Если это текстовый макет, мы увидим содержимое XML.
  5. Выделим весь текст и скопируем его в любой текстовый редактор (например, Notepad++), после чего сохраним как файл с расширением .xml. Также можно воспользоваться правой кнопкой мыши на макете и выбрать «Сохранить как...», если тип макета позволяет это сделать напрямую.

Шаг 2: Подготовка метаданных — критически важный этап

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

Для этого нам понадобятся файлы описания метаданных. Проанализируем, как их получить:

  1. Найдем в составе дистрибутива «Конвертации данных» специальную обработку. Для версии КД 2.1 это обычно MD82Exp.epf (для баз на платформе 8.2 и 8.3).
  2. Запустим эту обработку поочередно в базе-источнике и базе-приемнике.
  3. В обработке выберем необходимые типы объектов (справочники, документы, перечисления) и нажмем кнопку «Выгрузить». В результате мы получим два файла, например, Source.xml и Target.xml.

Шаг 3: Загрузка метаданных и правил в Конвертацию данных

Теперь перейдем непосредственно в информационную базу «Конвертация данных». Разберем последовательность действий для импорта:

Загрузка описаний конфигураций: Если эти конфигурации ранее не были загружены в КД, перейдем в раздел «Справочники» -> «Конфигурации» и создадим новые записи, загрузив в них полученные на предыдущем шаге файлы Source.xml и Target.xml.

Загрузка самих правил: Теперь мы готовы к основному процессу. Выполним следующие действия:

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

Проанализируем ситуацию: при загрузке программа сопоставит идентификаторы объектов из файла правил с объектами в метаданных. Если всё сделано верно, вы увидите дерево правил с настроенными ПКО (Правила конвертации объектов), ПВД (Правила выгрузки данных) и ПКС (Правила конвертации свойств).

Шаг 4: Редактирование и сохранение

После того как правила загружены, мы можем приступить к их правке. Рекомендуется сначала сделать копию загруженных правил внутри КД, чтобы в случае неудачи всегда можно было вернуться к исходному варианту.

Рассмотрим типичные задачи редактирования:

Когда изменения внесены, нам нужно получить новый файл правил. Для этого:

  1. Воспользуемся обработкой «Выгрузка правил обмена данными».
  2. Укажем наши правила, выберем путь для сохранения файла (например, NewRules.xml).
  3. Нажмем «Выгрузить».

Важные нюансы и риски

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

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

Версионность: Убедитесь, что вы используете подходящую версию КД. Большинство традиционных обменов через XML используют КД 2.1. Если же обмен построен на технологии EnterpriseData (синхронизация через универсальный формат), вам потребуется КД 3.0, где логика работы принципиально иная (правила хранятся в модулях менеджеров конфигурации).

Ручное редактирование XML: Если вам нужно исправить лишь одну опечатку в имени метаданных, теоретически это можно сделать в текстовом редакторе. Однако структура XML в КД крайне строгая. Например, идентификаторы объектов (УИДы) должны быть уникальными и соответствовать структуре. Посмотрим на пример типичного узла свойства:


<Свойство Имя="Наименование" НомерПорядка="50">
    <Источник Имя="Наименование" Тип="Строка"/>
    <Приемник Имя="Наименование" Тип="Строка"/>
</Свойство>

Любая синтаксическая ошибка сделает файл нечитаемым для 1С. Поэтому использование графического интерфейса «Конвертации данных» является наиболее безопасным и правильным способом редактирования.

Заключение

Мы убедились, что процесс редактирования готовых правил — это стандартная процедура, предусмотренная разработчиками 1С. Главное — соблюдать последовательность: извлечение файла, подготовка актуальных метаданных, аккуратная загрузка в КД и обязательное тестирование измененных правил на копии базы перед их внедрением в рабочую среду.

← На главную