Как правильно добавить или обновить справочник в Конвертации данных 2 без потери правил

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

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

Ошибка при попытке вставки записи с неуникальным значением ссылки

Разберем причины возникновения этих проблем и пошагово рассмотрим надежные способы добавления и изменения справочников в КД 2.

Причины ошибок при обновлении структуры метаданных

Чтобы понять правильный алгоритм действий, проанализируем внутренние механизмы выгрузки и загрузки структуры в КД 2:

  1. Генерация внутренних идентификаторов: Обработки выгрузки структуры метаданных (MD83Exp.epf или MD82Exp.epf) при формировании XML-файла генерируют уникальные идентификаторы (UUID) для каждого описания объекта, реквизита и табличной части. Если попытаться загрузить один и тот же файл дважды или повторить прерванную загрузку без очистки, КД 2 пытается записать уже существующие UUID в справочники описания метаданных, что приводит к ошибке неуникальной ссылки в таблицах Reference....
  2. Сброс привязок правил (покраснение правил): При полной перезаписи метаданных существующие ссылки в правилах конвертации объектов (ПКО) и свойств (ПКС) могут потерять соответствие со справочником «Объекты» метаданных КД 2. В результате правила помечаются несинхронизированными (отображаются красным шрифтом).

Способ 1. Выборочная выгрузка и обновление с флагом добавления

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

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

Способ 2. Загрузка структуры в новую версию конфигурации с последующей синхронизацией

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

  1. С помощью обработки MD83Exp.epf выгрузим полную структуру метаданных обновленной базы в файл XML.
  2. В КД 2 запустим обработку загрузки структуры метаданных.
  3. Вместо перезаписи текущей конфигурации выберем переключатель «Загрузить данные в новую конфигурацию» и укажем наименование с новой версией (например, ЗарплатаИУправлениеПерсоналом, редакция 3.1.19).
  4. Выполним полную загрузку метаданных.
  5. Откроем нашу конвертацию (справочник «Конвертации») и в реквизите Конфигурация-источник или Конфигурация-приемник перевыберем конфигурацию на только что созданную новую версию.
  6. Запустим штатную синхронизацию правил (кнопка «Синхронизация правил» / «Сопоставить объекты»).
  7. КД 2 сопоставит все существующие ПКО, ПКС и ПКОП по именам объектов и реквизитов. Все написанные алгоритмы и обработчики событий сохранятся, а в составе метаданных появится новый справочник, для которого можно создать новое ПКО.

Способ 3. Ручное добавление объекта метаданных в КД 2

Когда требуется быстро добавить один справочник без запуска обработок выгрузки и работы с тяжелыми файлами структуры, добавим объект вручную:

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

Что делать, если база КД 2 уже повреждена

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

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