Skip to main content

Конвертация данных

Ключевые определения и концепция

EnterpriseData (ED) — универсальный формат обмена данными между конфигурациями 1С на базе технологии XDTO. КД 3.0 — инструмент для настройки правил конвертации между объектами конфигурации и форматом ED.

Главная идея: Обмен происходит не напрямую между конфигурациями, а через промежуточный универсальный формат (ED). Это упрощает поддержку множественных обменов.

Схема: Конфигурация А ↔ Преобразование в/из ED ↔ Файл обмена ↔ Преобразование в/из ED ↔ Конфигурация Б

Сравнение технологий: КД 2.x vs КД 3.0 / ED

КритерийКД 2.x (Классический обмен)КД 3.0 (Обмен через ED)
Основной принципПрямой обмен между двумя конкретными конфигурациямиОбмен каждой конфигурации с универсальным форматом (ED)
Формат/СтандартИспользуется XML с собственными правиламиИспользуется стандартизированный XDTO-пакет (EnterpriseData)
Правила конвертацииНастраиваются для каждой пары конфигурацийНастраиваются один раз для связи "Конфигурация ↔ ED"
Хранение правилВо внешних XML-файлах или в самой конфигурацииВ коде общего модуля внутри конфигурации (МенеджерОбменаЧерезУниверсальныйФормат)
ТребованияМожет работать без БСПОбязательно требует БСП (≥2.2.5) и платформу ≥8.3
ТрудоемкостьНиже, подходит для разовых выгрузокВыше, окупается при постоянных обменах
Результат работыXML-файл правилСгенерированный код на языке 1С
ГибкостьЛегче настроить передачу нестандартных данныхОграничена структурой формата ED
Область примененияРазовые выгрузки, миграции, обмен с устаревшими системамиПостоянные обмены между актуальными типовыми конфигурациями

Технологическая основа: XDTO

XDTO-пакет — это схема данных (аналог XSD), описывающая структуру обмена (формат ED).

  • Пространство имен (URI) — уникальный идентификатор пакета (например, http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6).
  • Тип объекта XDTO — "чертеж" или описание структуры (аналог класса).
  • Объект XDTO — конкретный экземпляр, созданный по "чертежу" (аналог объекта класса).

Фабрика XDTO — объект платформы 1С для работы с XDTO:

  • Создает типизированные объекты XDTO.
  • Обеспечивает преобразование объектов XDTO в XML и обратно.

Пример создания:

URI = "http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.6";
ТипДокумент = ФабрикаXDTO.Тип(URI, "Документ.ЗаказКлиента");
ДокументXDTO = ФабрикаXDTO.Создать(ТипДокумент); // Создан объект XDTO

Компоненты и правила обмена через ED (КД 3.0)

Необходимые компоненты из БСП:

  1. План обмена (СинхронизацияДанныхЧерезУниверсальныйФормат) — для регистрации измененных объектов.
  2. Обработка "Конвертация объектов XDTO" — точка входа для выполнения обмена.
  3. Общие модули (ОбменДаннымиXDTOСервер, ОбменДаннымиПредопределяемый, ОбменДаннымиСобытия) — реализуют логику выгрузки/загрузки и обработку событий.
  4. Подписки на события — для автоматической регистрации объектов к обмену.

Правила конвертации в КД 3.0:

  • ПОД (Правило обработки данных) — головное правило для выборки объектов и определения дальнейшей конвертации.
  • ПКО (Правило конвертации объекта) — сопоставление объекта 1С (документ, справочник) с типом объекта формата ED.
  • ПКС (Правило конвертации свойства) — сопоставление реквизитов объекта 1С с полями в формате ED.
  • ПКПД (Правило конвертации предопределенных данных) — для сопоставления перечислений и предопределенных элементов.
  • ПРО (Правила регистрации объектов, с вер. 3.1) — задают условия, при которых объект регистрируется к выгрузке.

Процессы выгрузки и загрузки данных

Выгрузка:

  1. Отбор объектов: Анализ плана обмена, формирование выборки объектов, зарегистрированных к выгрузке.
  2. Подбор правил: Для каждого объекта выбирается соответствующее ПОД и ПКО.
  3. Конвертация в структуры: Объект 1С и его реквизиты преобразуются во вложенные структуры данных простых типов.
  4. Сериализация в XDTO: На основании структур создаются и заполняются объекты XDTO. Происходит валидация по схеме формата ED.
  5. Запись в XML: Объекты XDTO сериализуются в XML-файл обмена.

Загрузка (обратный процесс):

  1. Чтение XML: Загрузка файла обмена.
  2. Десериализация XDTO: Создание объектов XDTO на основе XML и схемы ED.
  3. Преобразование в структуры: Объекты XDTO преобразуются для удобства обработки.
  4. Поиск правил и конвертация: Подбор ПОД/ПКО и преобразование структур в объекты 1С.
  5. Идентификация и запись: Поиск существующего объекта в ИБ (по умолчанию по UUID) и его сохранение (создание или обновление).

Практические шаги: создание конвертации и настройка обмена

Порядок создания конвертации в КД 3.0:

  1. Подготовка: Платформа ≥8.3, БСП ≥2.2.5.
  2. Загрузка конфигурации: Через обработку MD83Exp.epf выгрузить структуру целевой конфигурации.
  3. Загрузка формата: Импортировать XSD-схему формата ED (обычно EnterpriseData).
  4. Создание конвертации: В КД 3.0 создать новую конвертацию, указав загруженные конфигурацию и формат.
  5. Настройка правил: Создать ПОД, ПКО, ПКС для необходимых объектов.
  6. Генерация кода: Сохранить модуль менеджера обмена и вставить сгенерированный код в общий модуль конфигурации.

Настройка обмена через локальный каталог в 1С:Предприятие:

  1. В Конфигураторе: Настроить план обмена, включить в него нужные объекты, отключить авторегистрацию.
  2. В 1С:Предприятие:
    • Перейти: Администрирование → Настройки синхронизации данных → Полная синхронизация.
    • Выбрать ручную настройку и "Другие каналы связи".
    • Указать локальный или сетевой каталог для файлов обмена.
    • Задать уникальный префикс для базы.
    • Важно: При первой настройке снять флаг "Выполнить отправку данных...".

Преимущества, недостатки и выводы

Преимущества ED / КД 3.0:

  • Стандартизация: Единый формат для обмена между разными конфигурациями.
  • Масштабируемость: Легко добавить нового участника обмена, не перестраивая правила для всех существующих.
  • Упрощенная поддержка: Изменения в конфигурации одного узла не требуют правки правил на других узлах (если формат ED не меняется).
  • Валидация: Встроенная проверка данных на соответствие схеме.

Недостатки ED / КД 3.0:

  • Сложность входа: Высокий порог понимания (XDTO, БСП, новая идеология).
  • Жесткость формата: Сложности с передачей данных, не укладывающихся в стандартную схему ED.
  • Зависимость от БСП: Обязательное использование подсистемы обмена.
  • Версионность: Необходимость следить за сроком поддержки версий формата ED.

Вывод: EnterpriseData и КД 3.0 представляют собой современную, стандартизированную платформу для постоянного обмена данными в экосистеме 1С. Это направление, активно развиваемое компанией "1С". Классический обмен (КД 2.x) сохраняет актуальность для разовых задач, миграций или работы с системами, не поддерживающими новую технологию.

Материалы