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)
Необходимые компоненты из БСП:
- План обмена (
СинхронизацияДанныхЧерезУниверсальныйФормат) — для регистрации измененных объектов. - Обработка "Конвертация объектов XDTO" — точка входа для выполнения обмена.
- Общие модули (
ОбменДаннымиXDTOСервер,ОбменДаннымиПредопределяемый,ОбменДаннымиСобытия) — реализуют логику выгрузки/загрузки и обработку событий. - Подписки на события — для автоматической регистрации объектов к обмену.
Правила конвертации в КД 3.0:
- ПОД (Правило обработки данных) — головное правило для выборки объектов и определения дальнейшей конвертации.
- ПКО (Правило конвертации объекта) — сопоставление объекта 1С (документ, справочник) с типом объекта формата ED.
- ПКС (Правило конвертации свойства) — сопоставление реквизитов объекта 1С с полями в формате ED.
- ПКПД (Правило конвертации предопределенных данных) — для сопоставления перечислений и предопределенных элементов.
- ПРО (Правила регистрации объектов, с вер. 3.1) — задают условия, при которых объект регистрируется к выгрузке.
Процессы выгрузки и загрузки данных
Выгрузка:
- Отбор объектов: Анализ плана обмена, формирование выборки объектов, зарегистрированных к выгрузке.
- Подбор правил: Для каждого объекта выбирается соответствующее ПОД и ПКО.
- Конвертация в структуры: Объект 1С и его реквизиты преобразуются во вложенные структуры данных простых типов.
- Сериализация в XDTO: На основании структур создаются и заполняются объекты XDTO. Происходит валидация по схеме формата ED.
- Запись в XML: Объекты XDTO сериализуются в XML-файл обмена.
Загрузка (обратный процесс):
- Чтение XML: Загрузка файла обмена.
- Десериализация XDTO: Создание объектов XDTO на основе XML и схемы ED.
- Преобразование в структуры: Объекты XDTO преобразуются для удобства обработки.
- Поиск правил и конвертация: Подбор ПОД/ПКО и преобразование структур в объекты 1С.
- Идентификация и запись: Поиск существующего объекта в ИБ (по умолчанию по UUID) и его сохранение (создание или обновление).
Практические шаги: создание конвертации и настройка обмена
Порядок создания конвертации в КД 3.0:
- Подготовка: Платформа ≥8.3, БСП ≥2.2.5.
- Загрузка конфигурации: Через обработку
MD83Exp.epfвыгрузить структуру целевой конфигурации. - Загрузка формата: Импортировать XSD-схему формата ED (обычно
EnterpriseData). - Создание конвертации: В КД 3.0 создать новую конвертацию, указав загруженные конфигурацию и формат.
- Настройка правил: Создать ПОД, ПКО, ПКС для необходимых объектов.
- Генерация кода: Сохранить модуль менеджера обмена и вставить сгенерированный код в общий модуль конфигурации.
Настройка обмена через локальный каталог в 1С:Предприятие:
- В Конфигураторе: Настроить план обмена, включить в него нужные объекты, отключить авторегистрацию.
- В 1С:Предприятие:
- Перейти: Администрирование → Настройки синхронизации данных → Полная синхронизация.
- Выбрать ручную настройку и "Другие каналы связи".
- Указать локальный или сетевой каталог для файлов обмена.
- Задать уникальный префикс для базы.
- Важно: При первой настройке снять флаг "Выполнить отправку данных...".
Преимущества, недостатки и выводы
Преимущества ED / КД 3.0:
- Стандартизация: Единый формат для обмена между разными конфигурациями.
- Масштабируемость: Легко добавить нового участника обмена, не перестраивая правила для всех существующих.
- Упрощенная поддержка: Изменения в конфигурации одного узла не требуют правки правил на других узлах (если формат ED не меняется).
- Валидация: Встроенная проверка данных на соответствие схеме.
Недостатки ED / КД 3.0:
- Сложность входа: Высокий порог понимания (XDTO, БСП, новая идеология).
- Жесткость формата: Сложности с передачей данных, не укладывающихся в стандартную схему ED.
- Зависимость от БСП: Обязательное использование подсистемы обмена.
- Версионность: Необходимость следить за сроком поддержки версий формата ED.
Вывод: EnterpriseData и КД 3.0 представляют собой современную, стандартизированную платформу для постоянного обмена данными в экосистеме 1С. Это направление, активно развиваемое компанией "1С". Классический обмен (КД 2.x) сохраняет актуальность для разовых задач, миграций или работы с системами, не поддерживающими новую технологию.