Автор: Дмитрий Дата: 2018-05-15 00:00:00
Временные таблицы 1с
Временные таблицы в 1С позволяют разбивать большой текст запроса на несколько меньших по объему запросов. Результат каждого из промежуточного запроса записывается в объекты, которые называются временные таблицы 1С.
Так же такой способ позволяет реализовывать сложные алгоритмы.
Пример:
&НаСервереБезКонтекста
Процедура ИспользованиеВременныхТаблиц(НачДата,КонДата)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ТоварыНаСкладахОстаткиИОбороты.Склад,
| ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
| ТоварыНаСкладахОстаткиИОбороты.ВНаличииОборот
|ПОМЕСТИТЬ ВТ_Оборот
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачДата, &КонДата, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ТоварыНаСкладахОбороты.Склад,
| СУММА(ТоварыНаСкладахОбороты.ВНаличииОборот) КАК ВНаличииОборот
|ИЗ
| ВТ_Оборот КАК ТоварыНаСкладахОбороты
|
|СГРУППИРОВАТЬ ПО
| ТоварыНаСкладахОбороты.Склад";
Запрос.УстановитьПараметр("КонДата", КонДата);
Запрос.УстановитьПараметр("НачДата", НачДата);
РезультатЗапроса = Запрос.Выполнить();
ТЗО = РезультатЗапроса.Выгрузить();
ТЗО.ВыбратьСтроку();
КонецПроцедуры
На рисунке можно посмотреть результат.
Временные таблицы 1с часто задействуют в
пакетных запросах.