← На главную
При сопровождении правил обмена в конфигурации «1С:Конвертация данных 2.1» (КД 2) часто возникает необходимость обновить состав метаданных. Типичный сценарий: база-источник или база-приемник обновилась на новый релиз (например, в «ЗУП» появился новый справочник), и его требуется добавить в существующие правила обмена. Однако при попытке повторной загрузки структуры разработчики нередко сталкиваются с ситуацией, когда существующие правила «краснеют» (теряют сопоставление с объектами), либо платформа выдает критическую ошибку:
Ошибка при попытке вставки записи с неуникальным значением ссылки
Разберем причины возникновения этих проблем и пошагово рассмотрим надежные способы добавления и изменения справочников в КД 2.
Причины ошибок при обновлении структуры метаданных
Чтобы понять правильный алгоритм действий, проанализируем внутренние механизмы выгрузки и загрузки структуры в КД 2:
- Генерация внутренних идентификаторов: Обработки выгрузки структуры метаданных (
MD83Exp.epf или MD82Exp.epf) при формировании XML-файла генерируют уникальные идентификаторы (UUID) для каждого описания объекта, реквизита и табличной части. Если попытаться загрузить один и тот же файл дважды или повторить прерванную загрузку без очистки, КД 2 пытается записать уже существующие UUID в справочники описания метаданных, что приводит к ошибке неуникальной ссылки в таблицах Reference.... - Сброс привязок правил (покраснение правил): При полной перезаписи метаданных существующие ссылки в правилах конвертации объектов (ПКО) и свойств (ПКС) могут потерять соответствие со справочником «Объекты» метаданных КД 2. В результате правила помечаются несинхронизированными (отображаются красным шрифтом).
Способ 1. Выборочная выгрузка и обновление с флагом добавления
Если в конфигурации появился всего один справочник или несколько реквизитов, не обязательно выгружать структуру всей конфигурации целиком. Разберем по шагам, как выгрузить только необходимые изменения:
- Откроем обновленную информационную базу (источник или приемник) в режиме «1С:Предприятие» и запустим обработку выгрузки структуры (
MD83Exp.epf). - На вкладке состава выгрузки снимем отметки со всех объектов и выделим только нужный справочник (а также связанные с ним типы данных, если они используются).
- Сформируем новый файл выгрузки структуры метаданных. Важно: всегда формируйте свежий файл, не используйте старые файлы выгрузки повторно.
- Откроем базу «Конвертация данных 2.1» и перейдем в обработку загрузки структуры метаданных.
- Выберем целевую конфигурацию и обязательно установим флаг «Только добавлять новые объекты» (или выберем режим обновления существующих с сохранением связей).
- Рекомендуется также включить флаг «Выполнять загрузку структуры в одной транзакции». Это гарантирует, что при возникновении любой ошибки база КД 2 откатится к исходному состоянию без повреждения таблиц.
- Выполним загрузку. После завершения новый справочник появится в списке объектов метаданных, а все ранее созданные ПКО и ПКС сохранят свою работоспособность.
Способ 2. Загрузка структуры в новую версию конфигурации с последующей синхронизацией
Этот способ является наиболее безопасным и стандартным при переходе на новые релизы типовых конфигураций. Разберем его последовательность:
- С помощью обработки
MD83Exp.epf выгрузим полную структуру метаданных обновленной базы в файл XML. - В КД 2 запустим обработку загрузки структуры метаданных.
- Вместо перезаписи текущей конфигурации выберем переключатель «Загрузить данные в новую конфигурацию» и укажем наименование с новой версией (например,
ЗарплатаИУправлениеПерсоналом, редакция 3.1.19). - Выполним полную загрузку метаданных.
- Откроем нашу конвертацию (справочник «Конвертации») и в реквизите
Конфигурация-источник или Конфигурация-приемник перевыберем конфигурацию на только что созданную новую версию. - Запустим штатную синхронизацию правил (кнопка «Синхронизация правил» / «Сопоставить объекты»).
- КД 2 сопоставит все существующие ПКО, ПКС и ПКОП по именам объектов и реквизитов. Все написанные алгоритмы и обработчики событий сохранятся, а в составе метаданных появится новый справочник, для которого можно создать новое ПКО.
Способ 3. Ручное добавление объекта метаданных в КД 2
Когда требуется быстро добавить один справочник без запуска обработок выгрузки и работы с тяжелыми файлами структуры, добавим объект вручную:
- В КД 2 перейдем в меню метаданных и откроем справочник «Объекты» для нужной конфигурации.
- Нажмем кнопку создания нового элемента.
- Укажем тип объекта:
СправочникСсылка.... - Введем точное имя справочника (идентификатор метаданных из конфигуратора 1С) и его синоним.
- В подчиненном справочнике «Свойства» создадим базовые стандартные реквизиты (
Код, Наименование, ПометкаУдаления) и необходимые дополнительные реквизиты, указав их типы. - Сохраним объект. Теперь можно переходить в дерево правил конвертации и создавать ПКО для нового справочника.
Что делать, если база КД 2 уже повреждена
Если в процессе некорректной загрузки метаданные затерлись, а правила стали красными, восстановим работу по следующему алгоритму:
- Выгрузим сами правила обмена в файл XML через стандартную кнопку выгрузки правил. Файл правил сохраняет все сопоставления по именам строковых идентификаторов, независимо от состояния ссылок в справочнике «Объекты».
- Если база КД 2 выдает ошибки уникальности ссылок, создадим чистую информационную базу «Конвертация данных 2.1».
- Загрузим в чистую базу актуальные структуры конфигураций источника и приемника.
- Выполним импорт сохраненного XML-файла правил обмена. Конвертация данных автоматически привяжет правила к чистым структурам метаданных.