Довольно часто в практике программиста 1С возникает ситуация, когда существующий обмен данными между конфигурациями требует корректировки. Если у вас есть готовая обработка для переноса данных, внутри которой уже находятся правила обмена, возникает логичный вопрос: можно ли внести в них изменения, не создавая всё с нуля? Ответ — да, это возможно. В данной статье мы подробно разберем процесс извлечения, загрузки, редактирования и обратного сохранения правил с использованием конфигурации «1С:Конвертация данных» (КД).
Прежде чем приступать к техническим действиям, проанализируем ситуацию. Как справедливо замечено в обсуждении, необходимо убедиться, что имеющиеся правила действительно были созданы в конфигурации «Конвертация данных». Чаще всего это XML-файл со специфической структурой тегов. Если обработка написана «вручную» и логика обмена жестко зашита в программный код на языке 1С без использования внешних файлов правил, то загрузить такой алгоритм в КД не получится. Однако в 90% случаев для типовых и доработанных обменов используются именно правила КД, которые «зашиты» в макеты обработки.
Если правила не лежат отдельным файлом на диске, а находятся внутри обработки, нам необходимо их достать. Разберем этот процесс по шагам:
Файл -> Открыть).ПравилаОбмена, ExchangeRules или ПравилаВыгрузки.XML..xml. Также можно воспользоваться правой кнопкой мыши на макете и выбрать «Сохранить как...», если тип макета позволяет это сделать напрямую.Рассмотрим распространенную ошибку новичков: попытку загрузить правила в пустую базу КД без описания конфигураций. Сами по себе правила — это лишь инструкции: «взять поле А и положить в поле Б». Чтобы КД позволила вам выбирать новые поля или изменять существующие, программа должна «знать» структуру ваших баз (источника и приемника).
Для этого нам понадобятся файлы описания метаданных. Проанализируем, как их получить:
MD82Exp.epf (для баз на платформе 8.2 и 8.3).Source.xml и Target.xml.Теперь перейдем непосредственно в информационную базу «Конвертация данных». Разберем последовательность действий для импорта:
Загрузка описаний конфигураций: Если эти конфигурации ранее не были загружены в КД, перейдем в раздел «Справочники» -> «Конфигурации» и создадим новые записи, загрузив в них полученные на предыдущем шаге файлы Source.xml и Target.xml.
Загрузка самих правил: Теперь мы готовы к основному процессу. Выполним следующие действия:
Проанализируем ситуацию: при загрузке программа сопоставит идентификаторы объектов из файла правил с объектами в метаданных. Если всё сделано верно, вы увидите дерево правил с настроенными ПКО (Правила конвертации объектов), ПВД (Правила выгрузки данных) и ПКС (Правила конвертации свойств).
После того как правила загружены, мы можем приступить к их правке. Рекомендуется сначала сделать копию загруженных правил внутри КД, чтобы в случае неудачи всегда можно было вернуться к исходному варианту.
Рассмотрим типичные задачи редактирования:
ПКО на закладке «Конвертация свойств» добавим новую строку, выберем источник и приемник.ПередВыгрузкой или ПриЗагрузке. Здесь можно писать код на языке 1С.Когда изменения внесены, нам нужно получить новый файл правил. Для этого:
NewRules.xml).При обратной загрузке правил существуют определенные технические моменты, на которые стоит обратить внимание:
Потеря алгоритмов: Иногда, если правила были созданы в одной версии КД, а загружаются в другую (или если они были оптимизированы вручную), некоторые специфические обработчики могут импортироваться некорректно. Всегда проверяйте код в важных узлах после загрузки.
Версионность: Убедитесь, что вы используете подходящую версию КД. Большинство традиционных обменов через XML используют КД 2.1. Если же обмен построен на технологии EnterpriseData (синхронизация через универсальный формат), вам потребуется КД 3.0, где логика работы принципиально иная (правила хранятся в модулях менеджеров конфигурации).
Ручное редактирование XML: Если вам нужно исправить лишь одну опечатку в имени метаданных, теоретически это можно сделать в текстовом редакторе. Однако структура XML в КД крайне строгая. Например, идентификаторы объектов (УИДы) должны быть уникальными и соответствовать структуре. Посмотрим на пример типичного узла свойства:
<Свойство Имя="Наименование" НомерПорядка="50">
<Источник Имя="Наименование" Тип="Строка"/>
<Приемник Имя="Наименование" Тип="Строка"/>
</Свойство>
Любая синтаксическая ошибка сделает файл нечитаемым для 1С. Поэтому использование графического интерфейса «Конвертации данных» является наиболее безопасным и правильным способом редактирования.
Мы убедились, что процесс редактирования готовых правил — это стандартная процедура, предусмотренная разработчиками 1С. Главное — соблюдать последовательность: извлечение файла, подготовка актуальных метаданных, аккуратная загрузка в КД и обязательное тестирование измененных правил на копии базы перед их внедрением в рабочую среду.