К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

v8. запутался под вечер в запросе (обход по группировкам)

Uho
0 - 24.01.2013 - 16:16
упрощенный текст запроса:

ВЫБРАТЬ
РеализацияУслуг.Контрагент,
ПараметрыФормированияДокументов.Периодичность,
РеализацияУслуг.Ссылка
ИЗ
Документ.РеализацияУслуг КАК РеализацияУслуг
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПараметрыФормированияДокументов КАК ПараметрыФормированияДокументов
ПО РеализацияУслуг.Контрагент = ПараметрыФормированияДокументов.Контрагент
ИТОГИ ПО
Контрагент

...

ВыборкаКонтрагентов = Запрос.Выполнить.Выбрать(ОбходРезультатаЗапроса.По Группировкам);
Пока ВыборкаКонтрагентов.Следующий() Цикл
вот тут мне надо обратиться к полю Периодичность, но его в этой группировке нет, как мне исправить текст запроса, чтобы можно было обратиться к Периодичность на одном уровне с Контрагентом?

Туплю, направьте на путь истинный, плз.



Гость
1 - 24.01.2013 - 16:23
Единственная возможность в запросе - применить агрегатную функцию к полю
Гость
2 - 24.01.2013 - 16:24
(1) +1
Гость
3 - 24.01.2013 - 16:25
а зачем итоги, если нужна периодичность, сделай итоги по контрагент и периодичность
4 - 24.01.2013 - 16:25
ИТОГИ МИНИМУМ(Периодичность) ПО Контрагент
Uho
5 - 24.01.2013 - 16:30
3-angro > Там не только периодичность - нужен обход по контрагентам и внутри обход по документам, обход по документам идет по разным алгоритмам в зависимости от Периодичности и других полей относящихся к контрагенту.

1-roma n > дело в том, что если в запросе все равно есть Периодичность, получать ее же вне запроса как-то не хочется
Гость
6 - 24.01.2013 - 16:44
5-Uho > а что за тип в поле? Перечисление?
Можно разыменовать до порядка и дёргать при обходе значение из перечисления по индексу (но я как-то не уверен за равенство индекса и порядка... лучше уж тогда массив предварительно собрать)
Ну или (3)
Гость
7 - 24.01.2013 - 16:48
5-Uho > если значение Порядка гарантировано одно на контрагента
Выборка = ВыборкаКонтрагентов.Выбрать();
Выборка.Следующий()
Порядок = Выборка.Порядок;
...
Выборка.Сбросить()
Пока Выборка.Следующий()
Uho
8 - 24.01.2013 - 17:03
6-roma n > Периодичность - перечисление, но не только периодичность нужно получить во внешнем обходе, там и булево есть и др..

7-roma n > хм, имхо, уж лучше агрегатную функцию
Гость
9 - 24.01.2013 - 17:08
8-Uho > посмотри на ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекци юЗначений
Uho
10 - 24.01.2013 - 17:32
9-roma n > я как-то СКД только для отчетов пользую
Гость
11 - 24.01.2013 - 20:10
10-Uho > Когда нужна группировка по 8 полям и запрос вернет 9-уровневую выборку я не задумываясь делаю схему компоновки. Пару раз напорешься и будешь лихо втыкать ее везде, где она упрощает жизнь. Я даже пару печатные формы иногда на СКД делаю, потому что быстрее накидать структуру, чем рисовать макет вручную.
Uho
12 - 01.02.2013 - 10:26
11-Reaper > примерчик использования СКД для "неотчетов" можешь показать?


К списку вопросов






Copyright ©, Все права защищены