Перейти к содержанию

Структура пакетов

Все сообщения DataHUB передаются в едином JSON-формате. Конверт (envelope) — внешняя обёртка с метаданными сообщения. Тело (body) — прикладные данные конкретного класса сообщения.

Конверт

{
  "Id": "b3d2af76-e80a-44cc-bae7-fa95f49cd75a",
  "Type": "DATA",
  "ClassId": "Catalog_Контрагенты",
  "CreationTime": "2026-02-15T12:34:02",
  "Properties": "",
  "Source": "e7b6294f-e4e1-4151-988d-0806e8922507",
  "Body": { ... }
}
Поле Тип Описание
Id UUID Уникальный идентификатор сообщения; используется как ackId при подтверждении
Type String Тип сообщения; в текущей версии всегда "DATA"
ClassId String Класс сообщения, определяет схему тела и маршрутизацию
CreationTime String Момент формирования в ISO 8601: "2026-02-15T12:34:02"
Properties String Зарезервировано; передаётся как пустая строка
Source UUID SystemID системы-отправителя в DataHUB
Body Object Прикладные данные; структура определяется классом сообщения

Тело сообщения

Тело не имеет фиксированной схемы — её задаёт класс сообщения. Обязательный элемент тела — массив Id, содержащий идентификаторы объекта во всех известных системах.

{
  "Id": [
    {
      "SystemID": "85c5fa29-fb01-11f0-a12b-000c291cb18c",
      "SystemName": "ERP",
      "EntityID": "aadc15df-7b9a-11ee-a113-000c291cb18c"
    },
    {
      "SystemID": "4b56c685-fbb2-11f0-9fb7-387a0ea57fd4",
      "SystemName": "Bitrix:CRM",
      "EntityID": "3905ab28-fc66-11f0-9fb7-387a0ea57fd4"
    }
  ],
  "Наименование": "ООО Ромашка",
  "ИНН": "7700000000"
}

Каждый элемент массива Id:

Поле Описание
SystemID UUID системы в DataHUB; используется для поиска в таблице идентификаторов
SystemName Имя системы (для диагностики)
EntityID Внутренний идентификатор объекта в этой системе

Правила формирования

Id сообщения генерируется системой-отправителем как UUID v4. Уникальность гарантируется отправителем.

CreationTime — момент формирования конверта, не момент изменения бизнес-объекта.

Source — SystemID из справочника «Интегрируемые системы» для записи «Эта база». Шина использует его для маршрутизации и исключения доставки сообщения обратно отправителю.

Body.Id формируется из таблицы идентификаторов: включает все известные пары (система → EntityID) для данного объекта. Чем больше систем участвовало в обмене, тем длиннее массив.

Ссылки на другие объекты

Поля тела, содержащие ссылку на связанный объект, передаются как вложенный массив идентификаторов той же структуры:

{
  "Id": [...],
  "Наименование": "Заказ №123",
  "Контрагент": [
    {
      "SystemID": "85c5fa29-...",
      "SystemName": "ERP",
      "EntityID": "aadc15df-..."
    }
  ]
}

Получатель разрешает ссылку через таблицу идентификаторов так же, как основной объект.

Типы данных

Тип Формат в JSON
Дата/Время Строка ISO 8601: "2026-02-15T12:34:02"
UUID Строка в формате "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
Булево true / false
Число Число JSON
Строка Строка JSON
Ссылка на объект Массив [{SystemID, SystemName, EntityID}]