WriteReportings
Версия от 11:12, 19 октября 2021; Долбицын Артём (обсуждение | вклад)
Содержание
Описание
Метод позволяет за один вызов загрузить отчетность в СБИС.
Параметры
- Catalog ! (объект) - объект с массивом вложений
- Вложение (массив) - Массив вложений для загрузки
- Файл (объект) - Объект файл
- Имя (строка) - Имя файла
- ДвоичныеДанные (строка) - Файл в виде двоичных данных( Не допускается использовать одновременно с Строка, ПутьКФайлу, Ссылка )
- Строка (строка) - Файл в виде строки( Не допускается использовать одновременно с ДвоичныеДанные, ПутьКФайлу, Ссылка )
- ПутьКФайлу (строка) - Путь до файла на PC( Не допускается использовать одновременно с ДвоичныеДанные, Строка, Ссылка )
- Ссылка (строка) - Ссылка на файл на СБИС.Диск( Не допускается использовать одновременно с ДвоичныеДанные, Строка, ПутьКФайлу )
- Файл (объект) - Объект файл
- Вложение (массив) - Массив вложений для загрузки
Результат
- QueryId (строка) - Идентификатор запроса в плагин
- Result (объект) - объект
- PK (число) - Первичный ключ загрузки
- Status (число) - Статус загрузки
- Parameters (объект) - Параметры загрузки
- Sourse (число) - Подробнее
- Error (строка) - Содержит текст ошибки, если обработка загрузки завершилась с ошибкой
- LoadedFiles (массив) - Список загруженных файлов
- PK (число) - Идентификатор (первичный ключ) загружаемого файла
- Name (строка) - Имя файла
- Size (строка) - Размер файла в байтах
- Type (число) - Тип загруженного файла Подробнее
- Document (число) - Первичный ключ документа (если есть)
- DocUUID (строка) - Идентификатор документа (если есть)
- DocName (строка) - Имя документа (если есть)
- DocType (строка) - Тип документа из сервиса форматов (если есть)
- DocSubType (строка) - Подтип документа из сервиса форматов (если есть)
- Parameters (объект) - Параметры загружаемого файла
- Info (объект) - Информация о загружаемом файле (заполняется загрузчиком)
- FailedFiles (массив) - Список файлов, которые не удалось загрузить
- PK (число) - Идентификатор (первичный ключ) загружаемого файла
- Name (строка) - Имя файла
- Size (строка) - Размер файла в байтах
- Parameters (объект) - Параметры загружаемого файла
- Info (объект) - Информация о загружаемом файле (заполняется загрузчиком)
- Msg (строка) - Текст ошибки загрузки файла
- UserMsg (строка) - Текст ошибки загрузки файла для информационного сообщения пользователю
- Code (число) - Код ошибки
- Stat (объект) - статистика времени выполнения операции
{ "QueryId": "589c68be-70b6-4b1d-94ce-ca0951d50d81", "Result": { "Error": null, "FailedFiles": [], "ID": "e2634cf5a9fa4bceba654efa7ff5e6cf", "LoadedFiles": [ { "Date": "2021-03-22", "DocName": "Реализация №БП-21 от 22.03.21 СнабАвиа, ООО на сумму 3596.04", "DocSubType": "1115131", "DocType": "СчФктр", "DocUUID": "782b9855-39c9-4cd1-904c-884b3467a190", "Document": 34551, "FileInnerID": 0, "Info": { "DocType": "ДокОтгрИсх", "DocTypeCaption": "Реализация", "OpenMode": 4, "SuccessfulScanReplacement": false, "Дата": "2021-03-22", "ИдентификаторДиск": "ca67c7f7-f4b5-4110-9e01-996270bee958", "Номер": "БП-21", "РП.ДополнительнаяИнформация": [ { "PicsInfo": null, "Дата": null, "ИдО": null, "Количество": 10, "Название": "\"Букварь\", Жукова Н., Эксмо, 2016 г. / 96 стр. (код товара: 2208337) ", "НазваниеЕИ": null, "Номенклатура": null, "Номенклатура.Наименование": null, "Номенклатура.Описание": null, "НоменклатураДокументаРасш.ЕИУ": null, "НоменклатураДокументаРасш.Комментарий": null, "НоменклатураДокументаРасш.НДС": null, "Номер": null, "Примечание": "", "Сумма": 1000, "СуммаЦен": 1000, "СуммаЦенБезНДС": null, "Цена": 100, "ЦенаБезНДС": null }, { "PicsInfo": null, "Дата": null, "ИдО": null, "Количество": 11, "Название": "Номенклатура с ® ", "НазваниеЕИ": null, "Номенклатура": null, "Номенклатура.Наименование": null, "Номенклатура.Описание": null, "НоменклатураДокументаРасш.ЕИУ": null, "НоменклатураДокументаРасш.Комментарий": null, "НоменклатураДокументаРасш.НДС": null, "Номер": null, "Примечание": "", "Сумма": 2552, "СуммаЦен": 2552, "СуммаЦенБезНДС": null, "Цена": 232, "ЦенаБезНДС": null }, { "PicsInfo": null, "Дата": null, "ИдО": null, "Количество": 4, "Название": "Товар?*%:?*;?:%№%\";)?+(+_ ", "НазваниеЕИ": null, "Номенклатура": null, "Номенклатура.Наименование": null, "Номенклатура.Описание": null, "НоменклатураДокументаРасш.ЕИУ": null, "НоменклатураДокументаРасш.Комментарий": null, "НоменклатураДокументаРасш.НДС": null, "Номер": null, "Примечание": "", "Сумма": 44.04, "СуммаЦен": 44.04, "СуммаЦенБезНДС": null, "Цена": 11.01, "ЦенаБезНДС": null } ], "РП.ОсновнаяИнформация": { "Валюта": "", "Веха": null, "Заголовок1": { "Адрес": null, "Геометка": null, "ИдО": 176, "Название": "СнабАвиа", "Тип": 0 }, "Заголовок2": null, "Заголовок3": null, "Заголовок4": { "ИдО": null, "Название": null, "Тип": null }, "Комментарий1": "", "Комментарий2": "ООО ВинСтек", "Комментарий3": null, "Комментарий4": null, "Комментарий5": null, "Комментарий6": null, "КомментарийЗаголовка": null, "КомментарийОтветственного": null, "НастройкиОтображения": {}, "НашаОрганизация": { "Голова": "ВинСтек", "Филиал": "" }, "Регламент": { "Название": "Реализация" }, "Сотрудник": [], "Срок": null, "Сумма": 3596.04 } }, "Name": "ON_NSCHFDOPPR___20210326_f25268e5-803a-407e-9ba5-0950ba405a3f.xml", "PK": 12321043, "Parameters": { "DocUUID": "782b9855-39c9-4cd1-904c-884b3467a190", "IsLoadingInto": false, "IsNeedFilePrepare": false, "ИдентификаторДискВерсияДокумента": "ca67c7f7-f4b5-4110-9e01-996270bee958_e34d6e3d-8f4f-49cd-a752-a2587e2b6034", "ИдентификаторДискДокумент": "ca67c7f7-f4b5-4110-9e01-996270bee958", "ТипРеестра": "РеестрЭО" }, "ShortState": 0, "Size": 4388, "Type": 0 } ], "PK": 6840569, "Parameters": { "Sourse": 0 }, "Status": 4 }, "Stat": { "OnUploadingCreate": { "ExtSdk2.OnUploadingCreate": { "count": 1, "time": 19 } } } }
Алгоритм работы
- Принимаем на вход JSON объект объект Каталог с массивом вложений.
- Если требуется загрузка файлов на СБИС.Диск( Параметр Ссылка проставлен не во всех вложениях ). Если все ссылки изначально проставлены, то сразу переход к п.3
- Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
- В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error". Оно содержит QueryID вызываемого метода и ExtException, сериализованные в строку( См. #Исключения №2 ). Обработка вложений плагином немедленно завершается.
- Загружаем переданные файлы на СБИС.Диск и проставляем ссылки. Сообщаем пользователю о начале асинхронной загрузки файлов ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она обозначает, что плагин загрузит файлы из вложений на СБИС.Диск и проставит недостающие ссылки в соответствующий объект Файл. Во время проставления ссылок возможны следующее событие от плагина:
- Загрузка отчетности в СБИС
- Если во всех вложениях ссылки уже были проставлены, то сообщаем пользователю о начале загрузки файлов в СБИС ошибкой метода вида ExtException с кодом 308 сериализованную в строку, где в detail лежит текст "#ASYNC"( См. #Исключения №1 ). Она означает, что необходимо ожидать событие загрузки отчетности в СБИС.
- Если во вложениях ссылки проставлялись плагином, то вызываем метод Uploading.Create и ожидаем событие окончания загрузки.
- При получении события окончания загрузки вызываем метод Uploading.GetResult передав идентификатор загрузки из события.
- Разбираем ответ Uploading.GetResult и возвращаем результат работы WriteReportingsEx в виде JSON объекта
- В случае успеха плагин пробрасывает событие с именем "extsdk2.async.complete" возвращает #Результат, сериализованный в строку.
- В случае ошибки плагин пробрасывает событие с именем "extsdk2.async.error"( См. #Исключения №2 ).
Исключения
- Сообщение об ошибке с текстом "#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' } ] } }
- Сообщение extsdk2.async.error об ошибке с QueryId вызываемого метода
{ }
Пример успешного вызова
Запрос
{
}
Ответ
{