Что означает красный шрифт в Конвертации данных 2.1 и как быстро исправить битые ссылки?

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

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

Выясняем причину: почему текст становится красным?

Для начала проанализируем внутреннюю архитектуру КД. В этой конфигурации правила обмена — это не просто текстовые описания, а записи в справочниках, которые имеют жесткие ссылки на другие справочники, содержащие описание метаданных источника и приемника. Когда мы видим красный шрифт, система сигнализирует нам о критической ошибке ссылочной целостности.

Рассмотрим основные ситуации, приводящие к «покраснению»:

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

Способ 1. Профилактика при загрузке метаданных

Разберем, как правильно обновлять структуру конфигурации, чтобы не допустить массового появления битых ссылок. Проанализируем настройки обработки «Загрузка структуры конфигурации».

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

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

Способ 2. Использование обработки «Поиск и замена значений»

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

Посмотрим на шаги выполнения задачи:

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

Способ 3. Групповая обработка с написанием алгоритма

Проанализируем ситуацию, когда объектов слишком много для ручного поиска и замены. В Конвертации данных 2.1 доступна мощная «Групповая обработка справочников и документов» (меню «Операции» — «Обработки»). Мы можем использовать ее для автоматического поиска актуальных метаданных по имени.

Рассмотрим пример логики, которую можно применить в поле «Алгоритм» для выбранных ПКС (Правил конвертации свойств):


// Пример логики для исправления ОбъектПриемник в ПКС
Если Объект.Приемник.ПометкаУдаления Тогда
    ИмяНужногоОбъекта = Объект.Приемник.Имя;
    ВладелецМетаданных = Объект.Приемник.Владелец; // Ссылка на конфигурацию
    
    НовыйОбъектМетаданных = Справочники.Конвертация_Метаданные.НайтиПоНаименованию(ИмяНужногоОбъекта, Истина, , ВладелецМетаданных);
    
    Если ЗначениеЗаполнено(НовыйОбъектМетаданных) И Не НовыйОбъектМетаданных.ПометкаУдаления Тогда
        Объект.Приемник = НовыйОбъектМетаданных;
        Объект.Записать();
    КонецЕсли;
КонецЕсли;

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

Способ 4. Встроенный инструмент «Проверка правил»

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

Система проанализирует все связи и выведет список ПКО и ПКС, в которых ссылки на метаданные битые или помечены на удаление. Это позволит вам точечно увидеть те места, которые требуют исправления, и убедиться после проведения работ, что красных строк больше не осталось.

Что делать, если «Сравнение и объединение» не находит различий?

Иногда возникает специфическая проблема: вы пытаетесь объединить правила, но окно сравнения пустое, хотя вы точно знаете, что изменения есть. Это происходит из-за несовпадения внутренних идентификаторов (GUID) самих правил. Если правила в двух файлах создавались независимо (путем копирования базы или через «Сохранить как»), КД может не сопоставить их автоматически.

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

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

← На главную