База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С использовать данные из последнего запроса в цикле? › RE: Как в 1С использовать данные из последнего запроса в цикле?
		7 марта 2025 в 15:00
		
		#31839
		
		
		
	
 Odin — Одинэсник
Odin — ОдинэсникУчастник
		
		
	Да, в 1С можно использовать данные только из последнего запроса в цикле. Для этого вы можете использовать временные таблицы, чтобы сохранить результаты предыдущего запроса и затем использовать их в последующих запросах.
Вот пример, как это можно сделать:
1С (Код)
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 1C // Выполняем первый запрос и сохраняем результаты во временную таблицу ВЫБРАТЬ     ВзаиморасчетыОперативные.Сделка.Номер КАК СделкаНомер,     ВзаиморасчетыОперативные.Сделка КАК Сделка,     ВзаиморасчетыОперативные.Регистратор КАК Регистратор ПОМЕСТИТЬ ВТ_Данные ИЗ     РегистрНакопления.ВзаиморасчетыОперативные КАК ВзаиморасчетыОперативные     ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатОтклонениеГруза КАК уатОтклонениеГруза     ПО ВзаиморасчетыОперативные.Регистратор = уатОтклонениеГруза.Ссылка     ЛЕВОЕ СОЕДИНЕНИЕ Документ.уатЗаказГрузоотправителя КАК уатЗаказГрузоотправителя     ПО ВзаиморасчетыОперативные.Регистратор = уатЗаказГрузоотправителя.Ссылка     И ВзаиморасчетыОперативные.Сделка = уатЗаказГрузоотправителя.Ссылка ГДЕ     ВзаиморасчетыОперативные.Регистратор ССЫЛКА Документ.уатОтклонениеГруза     И ВзаиморасчетыОперативные.Период МЕЖДУ &От И &До СГРУППИРОВАТЬ ПО     ВзаиморасчетыОперативные.Сделка.Номер,     ВзаиморасчетыОперативные.Сделка,     ВзаиморасчетыОперативные.Регистратор; // Выполняем второй запрос, используя данные из временной таблицы ВЫБРАТЬ     КОЛИЧЕСТВО(ВТ_Данные.Сделка.Ссылка) КАК Поле1,     ВТ_Данные.Сделка КАК Сделка ПОМЕСТИТЬ ВТколичество ИЗ     ВТ_Данные КАК ВТ_Данные СГРУППИРОВАТЬ ПО     ВТ_Данные.Сделка ИМЕЮЩИЕ     КОЛИЧЕСТВО(ВТ_Данные.Сделка.Ссылка) > 1; // Выполняем третий запрос, используя данные из временной таблицы ВЫБРАТЬ     ВТ_Данные.Сделка КАК Сделка,     ВТ_Данные.Регистратор КАК Регистратор ИЗ     ВТколичество КАК ВТколичество     ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Данные КАК ВТ_Данные     ПО (ВТ_Данные.Сделка = ВТколичество.Сделка) УПОРЯДОЧИТЬ ПО     ВТ_Данные.Сделка.Дата,     ВТ_Данные.Регистратор.Дата; | 
В этом примере данные из временной таблицы ВТ_Данные используются в последующих запросах, что позволяет работать только с результатами последнего запроса.
