1С 8.3 Использование временной таблицы для получение информации из Запроса
Данные > Примеры кода 1С > 1С 8.3 Запросы
Перейти в раздел примеры кода 1С 8.3:
Временные таблицы используются в пакетах запросов, когда нужно сначала одним запросом получить какую-то информацию, а потом обработать ее уже с помощью другого запроса и получить результат. Таким образом, менеджеры временных таблиц существуют у любых запросов.
Типизация колонок Таблицы значений в 1С 8.3:
&НаКлиенте
Процедура ЗаполнитьСводную(Команда)
ЗаполнитьСводнуюТаблицуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСводнуюТаблицуНаСервере()
МВТ = Новый МенеджерВременныхТаблиц;
ПолучитьДанныеТаблицы(МВТ);
МВТ.Закрыть();
КонецПроцедуры
&НаСервере
Процедура ПолучитьДанныеТаблицы(МВТ)
СводнаяТаблица.Очистить();
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = "ВЫБРАТЬ
| Таблица1.Договор КАК Договор,
| Таблица1.Сумма КАК Сумма
|ПОМЕСТИТЬ Таблица2
|ИЗ
| &Таблица1 КАК Таблица1
|
|ИНДЕКСИРОВАТЬ ПО
| Договор
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Таблица2.Договор КАК Договор,
| Таблица2.Сумма КАК Сумма
|ИЗ
| Таблица2 КАК Таблица2
|
|УПОРЯДОЧИТЬ ПО
| Договор";
Запрос.УстановитьПараметр("Таблица1", ТаблицаФ.Выгрузить());
Пакет = Запрос.ВыполнитьПакет();
ВыборкаПакет = Пакет[1].Выбрать();
Пока ВыборкаПакет.Следующий() Цикл
СводнаяТаблица.Загрузить(Пакет[1].Выгрузить());
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьСводную(Команда)
ЗаполнитьСводнуюТаблицуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСводнуюТаблицуНаСервере()
МВТ = Новый МенеджерВременныхТаблиц;
ПолучитьДанныеТаблицы(МВТ);
МВТ.Закрыть();
КонецПроцедуры
&НаСервере
Процедура ПолучитьДанныеТаблицы(МВТ)
СводнаяТаблица.Очистить();
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МВТ;
Запрос.Текст = "ВЫБРАТЬ
| Таблица1.Договор КАК Договор,
| Таблица1.Сумма КАК Сумма
|ПОМЕСТИТЬ Таблица2
|ИЗ
| &Таблица1 КАК Таблица1
|
|ИНДЕКСИРОВАТЬ ПО
| Договор
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Таблица2.Договор КАК Договор,
| Таблица2.Сумма КАК Сумма
|ИЗ
| Таблица2 КАК Таблица2
|
|УПОРЯДОЧИТЬ ПО
| Договор";
Запрос.УстановитьПараметр("Таблица1", ТаблицаФ.Выгрузить());
Пакет = Запрос.ВыполнитьПакет();
ВыборкаПакет = Пакет[1].Выбрать();
Пока ВыборкаПакет.Следующий() Цикл
СводнаяТаблица.Загрузить(Пакет[1].Выгрузить());
КонецЦикла;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник