Как быстро освоить 1С:Конвертация данных 2.1 и начать создавать правила обмена с нуля?

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

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

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

Понимание архитектуры КД 2.1: метаданные против данных

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

Процесс разработки всегда выглядит так:

  1. Выгружаем структуру базы-Источника (откуда берем данные) и базы-Приемника (куда переносим данные) в виде XML-файлов.
  2. Загружаем эти структуры в базу КД 2.1.
  3. Настраиваем правила сопоставления объектов внутри КД 2.1 и сохраняем их в XML-файл правил обмена.
  4. В рабочей базе-Источнике запускаем универсальную обработку обмена, считываем файл правил и выгружаем реальные данные в XML-файл данных.
  5. В рабочей базе-Приемнике с помощью той же обработки загружаем этот XML-файл данных.

Теперь рассмотрим каждый из этих шагов во всех деталях.

Шаг 1. Выгрузка структуры метаданных баз

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

Выясним, какую обработку использовать в зависимости от вашей платформы:

Выполним выгрузку по шагам:

  1. Откроем базу-Источник в режиме «1С:Предприятие».
  2. Через меню «Файл» — «Открыть» запустим обработку MD83Exp.epf.
  3. В открывшейся форме укажем имя файла, куда запишется структура (например, Source_meta.xml).
  4. Убедимся, что установлены флаги выгрузки необходимых объектов (справочники, документы, перечисления). Флаги выгрузки движений регистров и табличных частей можно оставить по умолчанию.
  5. Нажмем кнопку «Выгрузить».
  6. Повторим всю процедуру в базе-Приемнике, сохранив структуру в файл Receiver_meta.xml.

Шаг 2. Загрузка структур метаданных в КД 2.1

Теперь откроем саму информационную базу «Конвертация данных 2.1». Нам необходимо импортировать только что полученные файлы XML.

Разберем порядок загрузки структур:

  1. В интерфейсе КД 2.1 перейдем в раздел «Загрузка структуры метаданных».
  2. Укажем путь к файлу Source_meta.xml. Программа предложит создать новую конфигурацию в списке. Назовем ее, например, «НашаТорговля». Нажмем кнопку «Выполнить загрузку».
  3. Повторим процесс для файла Receiver_meta.xml, создав конфигурацию-приемник, например, «НашаБухгалтерия».

После этого КД 2.1 полностью готова к проектированию правил. Она знает точные типы данных, имена реквизитов и табличных частей обеих баз.

Шаг 3. Проектирование правил конвертации (ПКО, ПКС, ПВД)

Создадим новую настройку правил обмена («Конвертацию»), выбрав в качестве источника «НашаТорговля», а в качестве приемника — «НашаБухгалтерия». Вся дальнейшая настройка строится на трех ключевых понятиях. Разберем их подробно.

1. ПКО — Правила конвертации объектов

ПКО определяют, как конкретный тип объекта источника превращается в объект приемника. Например, нам нужно перенести справочник Контрагенты из источника в аналогичный справочник в приемнике. Мы создаем ПКО, где указываем объект-источник и объект-приемник.

2. ПКС — Правила конвертации свойств

Внутри каждого ПКО настраиваются правила для его реквизитов (свойств). КД 2.1 предлагает удобный инструмент автоматического сопоставления свойств по именам. Мы можем сопоставить реквизит ИНН источника с реквизитом ИНН приемника.

Критически важный момент — Поля поиска. При загрузке данных в приемник система должна понять: существует ли уже такой объект в базе или нужно создать новый? Для этого в ПКС для ключевых реквизитов необходимо установить флаг «Поиск». Например, для контрагентов разумно настроить поиск по ИНН и КПП, либо по Коду, либо по Уникальному Идентификатору (UUID).

3. ПВД — Правила выгрузки данных

Многие новички совершают ошибку: создают ПКО и ПКС, запускают обмен, но файлы данных оказываются пустыми. Почему так происходит? Дело в том, что системе нужно дать команду — с чего именно начинать выгрузку. Эту роль выполняют ПВД.

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

Шаг 4. Использование обработчиков событий и написание кода

Когда простого сопоставления «свойство-в-свойство» недостаточно, на сцену выходят обработчики событий КД 2.1. Это участки кода на стандартном языке 1С, которые выполняются на разных этапах выгрузки и загрузки данных.

Рассмотрим популярные практические задачи и примеры их решения.

Задача 1: Исключение помеченных на удаление объектов при выгрузке

Часто требуется не переносить «мусорные» элементы справочников или документов. Для этого откроем ПКО нужного объекта, перейдем на вкладку «Обработчики событий» и найдем событие ПередВыгрузкой. Напишем следующий код:


Если Источник.ПометкаУдаления Тогда
    Отказ = Истина;
КонецЕсли;

