Механизм асинхронного получения данных предназначен для создания API, позволяющих запросить и получить из приложения 1С данные, которые еще не существуют в приложении.
Для разработчика этот механизм позволяет не отвлекаться на механику транспорта. На вход прикладной разработчик получает идентификатор обработчика и двоичные данные, которые разбирает и формирует нужные данные в ответ. Если разработчику нужно получить асинхронно еще какие-то данные, то он может воспользоваться функцией паузы, также реализованной программном интерфейсе БТС.
Обработка для эмуляции асинхронного получения данных: АсинхронноеПолучениеДанных.epf
В механизме не используется ролевая модель платформы 1C:Предприятие, по этому данный транспорт может использоваться только в направлении "Внешняя система" → "Сервис 1С:Фреш", где пользователь , под которым инициируется получение данных является служебным, представляющим эту внешнюю систему, а не конкретного человека. При этом разработчик прикладного решения может реализовать свою собственную ролевую модель.
Схема работы
- Внешний сервис передает параметры получения данных в приложение 1С через сервис DataTransfer запросом POST в объектное хранилище асинхронного получения данных - async. В качестве id указывается идентификатор данных.
- Параметры сохраняются в файловом хранилище и id настроек и id данных передаются в задание очереди.
- Создается задание очереди.
- В качестве результата на запрос возвращает идентификатор задания очереди.
- В задании очереди выполняется обработчик формирования данных по переданным параметрам. Результаты помещаются в файловое хранилище.
- Внешний сервис периодически опрашивает приложение 1С по идентификатору задания очереди и получает ответ, что данные еще не сформированы (код 10202), и нужно подождать, или что данные сформированы (код 10200). В результате передается id файла.
- Внешний сервис получает запрошенные данные.
Программный интерфейс подсистемы
Методы программного интерфейса
Расположены в общем модуле АсинхронноеПолучениеДанных.
Функция НовыйОписаниеВозвращаемыхДанных
Возвращает новую структуру описания возвращаемых данных. Может использоваться при встраивании подсистемы для подготовки структуры описания отчета для метода АсинхронноеПолучениеДанныхПереопределяемый.УстановитьДоступныеВозвращаемыеДанные.
Возвращаемое значение:
- Структура - описание отчета:
- МодульМенеджер - ОбщийМодуль, МодульМенеджераОбъекта - модуль менеджера модуль менеджера получения данных, из которого будет вызван метод ВозвращаемыеДанные .
- Наименование - Строка - наименование возвращаемых данных.
- Описание - Строка - подробное описание возвращаемых данных.
- ТипыРезультата - Массив из Строка - типы возвращаемых данных.
Функция ДоступныеВозвращаемыеДанные
Возвращает перечень доступных данных.
Возвращаемое значение:
- Соответствие - перечень доступных возвращаемых данных.
- Ключ - идентификатор данных
- Значение - Структура - описание данных(см. АсинхронноеПолучениеДанных.НовыйОписаниеВозвращаемыхДанных)
Переопределяемые методы программного интерфейса
Расположены в общем модуле АсинхронноеПолучениеДанныхПереопределяемый.
Процедура АвторизоватьЗапрос
Вызывается при первичной обработке входящего запроса.
Позволяет выполнить прикладную логику, связанную с валидацией входящего запроса и при необходимости отказать в обработке запроса.
Метод должен использоваться, если прикладной разработчик реализует собственную ролевую модель доступа к данным.
Параметры:
- ИдентификаторДанных - Строка - идентификатор данных. Может быть переопределено при обработке. Указывается в качестве имени файла, возвращаемом в результате.
- Параметры - ДвоичныеДанные - переданные параметры получения данных.
- Отказ - Булево - Возвращаемый параметр. Признак отказа в авторизации. При отказе в авторизации устанавливать в Отказ = Истина.
- СообщениеОбОшибке - Строка - Возвращаемый параметр. Текст сообщения об ошибке при отказе в авторизации.
Процедура УстановитьДоступныеВозвращаемыеДанные
Вызывается при формировании списка доступных отчетов и при получении данных отчета. Определяет список отчетов, подключенных к подсистеме.
Параметры:
- ДоступныеВозвращаемыеДанные - Соответствие - с полями:
- Ключ - идентификатор данных
- Значение - Структура - описание данных (см. АсинхронноеПолучениеДанных.НовыйОписаниеВозвращаемыхДанных)
Методы, возвращающие стандартные кодов возвратов по имени метода
Предполагается использование при формировании ответов при подготовке данных в прикладных объектах.
Методы находятся в общем модуле АсинхронноеПолучениеДанныхСловарь.
- КодВозвратаОшибкаДанных
- КодВозвратаВнутренняяОшибка
- КодВозвратаВыполненоСПредупреждениями
- КодВозвратаВыполнено
- КодВозвратаНеНайдено
Возвращаемое значение
- Число - стандартный код возврата по имени метода
Методы, возвращающие типы файлов возвращаемых данных
Методы предполагается использовать при подготовке данных в прикладных решениях для формирования имени файлов результатов и для использования в условиях.
Методы находятся в общем модуле АсинхронноеПолучениеДанныхСловарь.
- ТипJSON
- ТипXLSX
- ТипPDF
Реализация программного интерфейса в прикладной конфигурации
Подключение обработчиков получения данных к подсистеме реализуется 2-мя методами.
Процедура УстановитьДоступныеВозвращаемыеДанные
Заполняет перечень доступных возвращаемых данных. Процедура должна вызываться из переопределяемого модуля АсинхронноеПолучениеДанныхПереопределяемый.УстановитьДоступныеВозвращаемыеДанные.
Параметры:
- ДоступныеВозвращаемыеДанные - Соответствие - с полями:
- Ключ - идентификатор данных
- Значение - Структура - описание данных (см. АсинхронноеПолучениеДанных.НовыйОписаниеВозвращаемыхДанных)
Функция ВозвращаемыеДанные
Возвращает данные по идентификатору данных
Параметры:
- ИдентификаторДанных - Строка - идентификатор данных. Указывается в качестве имени файла, возвращаемом в результате. Может быть переопределен.
- Параметры - ДвоичныеДанные - переданные параметры получения данных.
КодВозврата - Число - код возврата обработчика получения данных (по умолчанию - 10200).
Ошибка - Булево - признак ошибки (по умолчанию - Ложь)
СообщениеОбОшибке - Строка - подробности ошибки (по умолчанию не заполнено).
Возвращаемое значение:
- ДвоичныеДанные - возвращаемые данные.
Логика по разбору параметров и формированию возвращаемых данных остается за прикладным разработчиком.