1
0
mirror of https://github.com/ones-devguide/dev-rules.git synced 2026-03-10 15:20:45 +02:00
Files
dev-rules/docs/theory/conversion.md
2025-12-19 21:38:00 +07:00

12 KiB

sidebar_position, sidebar_label, title
sidebar_position sidebar_label title
12 Конвертация данных Конвертация данных

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

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) сохраняет актуальность для разовых задач, миграций или работы с системами, не поддерживающими новую технологию.

Материалы