Работа с пакетными запросами
Платформа 1С:Предприятие 8 позволяет работать с пакетами запросов. В пакетном запросе тексты запросов разделяются символом ";". Запросы исполняются последовательно, при этом временные таблицы, которые были созданы во время исполнения какого-либо запроса будут существовать до окончания исполнения всего пакета запроса или до исполнения в пакете запроса, уничтожающего данную временную таблицу. Например:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | УчетНоменклатурыОстаткиИОбороты.Номенклатура, | УчетНоменклатурыОстаткиИОбороты.КоличествоПриход, | УчетНоменклатурыОстаткиИОбороты.КоличествоРасход, | УчетНоменклатурыОстаткиИОбороты.КоличествоКонечныйОстаток |ПОМЕСТИТЬ УчетНоменклатуры |ИЗ | РегистрНакопления.УчетНоменклатуры.ОстаткиИОбороты(, , Авто, , ) КАК УчетНоменклатурыОстаткиИОбороты |; | |ВЫБРАТЬ | УчетНоменклатуры.Номенклатура, | УчетНоменклатуры.КоличествоРасход, | УчетНоменклатуры.КоличествоКонечныйОстаток |ИЗ | УчетНоменклатуры КАК УчетНоменклатуры |"; Результат=Запрос.Выполнить(); |
Первый запрос создает временную таблицу, данные из которой используются во втором запросе.
Если объекту Запрос, исполняющему пакетный запрос, установлен менеджер временных таблиц, временные таблицы, которые не были уничтожены в рамках пакетного запроса, сохранятся в установленном менеджере. В тексте пакетного запроса возможно использование и уничтожение временных таблиц, которые существовали в установленном менеджере временных таблиц на момент запуска пакета на исполнение.
Метод ВыполнитьПакет()
Кроме метода Выполнить(), последовательно выполняющего все запросы пакета и возвращающего результат последнего запроса в пакете, платформа 1С:Предприятие 8 предоставляет еще один метод – ВыполнитьПакет(). Этот метод последовательно выполняет все запросы и возвращает массив результатов для каждого запроса из пакета в последовательности расположения запросов в тексте пакета. Результатом выполнения запроса на уничтожение временной таблицы является значение Неопределено, которое также помещается в массив результатов.