Схема работы оповещений

  1. При изменении данных приложение 1С отправляет оповещение во внешний сервис 
  2. Внешний сервис получает изменения
  3. Внешний сервис подтверждает получение и успешную обработку изменений

Запросы выполняются парами POST → PUT или GET → GET. Первый запрос открывает сессию передачи/получения данных с авторизацией. Второй запрос выполняет непосредственную передачу/получение данных. Пары запросов должны выполняться в одном соединении.

Внешнее
приложение
Внешнее приложение
Приложение
в облаке1С:Фреш
Приложение в облаке1С:Фреш
Транспорт
/hs/dt/storage/
Транспорт /hs/dt/storage/
Файловое
хранилище
Файловое...
Данные пользователя
Данные пользователя
Изменения
Изменения
files/{id}
files/{id}
integration/confirm
integration/confirm
GET → GET
GET → GET
POST → PUT
 
POST...
Очистка информации
по изменениям
Очистка информации...
Обработчик
подтверждения
Обработчик подтверждения
1 Оповещение
1 Оповещение
3 Подтверждение
3 Подтверждение
Оповещение об изменении
Оповещение об изменении
2 Получение
2 Получение
Подготовка
данных
Подготовка...
Облачная подсистема
Облачная подсистема
Прикладное решение
Прикладное решение
 Оповещение об изменении (POST) 
 Оповещение об изменении (POST) 
Запрос
данных
Запрос...
Обработчик
внешнего
приложения
Обработчиквнешнегоприложения...
Text is not SVG - cannot display

Описание процесса работы с оповещениями

Возможны различные варианты авторизации и отправки оповещений во внешнюю систему, например:

  1. Отправка данных на анонимный сервис
  2. Подключение с помощью логина и пароля
  3. Подключение с помощью логина, пароля и клиентского сертификата.
  4. Отправляемые данные могут быть подписаны секретным словом с помощью алгоритма HMACSHA-256. Секретное слово передается в настройки учетной системы.
  5. Различные комбинации вышеописанных вариантов.

Возможность отправки уведомлений, а также способ отправки определяется в настройках учетной системы.

Формат оповещения

Оповещение отправляется в виде JSON со следующими полями:

  • url - Строка - Адрес (URL) для скачивания файла данных
  • tenant  - Число- Номер приложения (области)
  • storage  - Строка - Идентификатор хранилища
  • id  - Строка -Идентификатор файла
  • file - Строка -Идентификатор данных (имя файла)
  • version - Строка -Версия данных
  • handler - Строка -Обработчик

В случае, если данные должны быть подписаны, добавляются поля:

  • sign_order - Строка - Порядок подписания полей
  • sign - Строка - Подпись, полученная функцией HMACSHA-256
Пример отправляемого оповещения
POST https://someservice.com
Content-Type: application/json; charset=utf-8

{
  "url": "https://example.com:443/a/smtl/1/hs/dt/storage/files/fea855ef-4a3c-4d5a-b912-8cdac78ac1a5",
  "tenant": 1,
  "storage": "files",
  "id": "fea855ef-4a3c-4d5a-b912-8cdac78ac1a5",
  "file": "54ff1341-d9c5-11e7-819b-0050568925e0.json",
  "version": "2015273148",
  "handler": "example-sync",
  "sign_order": "url,tenant,storage,id,file,version,handler",
  "sign": "upFB9UfezrPRDvBmA/WYRHqzzQ6u/SMxsenFVZkiYas="
}

В ответ система ожидает ответ 200 OK.

После получения уведомления, предполагается, что внешняя система выгрузит файл из хранилища, обработает его и отправит в приложение запрос на подтверждение получения данных