Двусторонняя интеграция
Полное описание механизма двустороннего обмена данными между 1С и системой Цифра.
Как работает интеграция
Интеграция работает через REST API. Есть два принципа отправки данных:
- По системе заданий (task) — в обе стороны
- Триггерная отправка изменений — из 1С
- Когда в Цифре происходит событие (создан заказ, изменилась отгрузка и т.д. в зависимости от настройки) — система создаёт задание в очереди.
- 1С со своей стороны регулярно опрашивает сервер Цифры (рекомендуется 1 раз в минуту), забирая новые задания методом check.
- 1С обрабатывает задание и отправляет результат методом changeTaskStatus.
Помимо заданий, 1С может инициировать отправку изменений в Цифру самостоятельно — без ожидания задания из очереди. Это используется для справочников и оперативных данных: при создании или редактировании элемента в 1С расширение сразу вызывает соответствующий метод API Цифры и передаёт изменения.
Благодаря этому данные в Цифре остаются актуальными в реальном времени, даже если Цифра не запрашивала их явно.
Цифра никогда сама не обращается к 1С. Все запросы инициирует сторона 1С: она периодически опрашивает Цифру методом check, забирает задания, отправляет результаты через changeTaskStatus и при необходимости пушит изменения триггерно. Цифра только принимает входящие запросы и отвечает на них.
Это упрощает сетевую настройку: достаточно, чтобы 1С имела исходящий доступ к серверу Цифры.
Жизненный цикл задания
Аутентификация
При создании интеграции в Цифре генерируется уникальный SecretKey. Он передаётся в каждом запросе от 1С как параметр. По нему система идентифицирует, от какого аккаунта и какой интеграции пришёл запрос.
Мониторинг и отладка
Просмотреть какие задания созданы для вашей 1С от Цифры, какие запросы были из 1С в Цифру, какие ответы были получены и другие данные, необходимые для отладки интеграции, вы можете на специальной странице мониторинга:
/get/{SecretKey}
Вместо {SecretKey} подставьте ключ вашей интеграции из настроек в Цифре.
Данные из 1С в Цифру поступают двумя способами: через задания на выгрузку справочников и через триггерные отправки при изменении сущностей.
Задания на выгрузку справочников
При первом подключении интеграции Цифра автоматически создаёт задания на получение всех справочников. 1С получает эти задания через check и должна выгрузить полный справочник по каждому типу.
getCompaniesКонтрагентыgetProductsПродукцияgetSpecificationsСпецификацииgetCarsТранспортные средстваgetDriversВодителиgetContractsДоговораgetInvoicesСчетаТриггерные отправки при изменении сущностей
Помимо первоначальной загрузки, необходимо настроить автоматическую отправку данных из 1С при создании или изменении элементов в справочниках. Это нужно, чтобы данные в Цифре всегда были актуальными.
Связь справочников (Guid)
В разделе справочников в Цифре пользователь может настроить связь между сущностями из Цифры, Завода и 1С.
- В АСУ завода: М400Б В30W10П4F150
- В 1С: БСТ М400БВ30W10П4F150 ГОСТ 7473-2010
Если связь установлена, то в данных, отправляемых в 1С, будет заполнен параметр Guid (идентификатор сущности в 1С) и наименование, соответствующее названию в 1С. Связи работают для:
- Продукции
- Контрагентов
- Транспортных средств
Данные из Цифры в 1С передаются через систему заданий. 1С опрашивает сервер и получает задания, которые нужно выполнить.
При вызове check задания выдаются в определённой последовательности:
- Сначала: задания на получение данных из 1С (
getCompanies,getProductsи т.д.). - Затем: задания на создание зависимых сущностей в 1С. Если контрагент, участвующий в заказе, не имеет Guid в 1С — сначала придёт
createCompany. Аналогично для договоров (createContract) и ТС (createCar). - После: задания на создание реализаций или заказов (
createApplication/createOrder).
Система автоматически проверяет зависимости. Если заказ содержит нового контрагента, которого ещё нет в 1С, — сначала будет создано задание createCompany, и только после его выполнения будет доступен заказ.
Создание сущностей в 1С
Создание реализации (отгрузки).
Создание заказа целиком.
Создание контрагента.
Создание договора.
Создание транспортного средства.
Выгрузка справочников из 1С
Выгрузка справочника контрагентов.
Выгрузка справочника продукции.
Выгрузка спецификаций.
Выгрузка справочника транспортных средств.
Выгрузка справочника водителей.
Выгрузка справочника договоров.
Выгрузка справочника счетов.
Задания createApplication и createOrder создаются автоматически на основе событий в системе Цифра:
- Создание отгрузки (MixOrder) — при создании подтверждённой отгрузки
- Изменение статуса отгрузки — при изменении статуса, подтверждения или данных отгрузки
- Создание заказа (MixOrderGroup) — при создании заказа
- Изменение заказа — при изменении статуса или при изменении данных заказа
Отправка задания зависит от настройки «Когда создавать задание на реализацию» (см. вкладку «Настройки»).
Настройки задаются в Цифре: Настройки → Интеграции → 1С. При создании интеграции генерируется уникальный Ключ и задаются следующие параметры:
Параметры интеграции
createApplication. Каждый рейс миксера — отдельная реализация в 1С.
createOrder на весь заказ целиком.
done). Данные уходят в 1С по мере выполнения каждого рейса.
Как настройки влияют на создание заданий
Три характерных сценария, показывающих взаимодействие настроек «Способ добавления реализации» и «Когда создавать задание на реализацию».
Способ добавления реализации: По каждой отгрузке, без заказа
Когда создавать задание: По завершению каждой отгрузки
Заказ на 5 миксеров. Каждый раз, когда отгрузка переходит в статус done, в очередь попадает отдельное задание createApplication с данными по этой конкретной отгрузке.
Способ добавления реализации: С объединением в заказы
Когда создавать задание: По завершению заказа
Заказ на 5 миксеров. Задание createOrder создаётся один раз — когда весь заказ получает статус «Завершён». В задании будут данные обо всех отгрузках заказа.
Способ добавления реализации: По каждой отгрузке, без заказа
Когда создавать задание: При любых изменениях
При любом изменении заказа или создании/изменении отгрузки — создаётся задание createApplication для каждой подтверждённой отгрузки. Данные в 1С актуальны в реальном времени, но заданий будет много.