WriteDocumentEx - Расширенный метод создания и отправки документа (ExtSdk2) — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 5: Строка 5:
 
Асинхронная загрузка файлов в WriteDocumentEx
 
Асинхронная загрузка файлов в WriteDocumentEx
  
# Модуль при старте подписывается на события FileLoadera
+
# Если в WriteDocument есть данные подлежащие загрузке на СБИС.Диск, то метод запускает загрузку всех файлов и пробрасывает исключение "#ASYNC и кодом 308"
# Если в WriteDocument есть данные подлежащие загрузке через FileLoader то метод запускает загрузку всех файлов. Кладет в кэш информацию о загрузке и пробрасывает исключение "#ASYNC и кодом 100"<br/>Кэш загрузки документ состоит из двух словарей
+
# Если последнее обновление документа было больше чем секунду назад, то пробрасывается событие в ВО  
#* FileLoaderAttachment[ИдЗагрузки] = {ИдДок, ИндексВложения}
 
#* FileLoaderDocument[ИдДок] - {Документ, Процент загрузки, Последняя дата обновления}
 
# При поступлении события файлоадера по ИдЗагрузки проверяем ждем ли мы загрузку этого файла. Если ждем, то обновляем вложение на документе и общий процент загрузки документа. Если последнее обновление документа было больше чем секунду назад, то пробрасываем событие в ВО  
 
 
#* Объект{
 
#* Объект{
 
#:: { L"QueryId", Идентификатор запроса в плагин },
 
#:: { L"QueryId", Идентификатор запроса в плагин },
 
#:: { L"ProcentLoading", Процент загрузки }
 
#:: { L"ProcentLoading", Процент загрузки }
 
#: }
 
#: }
# Когда вложение полностью загрузилось удаляем из кеша вложений. Если процент по документу 100, кидаем событие окончания с итоговым объектом документ.  
+
# Если документ загружен на 100 процентов, то пробрасывается событие окончания с итоговым объектом документ.  
 
#* Объект{
 
#* Объект{
 
#:: { L"QueryId", Идентификатор запроса в плагин },
 
#:: { L"QueryId", Идентификатор запроса в плагин },
 
#:: { L"ResultDocument", [[Документ_-_Объект_ExtSdk2|объект Документ]]}
 
#:: { L"ResultDocument", [[Документ_-_Объект_ExtSdk2|объект Документ]]}
 
#: }
 
#: }
Если файлоадер вернул ошибку завершаем процесс ошибкой.
+
Если процесс загрузки файлов сгенерировал ошибку, то пробрасывается событие с объектом ошибки
 +
#* Объект{
 +
#:: { L"QueryId", Идентификатор запроса в плагин },
 +
#:: { L"Error", Текст ошибки }
 +
#: }
 
== Параметры ==
 
== Параметры ==
 
* {{Шаблон:ApiParam|Document|1|объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
 
* {{Шаблон:ApiParam|Document|1|объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
Строка 37: Строка 38:
 
<source lang="json">
 
<source lang="json">
 
</source>
 
</source>
==Пример ответа при включенной двухфакторной аутентификации==
 
 
<source lang="json">
 
<source lang="json">
 
</source>
 
</source>
  
 
[[Категория:Методы ExtSdk2]]
 
[[Категория:Методы ExtSdk2]]

Версия 12:44, 15 февраля 2021

Описание

Метод позволяет за один вызов записать и запустить документооборот по документу.

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

Асинхронная загрузка файлов в WriteDocumentEx

  1. Если в WriteDocument есть данные подлежащие загрузке на СБИС.Диск, то метод запускает загрузку всех файлов и пробрасывает исключение "#ASYNC и кодом 308"
  2. Если последнее обновление документа было больше чем секунду назад, то пробрасывается событие в ВО
    • Объект{
    { L"QueryId", Идентификатор запроса в плагин },
    { L"ProcentLoading", Процент загрузки }
    }
  3. Если документ загружен на 100 процентов, то пробрасывается событие окончания с итоговым объектом документ.
    • Объект{
    { L"QueryId", Идентификатор запроса в плагин },
    { L"ResultDocument", объект Документ}
    }

Если процесс загрузки файлов сгенерировал ошибку, то пробрасывается событие с объектом ошибки

    • Объект{
    { L"QueryId", Идентификатор запроса в плагин },
    { L"Error", Текст ошибки }
    }

Параметры

Результат

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

Исключения

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

Запрос

Ответ