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