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

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

Способ обработки

Исходный код

Подробности и детали обработки можно посмотреть в методе:

internal/biz/cargo/integration.go -> RunOnBytes()

Один файл обрабатывается по следующей логике:

  • Извлекается "Тип" и если он известен, то извлекаются элементы из значения поля "Элементы";
  • Элементы нарезаются на небольшие последовательности и за один раз обрабатывается одна такая последовательность;
  • Если идентификатор сущности присутствует, но самой сущности нет, то она будет удалена (применимо для RecordSet-ов);
  • В последовательности для каждого элемента создаётся модель и обогащается соответствующими полями элемента;
  • После обработки последовательности сформированный набор моделей сохраняется в БД одним запросом;
  • Если запись уже существует, то для неё обновляются все поля, какие были получены из элемента;
  • После обработки всех последовательности происходит удаление соответствующих моделей одним запросом, если такие были найдены.