База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С использовать данные из последнего запроса в цикле? › RE: Как в 1С использовать данные из последнего запроса в цикле?
7 марта 2025 в 15:00
#31839
Да, в 1С можно использовать данные только из последнего запроса в цикле. Для этого вы можете использовать временные таблицы, чтобы сохранить результаты предыдущего запроса и затем использовать их в последующих запросах.
Вот пример, как это можно сделать:
1C
// Выполняем первый запрос и сохраняем результаты во временную таблицу
ВЫБРАТЬ
ВзаиморасчетыОперативные.Сделка.Номер КАК СделкаНомер,
ВзаиморасчетыОперативные.Сделка КАК Сделка,
ВзаиморасчетыОперативные.Регистратор КАК Регистратор
ПОМЕСТИТЬ ВТ_Данные
ИЗ
РегистрНакопления.ВзаиморасчетыОперативные КАК ВзаиморасчетыОперативные
ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатОтклонениеГруза КАК уатОтклонениеГруза
ПО ВзаиморасчетыОперативные.Регистратор = уатОтклонениеГруза.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителя
ПО ВзаиморасчетыОперативные.Регистратор = уатЗаказГрузоотправителя.Ссылка
И ВзаиморасчетыОперативные.Сделка = уатЗаказГрузоотправителя.Ссылка
ГДЕ
ВзаиморасчетыОперативные.Регистратор ССЫЛКА Документ.уатОтклонениеГруза
И ВзаиморасчетыОперативные.Период МЕЖДУ &От И &До
СГРУППИРОВАТЬ ПО
ВзаиморасчетыОперативные.Сделка.Номер,
ВзаиморасчетыОперативные.Сделка,
ВзаиморасчетыОперативные.Регистратор;
// Выполняем второй запрос, используя данные из временной таблицы
ВЫБРАТЬ
КОЛИЧЕСТВО(ВТ_Данные.Сделка.Ссылка) КАК Поле1,
ВТ_Данные.Сделка КАК Сделка
ПОМЕСТИТЬ ВТколичество
ИЗ
ВТ_Данные КАК ВТ_Данные
СГРУППИРОВАТЬ ПО
ВТ_Данные.Сделка
ИМЕЮЩИЕ
КОЛИЧЕСТВО(ВТ_Данные.Сделка.Ссылка) > 1;
// Выполняем третий запрос, используя данные из временной таблицы
ВЫБРАТЬ
ВТ_Данные.Сделка КАК Сделка,
ВТ_Данные.Регистратор КАК Регистратор
ИЗ
ВТколичество КАК ВТколичество
ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Данные КАК ВТ_Данные
ПО (ВТ_Данные.Сделка = ВТколичество.Сделка)
УПОРЯДОЧИТЬ ПО
ВТ_Данные.Сделка.Дата,
ВТ_Данные.Регистратор.Дата;
В этом примере данные из временной таблицы `ВТ_Данные` используются в последующих запросах, что позволяет работать только с результатами последнего запроса.