1С: Запросы. Временные таблицы
Описание
Примеры работы с временными таблицами. Создание и использование таблиц, создание таблицы из таблица значений и др
Оглавление (нажмите, чтобы раскрыть)
Создание и использование временных таблиц в запросе
Пример создания временной таблицы с выборкой данных//Помещаем текущие цены во временную таблицу //и выбираем данные из временной таблицы Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Наименование КАК Наименование, | Цена |ПОМЕСТИТЬ ТекущиеЦены |ИЗ | РегистрСведений.Цены.СрезПоследних; | |ВЫБРАТЬ | Наименование, | Цена |ИЗ | ТекущиеЦены"; Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование + ": " + Выборка.Цена); КонецЦикла;
Таблица из запроса
Пример создания временной таблицы с последующей выборкой данных//Помещаем текущие цены во временную таблицу Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | Номенклатура.Наименование КАК Наименование, | Цена |ПОМЕСТИТЬ ТекущиеЦены |ИЗ | РегистрСведений.Цены.СрезПоследних"; Запрос.Выполнить(); //Выбираем данные из временной таблицы ЗапросВТ = Новый Запрос; ЗапросВТ.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц; ЗапросВТ.Текст = "ВЫБРАТЬ | Наименование, | Цена |ИЗ | ТекущиеЦены"; Выборка = ЗапросВТ.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование + ": " + Выборка.Цена); КонецЦикла;
Таблица из таблицы значений
Пример создания временной таблицы из таблицы значений с последующей выборкой данных//заполняем таблицу значений Цены = Новый ТаблицаЗначений(); Цены.Колонки.Добавить("Товар", Новый ОписаниеТипов("Строка")); Цены.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число")); Товар = Цены.Добавить(); Товар.Товар = "Бензин"; Товар.Цена = 40.5; Товар = Цены.Добавить(); Товар.Товар = "Керосин"; Товар.Цена = 42; //загружаем таблицу значений в менеджер временных таблиц Запрос = Новый Запрос; Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц; Запрос.Текст = "ВЫБРАТЬ | * |ПОМЕСТИТЬ ТекущиеЦены |ИЗ | &Цены КАК Цены"; Запрос.УстановитьПараметр("Цены", Цены); Запрос.Выполнить(); //Выбираем данные из временной таблицы ЗапросВТ = Новый Запрос; ЗапросВТ.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц; ЗапросВТ.Текст = "ВЫБРАТЬ | Товар, | Цена |ИЗ | ТекущиеЦены"; Выборка = ЗапросВТ.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл Сообщить(Выборка.Товар + ": " + Выборка.Цена); КонецЦикла;