Вопрос выбора инструмента для настройки обмена данными в экосистеме 1С остается одним из самых дискуссионных среди разработчиков. С одной стороны, проверенная годами Конвертация данных 2.1 (КД 2), с другой — современная Конвертация данных 3.0 (КД 3), базирующаяся на универсальном формате EnterpriseData. В рамках данной статьи мы подробно разберем аргументы «за» и «против» каждой версии, проанализируем архитектурные различия и выясним, какие нововведения в КД 3.1 должны упростить жизнь разработчика.
Для начала проанализируем фундаментальную разницу в подходах. КД 2 реализует модель «Точка-Точка». Это означает, что для обмена между двумя конфигурациями мы создаем уникальный набор правил. Если конфигураций становится три, количество наборов правил растет в геометрической прогрессии. Рассмотрим особенности КД 2:
СправочникСсылка.Номенклатура источника с аналогичным объектом приемника.КД 3 работает иначе, используя концепцию «Шины» или «Канонического формата». Здесь источником и приемником выступает не конкретная база, а формат EnterpriseData (на базе XDTO). Разберем преимущества этого подхода:
EnterpriseData, сможет принять эти данные без написания отдельных правил именно для вашей конфигурации.SaaS (облачные сервисы), где доступ к файловой системе ограничен, а обмены идут через Web-сервисы.Многие разработчики отмечают, что настройка КД 3 занимает значительно больше времени. Основная претензия — необходимость постоянно корректировать XDTO-пакеты и работать с кодом правил внутри самих конфигураций, а не в отдельном удобном интерфейсе. Выясним, как упростить этот процесс.
Одной из главных «болей» является передача данных, которые не предусмотрены стандартным форматом EnterpriseData. Для этого в КД 3 предусмотрен механизм AdditionalInfo (Дополнительные сведения). Рассмотрим пример, как можно передать произвольные данные через этот узел:
// Пример заполнения дополнительных данных в обработчике КД 3
// В структуре "ДанныеДляВыгрузки" подготовим информацию,
// которая не помещается в стандартные поля XDTO
ДополнительныеСвойства = Новый Структура;
ДополнительныеСвойства.Вставить("СпецифическийПараметрЛогистики", Источник.ПараметрЛогистики);
ДополнительныеСвойства.Вставить("ВнутреннийКодДоступа", Источник.КодДоступа);
// Помещаем структуру в специальный узел формата
КомпонентыОбмена.ДополнительныеСведения = ДополнительныеСвойства;
Использование AdditionalInfo позволяет избежать трудоемкого процесса расширения XDTO-схемы на каждом этапе, хотя и требует дисциплины при обработке этих данных на стороне приемника.
Многие критические замечания к КД 3 были услышаны разработчиками платформы. В версии 3.1 архитектура хранения данных претерпела значительные изменения. Проанализируем ключевые нововведения:
xml или проекты EDT).EnterpriseData (как в КД 3) в рамках одной информационной базы.Рассмотрим вопрос производительности при больших объемах данных. В КД 2 выгрузка часто идет «одним куском». Если у вас 500 000 элементов справочника, система может столкнуться с нехваткой оперативной памяти при формировании гигантского XML-файла.
В КД 3 обмен по формату EnterpriseData изначально проектировался как пообъектный. Сообщения передаются небольшими порциями (пакетами). Проанализируем ситуацию: если в процессе передачи 99-го пакета из 100 произошел сбой, в КД 3 вам не придется перегружать все данные заново — система зафиксирует успешно принятые объекты и дошлет только недостающие. Это делает обмены более отказоустойчивыми.
Выясним итоговые рекомендации по выбору инструмента в зависимости от ваших задач:
Выбирайте КД 2.1, если:
Выбирайте КД 3.0 / 3.1, если:
EnterpriseData.Рассмотрев все аспекты, можно сказать, что КД 3 — это инвестиция в будущее сопровождение системы. Несмотря на высокий порог входа и «неудобство» начальной настройки, она обеспечивает масштабируемость. В то же время КД 3.1 обещает стать тем самым «идеальным» инструментом, который заберет лучшее от обеих версий, предоставляя разработчику и мощь визуального проектирования, и строгость ссылочной целостности.