API3 Типовые сценарии работы

Материал из razgovorov.ru
Версия от 13:30, 18 марта 2020; Разговоров Михаил (обсуждение | вклад) (added Category:SBIS API3 using HotCat)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Импорт данных в СБИС

Концепция

Имеем внешнюю систему например 1С, которая хочет загрузить в СБИС список каких то объектов (документов или справочников), например 10 документов реализации и 5 документов перемещений товаров. С точки зрения сервиса интеграции это одна транзакция обмена (документ синхронизации - SyncDoc) в рамках которой требуется из одной системы (1С) экспортировать объекты (объекты синхронизации - SyncObj), а в другую систему (СБИС) эти объекты импортировать. Кроме этого, для успешного выполнения данной операции, в рамках данной транзакции в систему назначения должны быть импортированы все недостающие под объекты, например записи справочников Номенклатуры, складов, контрагентов и т.п. которые присутствуют в импортируемых объектах.

Алгоритм.

1. При помощи метода SyncDoc.Write создается транзакция обмена. С помощью этого же метода в созданный SyncDoc записывается список документов - в нашем случае 10 документов реализации и 5 документов перемещений (либо сразу объекты целиком, либо только идентификаторы этих документов).

2. После этого в цикле вызывается метод SyncDoc.Prepare. Данный метод возвращает список данных которые нужно дозагрузить в транзакцию, чтобы она смогла успешно отработать. В нашем случае метод переберет загруженные 15 документов и сообщит 1С какие объекты требуется до загрузить. В нашем случае например это будет 3 записи номенклатуры, и 1 запись Контрагента. Если бы на шаге 1 в SyncDoc были загружены только идентификаторы документов, то метод запросит данные этих документов, и после их получения дозапросит под объекты. Метод Prepare вызывается до тех пор, пока не будут получены все необходимые данные. Понять это можно когда количество подготовленных записей равно общему количеству записей и нет запрашиваемых объектов.

3. После окончания подготовки данных транзакции синхронизации она запускается на выполнение при помощи метода SyncDoc.Execute. В рамках данной операции данные будут приведены к требования системы назначения и импортированы. Узнать о результатах операции можно ... добавить чтение событий, пока чтение SyncDoc.

4. Работа в обратную сторону аналогична. Код отвечающий за обмен данными с конкретной системой называется коннектором и рекомедуется реализовать следующий набор методов (интерфейс)