Интеграция с 1С
Способ обработки
Исходный код
Подробности и детали обработки можно посмотреть в методе:
internal/biz/cargo/integration.go -> RunOnBytes()
Один файл обрабатывается по следующей логике:
- Извлекается "Тип" и если он известен, то извлекаются элементы из значения поля "Элементы";
- Элементы нарезаются на небольшие последовательности и за один раз обрабатывается одна такая последовательность;
- Если идентификатор сущности присутствует, но самой сущности нет, то она будет удалена (применимо для RecordSet-ов);
- В последовательности для каждого элемента создаётся модель и обогащается соответствующими полями элемента;
- После обработки последовательности сформированный набор моделей сохраняется в БД одним запросом;
- Если запись уже существует, то для неё обновляются все поля, какие были получены из элемента;
- После обработки всех последовательности происходит удаление соответствующих моделей одним запросом, если такие были найдены.