Метод ExecuteRequestBatch() выполняет пакетный запрос к базе данных на языке запросов "1С:Предприятие" и возвращает данные в виде массива, в котором содержатся таблицы значений или деревья значений, в заваисимости от типа обхода результатов. Выполнение запроса на стороне 1С происходит через компановщик запроса, в параметре метода возможно передать дополнительные настройки компановки.

Параметры:

Имя Тип Описание
request xs:string Текст запроса на языке запросов "1С:Предприятие". Может включать области разметки для компановщика запросов.
settings brom:ExecuteRequest_Settings Настройки выполнения запроса. В настройках можно указать значения параметров, добавить отборы, сортировки, а также указать дополнительные поля для вывода. Опциональнаый.

Параметр "settings" позволяет устанавливать настройки, описанные в таблице ниже.

settings/@QueryResultIteration

Тип обхода результатов запроса. Значение может передаваться в двух языковых версиях. Возможные значения:

  • Прямой (Linear);
  • ПоГруппировкам (ByGroups);
  • ПоГруппировкамСИерархией (ByGroupsWithHierarchy).
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

Вид сравнения условия отбора. Значение может передаваться в двух языковых версиях. Возможные значения:

  • Равно (Equal);
  • НеРавно (NotEqual);
  • Больше (Greater);
  • БольшеИлиРавно (GreaterOrEqual);
  • Меньше (Less);
  • МеньшеИлиРавно (LessOrEqual);
  • Содержит (Contains);
  • НеСодержит (NotContains);
  • ВСписке (InList);
  • НеВСписке (NotInList);
  • ВИерархии (InHierarchy);
  • НеВИерархии (NotInHierarchy);

Опциональный. По умолчанию - "Равно".

settings/Sort

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

settings/Sort/@Key

Путь к данным поля сортировки. Указывается в соответствии с разметкой компановщика.

settings/Sort/@Direction

Направление сортировки. Значение может передаваться в двух языковых версиях. Доступные значения:

  • Возр (Asc);
  • Убыв (Desc).

Опциональный. По умолчанию - "Возр".

Возвращаемое значение:

Тип Описание
производный от 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(). Вы можете ознакомиться с примерами использование в соответствующем разделе.