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

Интеграция с 1С

Технические ожидания

Примечание

Следующие технические ожидания важны для корректной работы интеграции.

Любое из нарушений таких ожиданий может привести к ошибкам или неожиданному поведению.

Для корректной работы интеграции есть ряд технических ожиданий:

  • Файлы соответствуют спецификации JSON (что важно — внутри строки кавычки и слеши экранированы, unicode-символы кроме алфавита кодированы в виде \uXXXX);
  • Файлы содержат поле Тип и данные сущностей в поле Элементы;
  • Каждый элемент уникально идентифицируется и всё необходимое для его идентификации содержится в том же файле, что и сам элемент (идентификатор будет записан в колонку cargo_uid соответствующей таблицы);
  • Каждый элемент содержит поля #type и #value;
  • В поле #value содержатся нужные данные элемента;
  • Поле #type содержит тип элемента (который будет записан в колонку cargo_type соответствующей таблицы)
  • Для элементов типа RecordSet:
    • Поле #value содержит Filter и Record;
    • Filter содержит набор элементов для формирования уникального идентификатора;
      • Уникальный идентификатор берётся из значений Value.#value всех элементов из Filter;
      • Все полученные таким образом элементы объединяются с помощью ||, что формирует уникальный идентификатор вида 2018-06-06T00:00:00||9ba8c0be-9d6e-11ed-9f04-0cc47ad98ab0||e0b3d080-cafd-11e4-8131-001e6724f82a
      • Нарушение порядка, количества или содержимого таких полей приведёт к дублированию записей.
    • Поле Record является массивом, но при этом должно содержать только один элемент;
      • Если поле Record содержит множество элементов — обрабатывается только первый;
      • Если поле Record не содержит элементов (является пустым массивом) — элемент со сформированным выше уникальным идентификатором считается удалённым;
  • Если в элементе не найдено ожидаемое поле, то существующее значение (если оно было указано) останется прежним;
  • Изменения типа поля (используемого в интеграции) приведёт к ошибке;
  • Для справочника DocumentObject.ТранспортнаяОперация массив в поле События упорядочен хронологически и порядок событий не изменяется.