Работа с пакетными запросами

Платформа 1С:Предприятие 8 позволяет работать с пакетами запросов. В пакетном запросе тексты запросов разделяются символом ";". Запросы исполняются последовательно, при этом временные таблицы, которые были созданы во время исполнения какого-либо запроса будут существовать до окончания исполнения всего пакета запроса или до исполнения в пакете запроса, уничтожающего данную временную таблицу. Например:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
    | УчетНоменклатурыОстаткиИОбороты.Номенклатура,
    | УчетНоменклатурыОстаткиИОбороты.КоличествоПриход,
    | УчетНоменклатурыОстаткиИОбороты.КоличествоРасход,
    | УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток
    |ПОМЕСТИТЬ УчетНоменклатуры
    |ИЗ
    | РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты
    |;
    |
    |ВЫБРАТЬ
    | УчетНоменклатуры.Номенклатура,
    | УчетНоменклатуры.КоличествоРасход,
    | УчетНоменклатуры.КоличествоКонечныйОстаток
    |ИЗ
    | УчетНоменклатуры КАК УчетНоменклатуры
    |"
;

Результат=Запрос.Выполнить();

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

Если объекту Запрос, исполняющему пакетный запрос, установлен менеджер временных таблиц, временные таблицы, которые не были уничтожены в рамках пакетного запроса, сохранятся в установленном менеджере. В тексте пакетного запроса возможно использование и уничтожение временных таблиц, которые существовали в установленном менеджере временных таблиц на момент запуска пакета на исполнение.

Метод ВыполнитьПакет()

Кроме метода Выполнить(), последовательно выполняющего все запросы пакета и возвращающего результат последнего запроса в пакете, платформа 1С:Предприятие 8 предоставляет еще один метод – ВыполнитьПакет(). Этот метод последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета в последовательности расположения запросов в тексте пакета. Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов.

1C:Enterprise Developer's Community