Переменная Отказ предопределена в КД 2.1. Если присвоить ей значение Истина, система пропустит выгрузку текущего объекта и перейдет к следующему.

Задача 2: Передача произвольного значения, отсутствующего в источнике

Представим ситуацию: в базе-приемнике у справочника Номенклатура есть обязательный реквизит ВидНоменклатуры, а в базе-источнике такого реквизита нет вообще, либо логика его заполнения отличается. Мы можем заполнить его значение «на лету» прямо в коде ПКС.

Создадим ПКС для свойства ВидНоменклатуры. Источник оставим пустым. В обработчике события ПередВыгрузкой для данного ПКС напишем:


// Зададим значение программно
Если Источник.Услуга Тогда
    Значение = "Услуги";
Иначе
    Значение = "Товары";
КонецЕсли;

Переменная Значение вернет результат работы алгоритма и запишет его в XML-файл обмена для последующей загрузки в приемник.

Задача 3: Проверка дублей по ИНН при загрузке

При загрузке контрагентов мы хотим убедиться, что не создаем дубли по ИНН. Откроем ПКО контрагентов, найдем событие ПоляПоиска. Этот обработчик позволяет переопределить стандартный поиск платформы:


// Проверим, заполнен ли ИНН для поиска
Если СвойстваПоиска["ИНН"] <> Неопределено Тогда
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   Контрагенты.Ссылка КАК Ссылка
        |ИЗ
        |   Справочник.Контрагенты КАК Контрагенты
        |ГДЕ
        |   Контрагенты.ИНН = &ИНН";
    
    Запрос.УстановитьПараметр("ИНН", СвойстваПоиска["ИНН"]);
    РезультатЗапроса = Запрос.Выполнить();
    
    Если Не РезультатЗапроса.Пустой() Тогда
        Выборка = РезультатЗапроса.Выбрать();
        Выборка.Следующий();
        СсылкаНаОбъект = Выборка.Ссылка; // Возвращаем найденную ссылку
        ПрекратитьПоиск = Истина;
    КонецЕсли;
КонецЕсли;

Шаг 5. Выгрузка и загрузка данных на практике

После настройки всех правил сохраним их в КД 2.1 с помощью кнопки «Сохранить правила» в файл Rules.xml.

Теперь выполним перенос данных между рабочими базами:

  1. Откроем базу-Источник в режиме «1С:Предприятие».
  2. Запустим обработку V8Exchan83.epf (Универсальный обмен данными в формате XML).
  3. На вкладке «Выгрузка данных» укажем путь к нашему файлу правил Rules.xml и имя файла данных, который будет создан (например, Data.xml).
  4. Нажмем «Прочитать правила обмена». В появившемся дереве объектов выберем галочками те ПВД, которые мы хотим выгрузить. Нажмем кнопку «Выгрузить данные».
  5. Перейдем в базу-Приемник. Откроем ту же обработку V8Exchan83.epf на вкладке «Загрузка данных».
  6. Укажем путь к файлу данных Data.xml и нажмем кнопку «Загрузить данные». Обмен завершен!

Как быстро освоить КД 2.1 без ИТС и книг?

Если у вас нет доступа к официальному порталу ИТС или бумажным руководствам, используйте три мощных и абсолютно бесплатных инструмента, которые всегда находятся под рукой.

1. Встроенный интерактивный помощник

Многие разработчики не знают, что внутри самой КД 2.1 заложена исчерпывающая база знаний по всем обработчикам событий. Когда вы открываете форму написания кода для любого события (например, ПриЗагрузке или ПослеВыгрузки), обратите внимание на кнопку «Информация по обработчикам» в нижней или верхней части окна.

При нажатии на нее откроется детальное описание текущего контекста выполнения кода: какие локальные переменные вам доступны, какие свойства можно менять (например, РежимЗаписи, ИмяПКО, Направление, Отказ) и подробные примеры работы с ними. Это исключает необходимость заучивания синтаксиса наизусть.

2. Демонстрационная база Конвертации данных

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

В демо-базе содержатся готовые, настроенные примеры правил для решения самых популярных и сложных задач интеграции:

Проанализируйте, как эти задачи решены профессиональными разработчиками методического отдела 1С. Скопируйте нужные фрагменты кода и адаптируйте их под свои нужды.

3. Анализ типовых правил 1С

Отличный способ обучения — загрузить в свою базу КД 2.1 готовые правила обмена между типовыми конфигурациями от 1С (например, правила обмена между «Управление торговлей» и «Бухгалтерия предприятия»). Найти файлы этих правил (обычно они называются ExchangeRules.xml) можно в каталогах шаблонов обновлений соответствующих конфигураций. Изучение реального, промышленного кода правил обмена даст вам колоссальный опыт и понимание лучших практик разработки.

← На главную