WriteDocument - создает / обновляет Документ (ExtSdk2) — различия между версиями
(Новая страница: «== Описание == Создает или обновляет документ в СБИС. Расширенный аналог метода СБИС.Запис…») |
|||
Строка 17: | Строка 17: | ||
== Алгоритм работы == | == Алгоритм работы == | ||
− | # Перебираем все элементы Файл | + | # Перебираем все элементы Файл |
− | # Запускаем непосредственно выполнение команды API | + | ## Подписываем при необходимости |
+ | ## Зашифровываем при необходимости | ||
+ | ## везде где указано ПутьКФайлу или ВнешняяСсылка или размер строк с данными превышает рекомендуемый уровень запускаем параллельную загрузку всех вложений через FileLoader. Дожидаемся окончания загрузки – получили ссылки на СБИС Диск записали из Документ.Вложение.Файл. | ||
+ | # Запускаем непосредственно выполнение команды API СБИС.ЗаписатьДокумент. | ||
== Параметры == | == Параметры == |
Версия 13:27, 10 декабря 2020
Содержание
Описание
Создает или обновляет документ в СБИС. Расширенный аналог метода СБИС.ЗаписатьДокумент. Имеет дополнительные свойства в объекте Документ.
Дополнительные свойства объекта Файл
- ПутьКФайлу (строка) - строка содержащая абсолютный путь до файла. Данный файл будет загружен с диска в качестве вложения. Рекомендуется.
- Строка (строка) - строка содержащая данные файла в UTF-8. Не рекомендуется для файлов более 30 Мб.
- ДвоичныеДанные (строка) - строка в кодировке Bаse64. Используется для отправки содержимого бинарных данных на сервер. Не рекомендуется для файлов более 30 Мб.
- Ссылка (строка) - ссылка на двоичные данные в хранилище СБИС Диск
- Обработчики (массив объектов) - перечень операций которые будут последовательно применены к данным перед их загрузкой.
Одной из самых популярных операций является XSLT, либо преобразование в XML в PDF. Концептуально – пока массив операций не пустой вызывается первая операция из списка (для предотвращения зацикливания установлен лимит на количество операций в 10 шт) - фабрика методов FileHandler[Имя метода]([ОбъектДокумент] [ОбъектФайл], [Параметры метода]) . Фабрика при вызове удаляет первый элемент массива операций. Предполагается, что хандлер может менять ОбъектДокумент, ОбъектФайл в т.ч. может добавлять последующие операции. Пример операций [ {action:“XSL”, param: “имя XSL1”}, {action:“XSL”, param: “имя XSL2”}] – будет вызвано два полседовательных XSL преобразования . Сначала «XSL1» затем XSL2.
Дополнительные свойства объекта Вложение
- ТребуетПодписания (строка Да/Нет) - если указано Да, то вложение будет подписано
- ТребуетШифрования (строка Да/Нет) - если указано Да, то вложение будет зашифровано в отношении всех сертификатов аккаунтов получателя и отправителя
Алгоритм работы
- Перебираем все элементы Файл
- Подписываем при необходимости
- Зашифровываем при необходимости
- везде где указано ПутьКФайлу или ВнешняяСсылка или размер строк с данными превышает рекомендуемый уровень запускаем параллельную загрузку всех вложений через FileLoader. Дожидаемся окончания загрузки – получили ссылки на СБИС Диск записали из Документ.Вложение.Файл.
- Запускаем непосредственно выполнение команды API СБИС.ЗаписатьДокумент.
Параметры
- Document ! (объект) - объект Документ
Результат
Возвращает объект с идентификатором сессии, которую нужно использовать для последующих вызовов.
- Result (объект) - объект Документ
- Stat (объект) - статистика времени выполнения операции