0
- 10.10.2018 - 15:47
|
Надо организовать обход результатов запроса к регистру сведений по двум группировкам в виде двух вложенных циклов (как в v7). Регистр сведений ЦеныНоменклатурыПоставщиков. Упрощенно: Измерения - Поставщик,Номенклатура. Ресурс - Цена. Т.е. надо для каждого поставщика получить по каждой номенклатуре цену (последнюю). Текст запроса: "ВЫБРАТЬ |ЦеныНоменклатурыПоставщиковСрезПоследних.Поставщи к КАК Поставщик, |ЦеныНоменклатурыПоставщиковСрезПоследних.Номенкла тура КАК Номенклатура, |ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК Цена |ИЗ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПо следних() |КАК ЦеныНоменклатурыПоставщиковСрезПоследних |СГРУППИРОВАТЬ ПО |ЦеныНоменклатурыПоставщиковСрезПоследних.Поставщи к, |ЦеныНоменклатурыПоставщиковСрезПоследних.Номенкла тура; Пытаюсь организовать обход группировок двумя циклами примерно так: Результат = Запрос.Выполнить(); ВыборкаП Результат.Выбрать(ОбходРезультатовЗапроса.ПоГруппи ровкам,"Поставщик"); Пока ВыборкаП.Следующий() Цикл Поставщик = ВыборкаП.Партнер; ... ВыборкаН = ВыборкаП.Выбрать(ОбходРезультатовЗапроса.ПоГруппир овкам,"Номенклатура"); Пока ВыборкаН.Следующий() Цикл Номенклатура = ВыборкаН.Номенклатура; ... КонецЦикла; КонецЦикла; И что-то заставить работать не могу. Ругается на неизвестную переменную ОбходРезультатовЗапроса. Понимаю, что надо как-то итоги в запрос добавить, но квалификации не хватает. Прошу помощи у коллег. | |
1
- 10.10.2018 - 15:53
|
секция ИТОГИ в запросе? Ну и ОбходРезульта_ТА_Запроса Отредактировано roma n; 10.10.2018 в 15:54. Причина: уточнение | |
2
- 10.10.2018 - 15:57
|
1-roma n >Я понимаю, что в запросе нужны ИТОГИ, но не вкурю, как правильно это написать. По какой переменной/группировке запроса и т.д. Если не затруднит, напишите этот кусок запроса. | |
3
- 10.10.2018 - 15:58
| ИТОГИ ??? ПО ??? | |
4
- 10.10.2018 - 15:59
| глаз размылить для начала) | |
5
- 10.10.2018 - 16:06
|
4-user1C >Меня в данном случае лучше, как слепого, перевести через улицу, и я дальше сам пойду :) Куда ОбходРезульта_ТА_Запроса вставить ? И как ИТОГИ правильно написать ? | |
6
- 10.10.2018 - 20:12
|
Други, не бросайте в годину тяжкую. Поможите, кто чем может. | |
7
- 11.10.2018 - 09:20
| 502 ошибка | |
8
- 11.10.2018 - 09:23
|
ВЫБРАТЬ ЦеныНоменклатурыПоставщиковСрезПоследних.Поставщи к КАК Поставщик, ЦеныНоменклатурыПоставщиковСрезПоследних.Номенкла тура КАК Номенклатура, ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК Цена ИЗ РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПо следних() КАК ЦеныНоменклатурыПоставщиковСрезПоследних ИТОГИ ПО ЦеныНоменклатурыПоставщиковСрезПоследних.Поставщик "; | |
9
- 11.10.2018 - 09:24
|
Результат = Запрос.Выполнить(); ВыборкаП Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппи ровкам); Пока ВыборкаП.Следующий() Цикл Поставщик = ВыборкаП.Партнер; ВыборкаН = ВыборкаП.Выбрать(); // без параметров | |
10
- 11.10.2018 - 14:10
|
Ругается "Переменная не определена ОбходРезультатовЗапроса". А СГРУППИРОВАТЬ ПО точно не нужно ? | |
11
- 11.10.2018 - 14:19
|
))) мда... | |
12
- 11.10.2018 - 14:58
|
(0) Если не секрет, линейный обход одним циклом чем не устраивает? Я так понимаю, что итожить цены не требуется (да и странно это было бы). Соответственно каждая связка Контрагент-Номенклатура уникальна и будет получена обычным перебором. | |
13
- 11.10.2018 - 15:32
|
12-US1C >А надо в конце каждого прохода внешнего цикла (после отработки внутреннего) выполнить определенные действия с использованием текущего значения переменной внешнего цикла. Конкретно, выгрузить данные по ценам всей номенклатуры каждого поставщика. Можно и перебором плоской таблицы. Но хотелось бы элегатнее. | |
14
- 11.10.2018 - 15:37
| 11-user1C >Понимаю, смех уместен. Но практическая помощь будет уместнее :)) | |
15
- 11.10.2018 - 15:42
|
Весело тут у вас... 14-mr Gilmor > Читай (4) столько раз, пока не поймешь | |
16
- 11.10.2018 - 15:55
|
15-Uho >Блин, вкурил, не РезультаТОВ, а РезультаТА. А все-таки СГРУППИРОВАТЬ ПО требуется ? | |
17
- 11.10.2018 - 16:02
|
Так, вроде чего-то полетело. roma_n - огромное спасибо. Да и всем остальным тоже. | |
18
- 11.10.2018 - 16:04
|
Попробуй так: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыПоставщиковСрезПоследних.Поставщик КАК Поставщик, | ЦеныНоменклатурыПоставщиковСрезПоследних.Номенклат ура КАК Номенклатура, | ЦеныНоменклатурыПоставщиковСрезПоследних.Цена КАК Цена |ИЗ | РегистрСведений.ЦеныНоменклатурыПоставщиков.СрезПо следних КАК ЦеныНоменклатурыПоставщиковСрезПоследних |ИТОГИ ПО | ТипЦен"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаПоставщик = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.По Группировкам); Пока ВыборкаПоставщик.Следующий() Цикл ВыборкаДетальныеЗаписи = ВыборкаПоставщик.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл КонецЦикла; КонецЦикла; | |
19
- 11.10.2018 - 16:12
|
18-US1C >Да, у меня тоже самое, только ИТОГИ ПО Поставщик (откуда ТипЦен?). И это вроде заработало (проверяю). | |
20
- 11.10.2018 - 17:14
| (19) Да, конечно Поставщик. Просто у меня другая конфа, там похожий регистр с другими измерениями. Код адаптировал, но видно упустил кое-что. | |
21
- 11.10.2018 - 20:38
| 20-US1C >Спасибо. | |
| Интернет-форум Краснодарского края и Краснодара |