ExecuteRequestBatch
Метод ExecuteRequestBatch() выполняет пакетный запрос к базе данных на языке запросов "1С:Предприятие" и возвращает данные в виде массива, в котором содержатся таблицы значений или деревья значений, в заваисимости от типа обхода результатов. Выполнение запроса на стороне 1С происходит через компановщик запроса, в параметре метода возможно передать дополнительные настройки компановки.
Параметры:
Имя | Тип | Описание |
---|---|---|
request | xs:string | Текст запроса на языке запросов "1С:Предприятие". Может включать области разметки для компановщика запросов. |
settings | brom:ExecuteRequest_Settings | Настройки выполнения запроса. В настройках можно указать значения параметров, добавить отборы, сортировки, а также указать дополнительные поля для вывода. Опциональнаый. |
Параметр "settings" позволяет устанавливать настройки, описанные в таблице ниже.
settings/@QueryResultIteration |
Тип обхода результатов запроса. Значение может передаваться в двух языковых версиях. Возможные значения:
|
settings/@IncludeTemporalData | Признак, который указывает необходимость включения промежуточных данных (данных временных таблиц) в результат запроса. |
settings/Field | Дополнительное поле, которое необходимо включить в данные выборки. Может быть указано несколько полей. |
settings/Field/@Key | Путь к данным поля. Указывается в соответствии с разметкой компановщика. |
settings/Field/@Name | Псевдоним поля. Опциональный. |
settings/Filter | Дополнительное условие отбора. Может быть указано несколько условий отбора. |
settings/Filter/@Key | Путь к данным поля, по которому производится отбор. Указывается в соответствии с разметкой компановщика. |
settings/Filter/Value | Значение отбора. Должно иметь тип производный от "brom:ValueBase" и соответствовать типу поля. Для условий отбора вида "ВСписке/НеВСписке" необходимо передавать массив (brom:ValueArray). Для условий отбора вида "ВИерархии/НеВИерархии" можно передавать одно значение или массив значений. |
settings/Filter/@ComparisonType |
Вид сравнения условия отбора. Значение может передаваться в двух языковых версиях. Возможные значения:
Опциональный. По умолчанию - "Равно". |
settings/Sort |
Дополнительная сортировка результатов по определенному полю. Может быть указано несколько полей сортировки. |
settings/Sort/@Key |
Путь к данным поля сортировки. Указывается в соответствии с разметкой компановщика. |
settings/Sort/@Direction |
Направление сортировки. Значение может передаваться в двух языковых версиях. Доступные значения:
Опциональный. По умолчанию - "Возр". |
Возвращаемое значение:
Тип | Описание |
---|---|
производный от brom:ValueDataSet | Результат выполнения запроса. При прямом обходе возвращается "ТаблицаЗначений" (brom:ValueTable), при обходе по группировкам возвращается "ДеревоЗначений" (brom:ValueTree). |
Примеры:
Пример №1. Вывод результатов пакетного запроса без указания дополнительных настроек вывода.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:brom="https://brom.itworks.group">
<soap:Header/>
<soap:Body>
<brom:ExecuteRequestBatch>
<brom:request>
ВЫБРАТЬ
Валюты.Ссылка КАК Ссылка,
Валюты.Код КАК Код,
Валюты.Наименование КАК Наименование
ПОМЕСТИТЬ тВалюты
ИЗ
Справочник.Валюты КАК Валюты
ИНДЕКСИРОВАТЬ ПО
Ссылка
;
/////////////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
тВалюты.Код КАК Код,
тВалюты.Наименование КАК Наименование,
ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) КАК Курс
ИЗ
тВалюты КАК тВалюты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
ПО тВалюты.Ссылка = КурсыВалютСрезПоследних.Валюта
</brom:request>
<brom:settings />
</brom:ExecuteRequestBatch>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<m:ExecuteRequestBatchResponse xmlns:m="https://brom.itworks.group">
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Item xsi:type="m:ValueTable">
<m:Column Name="Количество"/>
<m:Row>
<m:Property xsi:type="m:ValueNumber" Name="Количество" Value="4"/>
</m:Row>
</m:Item>
<m:Item xsi:type="m:ValueTable">
<m:Column Name="Код"/>
<m:Column Name="Наименование"/>
<m:Column Name="Поле1"/>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="643"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="RUB"/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="1"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="56"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="У.Е."/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="65.3159"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="978"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="EUR"/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="72.7183"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="840"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="USD"/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="62.2056"/>
</m:Row>
</m:Item>
</m:return>
</m:ExecuteRequestBatchResponse>
</soap:Body>
</soap:Envelope>
Пример №2. Вывод результатов пакетного запроса примера №1 с указанием опции включения промежуточных данных в результат запроса.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:brom="https://brom.itworks.group">
<soap:Header/>
<soap:Body>
<brom:ExecuteRequestBatch>
<brom:request>
ВЫБРАТЬ
Валюты.Ссылка КАК Ссылка,
Валюты.Код КАК Код,
Валюты.Наименование КАК Наименование
ПОМЕСТИТЬ тВалюты
ИЗ
Справочник.Валюты КАК Валюты
ИНДЕКСИРОВАТЬ ПО
Ссылка
;
/////////////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
тВалюты.Код КАК Код,
тВалюты.Наименование КАК Наименование,
ЕСТЬNULL(КурсыВалютСрезПоследних.Курс, 0) КАК Курс
ИЗ
тВалюты КАК тВалюты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних
ПО тВалюты.Ссылка = КурсыВалютСрезПоследних.Валюта
</brom:request>
<brom:settings IncludeTemporalData="true"/>
</brom:ExecuteRequestBatch>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<soap:Body>
<m:ExecuteRequestBatchResponse xmlns:m="https://brom.itworks.group">
<m:return xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<m:Item xsi:type="m:ValueTable">
<m:Column Name="Ссылка"/>
<m:Column Name="Код"/>
<m:Column Name="Наименование"/>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="643"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="RUB"/>
<m:Property xsi:type="m:ValueObjectRef" Name="Ссылка" Value="26093579-c180-11e4-a7a9-000d884fd00d" Type="Справочник.Валюты"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="56"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="У.Е."/>
<m:Property xsi:type="m:ValueObjectRef" Name="Ссылка" Value="44e9f2fe-3351-11e0-aef9-0015e9b8c48d" Type="Справочник.Валюты"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="978"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="EUR"/>
<m:Property xsi:type="m:ValueObjectRef" Name="Ссылка" Value="51ed67a6-7220-11df-b336-0011955cba6b" Type="Справочник.Валюты"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="840"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="USD"/>
<m:Property xsi:type="m:ValueObjectRef" Name="Ссылка" Value="9c556d4d-720f-11df-b436-0015e92f2802" Type="Справочник.Валюты"/>
</m:Row>
</m:Item>
<m:Item xsi:type="m:ValueTable">
<m:Column Name="Код"/>
<m:Column Name="Наименование"/>
<m:Column Name="Поле1"/>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="643"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="RUB"/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="1"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="56"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="У.Е."/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="65.3159"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="978"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="EUR"/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="72.7183"/>
</m:Row>
<m:Row>
<m:Property xsi:type="m:ValueString" Name="Код" Value="840"/>
<m:Property xsi:type="m:ValueString" Name="Наименование" Value="USD"/>
<m:Property xsi:type="m:ValueNumber" Name="Поле1" Value="62.2056"/>
</m:Row>
</m:Item>
</m:return>
</m:ExecuteRequestBatchResponse>
</soap:Body>
</soap:Envelope>
Метод ExecuteRequestBatch() имеет те же параметры вывода, что и метод ExecuteRequest(). Вы можете ознакомиться с примерами использование в соответствующем разделе.