WriteReportings — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 4: Строка 4:
 
== Параметры ==
 
== Параметры ==
  
* {{Шаблон:ApiParam|Catalog|1|объект|[[Каталог|объект Каталог|Объект с массивом вложений и параметрами загрузки]]}}
+
* {{Шаблон:ApiParam|Catalog|1|объект|[[Каталог|объект Каталог]] - объект с массивом вложений и параметрами загрузки}}
 
== Результат ==
 
== Результат ==
  

Версия 14:27, 13 октября 2021

Описание

Метод позволяет за один вызов загрузить отчетность в СБИС.

Параметры

  • Catalog ! (объект) - объект Каталог - объект с массивом вложений и параметрами загрузки

Результат

Алгоритм работы

  1. Принимаем на вход JSON объект объект Каталог с массивом вложений.
  2. Если требуется загрузка файлов на СБИС.Диск( Параметр Ссылка проставлен не во всех вложениях ). Если все ссылки изначально проставлены, то сразу переход к п.3
    1. Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
      1. В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. #Исключения №3 ). Обработка вложений плагином немедленно завершается.
  3. Загрузка отчетности в СБИС
    1. Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#UPLOAD"( См. #Исключения №2 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС.
    2. Если во вложениях ссылки проставлялись плагином, то вызываем метод Uploading.Create и ожидаем событие окончания загрузки.
  4. При получении события окончания загрузки вызываем метод Uploading.GetResult передав идентификатор загрузки из события.
  5. Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта
    1. В случае успеха плагин пробрасывает событие с именем "extsdk2.reportings.complete" возвращает #Результат, сериализованный в строку.
    2. В случае ошибки плагин пробрасывает событие с именем "extsdk2.reportings.error"( См. #Исключения №3 ).


Исключения

  1. Сообщение об ошибке с текстом "#ASYNC" и кодом 308
    {
      'type': 'Error',
      'queryID': 'b3e310ec-7d85-4026-bfad-228690f38d55',
      'data': {
        'code': 308,
        'detail': '#ASYNC',
        'dump': {},
        'message': 'Ожидайте загрузки документа',
        'method_name': 'ExtSdk2.WriteReportingsEx',
        'stack': [
          {
            'method_name': 'AsyncUploadAttachments b3e310ec-7d85-4026-bfad-228690f38d55'
          }
        ]
      }
    }
  2. Сообщение об ошибке с текстом "#UPLOAD" и кодом 308
    {
      'type': 'Error',
      'queryID': 'b3e310ec-7d85-4026-bfad-228690f38d55',
      'data': {
        'code': 308,
        'detail': '#UPLOAD',
        'dump': {},
        'message': 'Ожидайте загрузки документа',
        'method_name': 'ExtSdk2.WriteReportingsEx',
        'stack': [
          {
            'method_name': 'WriteReportingsEx b3e310ec-7d85-4026-bfad-228690f38d55'
          }
        ]
      }
    }
  3. Сообщение extsdk2.async.error об ошибке с QueryId вызываемого метода
    {
      
    }
  4. Сообщение extsdk2.reportings.error об ошибке с QueryId вызываемого метода
    {
      
    }

Пример успешного вызова

Запрос

{
  
}

Ответ

{