При работе в конфигурации «Конвертация данных 2.1» (КД 2.1) разработчики часто сталкиваются с ситуацией, когда после загрузки новой структуры метаданных или объединения правил некоторые строки в списках Правил конвертации объектов (ПКО) или Правил конвертации свойств (ПКС) окрашиваются в красный цвет. Рассмотрим подробно, почему это происходит, как устроена внутренняя логика системы и какими способами можно привести правила в рабочий вид, избежав рутинного ручного перевыбора каждого поля.
Для начала проанализируем внутреннюю архитектуру КД. В этой конфигурации правила обмена — это не просто текстовые описания, а записи в справочниках, которые имеют жесткие ссылки на другие справочники, содержащие описание метаданных источника и приемника. Когда мы видим красный шрифт, система сигнализирует нам о критической ошибке ссылочной целостности.
Рассмотрим основные ситуации, приводящие к «покраснению»:
ОбъектИсточник или ОбъектПриемник указывает на GUID, которого нет в текущей базе КД, строка также подсветится красным.Разберем, как правильно обновлять структуру конфигурации, чтобы не допустить массового появления битых ссылок. Проанализируем настройки обработки «Загрузка структуры конфигурации».
Во-первых, при загрузке XML-файла со структурой (выгруженного из MD83.epf или аналогичных) обратим внимание на флаг «Удалять объекты, отсутствующие в файле». Если вы не уверены, что хотите полностью зачистить старые описания метаданных, этот флаг лучше снять. В этом случае старые объекты метаданных останутся в базе КД нетронутыми, и ссылки в правилах не «покраснеют».
Во-вторых, всегда используйте режим «Синхронизировать объекты по наименованию». Это позволит системе сопоставить объекты из файла с уже существующими в справочниках КД, обновляя их, а не создавая дубликаты с новыми идентификаторами.
Если «покраснение» уже произошло и затронуло сотни правил, ручной перевыбор — не наш метод. Рассмотрим эффективный алгоритм исправления через стандартную обработку «Поиск и замена значений». Этот инструмент часто встроен в саму КД или может быть запущен как внешняя обработка.
Посмотрим на шаги выполнения задачи:
Проанализируем ситуацию, когда объектов слишком много для ручного поиска и замены. В Конвертации данных 2.1 доступна мощная «Групповая обработка справочников и документов» (меню «Операции» — «Обработки»). Мы можем использовать ее для автоматического поиска актуальных метаданных по имени.
Рассмотрим пример логики, которую можно применить в поле «Алгоритм» для выбранных ПКС (Правил конвертации свойств):
// Пример логики для исправления ОбъектПриемник в ПКС
Если Объект.Приемник.ПометкаУдаления Тогда
ИмяНужногоОбъекта = Объект.Приемник.Имя;
ВладелецМетаданных = Объект.Приемник.Владелец; // Ссылка на конфигурацию
НовыйОбъектМетаданных = Справочники.Конвертация_Метаданные.НайтиПоНаименованию(ИмяНужногоОбъекта, Истина, , ВладелецМетаданных);
Если ЗначениеЗаполнено(НовыйОбъектМетаданных) И Не НовыйОбъектМетаданных.ПометкаУдаления Тогда
Объект.Приемник = НовыйОбъектМетаданных;
Объект.Записать();
КонецЕсли;
КонецЕсли;
Важно: Перед выполнением групповых операций обязательно создайте резервную копию базы КД. Ошибки в коде алгоритма могут необратимо повредить правила обмена.
Прежде чем приступать к исправлению, необходимо оценить масштаб проблемы. В КД 2.1 предусмотрен специальный отчет «Проверка правил». Разберем, как им пользоваться:
Система проанализирует все связи и выведет список ПКО и ПКС, в которых ссылки на метаданные битые или помечены на удаление. Это позволит вам точечно увидеть те места, которые требуют исправления, и убедиться после проведения работ, что красных строк больше не осталось.
Иногда возникает специфическая проблема: вы пытаетесь объединить правила, но окно сравнения пустое, хотя вы точно знаете, что изменения есть. Это происходит из-за несовпадения внутренних идентификаторов (GUID) самих правил. Если правила в двух файлах создавались независимо (путем копирования базы или через «Сохранить как»), КД может не сопоставить их автоматически.
В такой ситуации мы рекомендуем сначала загрузить правила в «чистую» базу КД и использовать инструменты сопоставления по наименованию, либо предварительно выровнять идентификаторы ключевых ПКО, чтобы механизм сравнения смог «зацепиться» за объекты и показать дерево различий.
Подведем итог: красный шрифт — это не приговор, а лишь указание на то, что справочник метаданных внутри КД рассинхронизировался с правилами. Использование «Поиска и замены значений» в сочетании с отчетом по проверке правил позволяет устранить эту проблему максимально быстро и надежно.