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

Материал из razgovorov.ru
Перейти к: навигация, поиск
Строка 17: Строка 17:
 
## При успешном выполнении данных операций плагин выдает сообщение с итоговым объектом документ. См. "Результат"
 
## При успешном выполнении данных операций плагин выдает сообщение с итоговым объектом документ. См. "Результат"
 
## В случае ошибки плагин выдает соответствующее сообщение.
 
## В случае ошибки плагин выдает соответствующее сообщение.
 +
 +
 +
Асинхронная загрузка файлов в WriteDocumentEx.
 +
# Принимаем на вход [[Документ_-_Объект_ExtSdk2|объект Документ]] с массивом вложений вида объект Файл со свойствами: Путь к файлу, Строка, Двоичные данные, Ссылка, Обработчики. Дополнительные данные по текущим свойствам см.метод [[WriteDocument_-_создает_/_обновляет_Документ_(ExtSdk2)|WriteDocument]].
 +
# Проверяем вложения на наличие Ссылок
 +
## Если во всех вложениях ссылки проставлены, то записываем документ, запускаем его в документооборот и возвращаем "Результат"
 +
## Если во вложениях проставлены не все ссылки, то возвращаем ошибку с текстом "#ASYNC" и кодом 308.  См. "Исключения" №1. Она обозначает, что плагин сам проставит недостающие ссылки. Необходимо подождать.
 +
### Во время данного этапа возможны сообщения от плагина о проценте обработки вложений.
 +
* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
 +
* {{Шаблон:ApiParam|ProcentLoading||строка| Процент загрузки документа}}
 +
### В случае ошибки плагин выдает соответствующее сообщение. Обработка документа плагином немедленно завершается. См. "Исключения" №2
 +
# Данный шаг выполняем при условии, что все ссылки во вложениях проставлены. Документ готов к обработке плагином.
 +
## Записываем документ, запускаем его в документооборот и возвращаем:
 +
* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
 +
* {{Шаблон:ApiParam|Result||объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
 +
* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}}
 +
## В случае ошибки плагин выдает соответствующее сообщение.  См. "Исключения" №2
 
    
 
    
 
== Параметры ==
 
== Параметры ==
 
* {{Шаблон:ApiParam|Document|1|объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
 
* {{Шаблон:ApiParam|Document|1|объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
 
== Результат ==
 
== Результат ==
* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
 
 
* {{Шаблон:ApiParam|Result||объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
 
* {{Шаблон:ApiParam|Result||объект| [[Документ_-_Объект_ExtSdk2|объект Документ]]}}
 
* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}}
 
* {{Шаблон:ApiParam|Stat||объект|[[Stat_-_ExtSdk2_Объект|статистика времени выполнения операции]]}}
 
== Исключения ==
 
== Исключения ==
 +
# Сообщение об ошибке с текстом "#ASYNC" и кодом 308
 +
# Сообщение об ошибке с QueryID
 +
* {{Шаблон:ApiParam|QueryId||строка| Идентификатор запроса в плагин}}
 +
* {{Шаблон:ApiParam|Error||строка| Сообщение об ошибке}}
  
 
== Пример успешного вызова ==
 
== Пример успешного вызова ==

Версия 07:59, 18 февраля 2021

Описание

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

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

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

  1. Принимаем на вход объект Документ с массивом вложений вида объект Файл со свойствами: Путь к файлу, Строка, Двоичные данные, Ссылка, Обработчики. Дополнительные данные по текущим свойствам см.метод WriteDocument.
  2. Проверяем вложения на наличие Ссылок
    1. Если во всех вложениях ссылки проставлены, то:
      1. Выполняем СБИС.ЗаписатьДокумент.
      2. Если необходимо действие для документа, то выполняем: СБИС.ПодготовитьДействие и СБИС.ВыполнитьДействие.
    2. Если во вложениях проставлены не все ссылки, то возвращаем ошибку с текстом "#ASYNC" и кодом 308. Она обозначает, что плагин сам проставит недостающие ссылки. Необходимо подождать.
      1. Во время данного этапа возможны сообщения от плагина о проценте обработки вложений.
      2. В случае ошибки плагин выдает соответствующее сообщение. Обработка документа плагином немедленно завершается.
  3. Данный шаг выполняем при условии, что все ссылки во вложениях проставлены. Документ готов к обработке плагином.
    1. Выполняем запись документа через СБИС.ЗаписатьДокумент.
    2. Если необходимо действие для документа, то выполняем: СБИС.ПодготовитьДействие и СБИС.ВыполнитьДействие.
    3. При успешном выполнении данных операций плагин выдает сообщение с итоговым объектом документ. См. "Результат"
    4. В случае ошибки плагин выдает соответствующее сообщение.


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

  1. Принимаем на вход объект Документ с массивом вложений вида объект Файл со свойствами: Путь к файлу, Строка, Двоичные данные, Ссылка, Обработчики. Дополнительные данные по текущим свойствам см.метод WriteDocument.
  2. Проверяем вложения на наличие Ссылок
    1. Если во всех вложениях ссылки проставлены, то записываем документ, запускаем его в документооборот и возвращаем "Результат"
    2. Если во вложениях проставлены не все ссылки, то возвращаем ошибку с текстом "#ASYNC" и кодом 308. См. "Исключения" №1. Она обозначает, что плагин сам проставит недостающие ссылки. Необходимо подождать.
      1. Во время данного этапа возможны сообщения от плагина о проценте обработки вложений.
  • QueryId (строка) - Идентификатор запроса в плагин
  • ProcentLoading (строка) - Процент загрузки документа
      1. В случае ошибки плагин выдает соответствующее сообщение. Обработка документа плагином немедленно завершается. См. "Исключения" №2
  1. Данный шаг выполняем при условии, что все ссылки во вложениях проставлены. Документ готов к обработке плагином.
    1. Записываем документ, запускаем его в документооборот и возвращаем:
    1. В случае ошибки плагин выдает соответствующее сообщение. См. "Исключения" №2

Параметры

Результат

Исключения

  1. Сообщение об ошибке с текстом "#ASYNC" и кодом 308
  2. Сообщение об ошибке с QueryID
  • QueryId (строка) - Идентификатор запроса в плагин
  • Error (строка) - Сообщение об ошибке

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

Запрос

Ответ