Переход с Конвертации данных 2 (КД2) на Конвертацию 3 (КД3): Особенности EnterpriseData
Парадигма обменов: от правил КД2 к формату КД3
Конвертация данных 2.x (КД2) — это классический механизм обмена «точка-точка». Правила (ПКО, ПКС) жестко описывают, как реквизит из Структуры А (База Источник) ложится в реквизит Структуры Б (База Приемник). При изменении метаданных любой из баз, правила обмена (XML-файл) ломаются. Конвертация данных 3.x (КД3) использует парадигму EnterpriseData (Универсальный формат). Обмен идет не между конфигурациями напрямую, а через независимый XDTO-формат. Бизнес-риски при миграции: полная переработка архитектуры интеграций, временная остановка обмена справочниками и документами (например, между УТ и БП).
Сравнение архитектур КД2 и КД3
| Критерий | Конвертация данных 2.0 | Конвертация данных 3.0 (EnterpriseData) |
|---|---|---|
| Формат файла обмена | Собственный XML (формат КД) | Стандартизированный XML/JSON на базе XSD. |
| Тип синхронизации | Точка-Точка (Point-to-Point) | Звезда / Шина данных (ESB) |
| Сложность поддержки при обновлении 1С | Высокая (нужно переписывать правила под новые реквизиты обеих баз) | Низкая (1С обновляет EnterpriseData в типовых базах автоматически). |
| Место выполнения кода | Обработчик 'УниверсальныйОбмен' | Общие модули МенеджерОбменаЧерезУниверсальныйФормат |
Алгоритм перехода и разработки на КД3
Сценарий 1: Принцип конвертации в EnterpriseData
В КД3 вам не нужно знать структуру базы-приемника. Ваша задача — написать правило (в модуле менеджера), которое транслирует ваш документ РеализацияТоваровУслуг в универсальный XDTO объект Документ.Продажа.
// Пример кода обработчика при выгрузке (ПКО) в общем модуле
Процедура ПКО_Документ_РеализацияТоваровУслуг_Выгрузка(ДанныеИБ, ОбменДанными, КомпонентыОбмена)
// ДанныеИБ - это ваш документ
// ОбменДанными - это формируемый объект XDTO EnterpriseData
ОбменДанными.Вставить("Номер", ДанныеИБ.Номер);
ОбменДанными.Вставить("Дата", ДанныеИБ.Дата);
// Контрагент будет выгружен по своим правилам конвертации (ПКО)
ОбменДанными.Вставить("Контрагент", ДанныеИБ.Контрагент);
КонецПроцедурыСценарий 2: Использование Конфигурации "Конвертация данных 3"
- Вы не пишете код выгрузки вручную с нуля. Вы загружаете структуры баз (в формате .xml, выгруженные из конфигуратора) в ИБ «Конвертация данных 3».
- В КД3 вы визуально маппите реквизиты вашей базы на реквизиты Универсального формата (EnterpriseData).
- КД3 генерирует кусок кода (модуль), который вы затем копируете и вставляете в Общий модуль вашей конфигурации 1С (обычно
МенеджерОбменаЧерезУниверсальныйФормат).
Типовые проблемы при переходе (Траблшутинг)
- Ограниченность формата: Если в вашей самописной базе есть специфический документ, его может не быть в типовом формате EnterpriseData (например, специфичный производственный акт). Потребуется расширять XDTO-пакет EnterpriseData (создавать свою версию схемы XSD), что убивает главное преимущество — совместимость с типовыми решениями.
- Раздувание модулей: Весь код правил в КД3 хранится внутри конфигурации (в общих модулях), в отличие от КД2, где правила лежали во внешнем XML. Обновление конфигурации становится сложнее, если правила были сильно изменены (потребуются расширения).
Архитектура «точка-точка» масштабируется катастрофически плохо. Эксперты ITSTM спроектируют корпоративную шину данных (ESB / RabbitMQ / Kafka) и переведут все интеграции 1С на единый EnterpriseData-формат, обеспечив надежность обмена данными.
Частые вопросы (FAQ)
Нужно ли полностью отказаться от КД2?
Нет. Для разовых переносов данных (миграция остатков на старте) или для глубокой интеграции двух узкоспециализированных нетиповых баз КД 2.1 остается самым быстрым и гибким инструментом.
Поддерживает ли КД3 COM-соединение?
Парадигма КД3 (EnterpriseData) подразумевает асинхронный обмен (выгрузили в файл/REST/RabbitMQ -> другая база прочитала). Прямое синхронное COM-соединение не является целевым паттерном для EnterpriseData.
Где хранятся правила обмена в КД3?
Они не хранятся в XML файле, как в КД2. Они генерируются как текст (программный код 1С) и размещаются внутри общих модулей конфигурации (в составе БСП - Подсистема Обмена Данными).
Что такое расширение EnterpriseData?
Если вам нужно передать реквизит 'МойРеквизит', которого нет в официальной схеме 1С, вы создаете свой XDTO-пакет, расширяющий базовую схему. Важно, чтобы приемник также поддерживал эту расширенную схему.