Имя: Пароль:
1C
1С v8
Обход по группировке
0 vanyshan
 
25.10.11
16:01
Добрый день!
Подскажите кому не трудно.

Запрос=Новый Запрос("ВЫБРАТЬ
   |УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних.Номенклатура,
   |УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних.ДоговорКонтрагента КАК ДоговорКонтрагента,
   |УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних.Регистратор КАК Регистратор
   |ИЗ
   |РегистрСведений.УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуре.СрезПоследних(&Период, ДоговорКонтрагента = &Договор) КАК УсловияПоставокПоДоговорамКонтрагентовПоНоменклатуреСрезПоследних
   |УПОРЯДОЧИТЬ ПО
   |Регистратор УБЫВ
   |ИТОГИ ПО
   |Регистратор,
   |ДоговорКонтрагента
   |АВТОУПОРЯДОЧИВАНИЕ");
   
       Запрос.УстановитьПараметр("Период", Дата);
       Запрос.УстановитьПараметр("Договор", ДоговорКонтрагента);
       Выборка=Запрос.Выполнить().Выбрать();
       
       
       
       СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
        Результат = Запрос.Выполнить();
        ВыборкаПоРегистратору = Результат.Выбрать(СпособВыборки);
        Пока ВыборкаПоРегистратору.Следующий() Цикл
             Сообщить(ВыборкаПоРегистратору.Регистратор);
        КонецЦикла;


Выборка по регистратору перебирает все группировки в запросе. Как вывести только первую группировку,т.е.обход только по первой группировке?
1 Zypse
 
25.10.11
16:08
ВыборкаПоРегистратору = Результат.Выбрать(СпособВыборки,"Регистратор");
2 vanyshan
 
25.10.11
16:11
Может не совсем подробно объяснил, попробую так. В запросе группировочным полем является поле регистратор. Мне нужно увидеть только первую группу, ближайшую на сегодня по дате.
3 hhhh
 
25.10.11
16:12
ВЫБРАТЬ ПЕРВЫЕ 1

не оно?
4 Ненавижу 1С
 
гуру
25.10.11
16:12
Офигеть постановка вопроса:

УПОРЯДОЧИТЬ ПО
Регистратор.МоментВремени УБЫВ
5 vanyshan
 
25.10.11
16:18
ВыборкаПоРегистратору = Результат.Выбрать(СпособВыборки,"Регистратор"); - так тоже самое
УПОРЯДОЧИТЬ ПО
Регистратор.МоментВремени УБЫВ - и так тоже.
А выбрать первые выбирает первую группировку с первой номенклатурой, а мне нужна первая группировка со всеми номенклатурами которые этой группировке принадлежат
6 hhhh
 
25.10.11
16:24
(5) ну так тогда

       Пока ВыборкаПоРегистратору.Следующий() Цикл
             Сообщить(ВыборкаПоРегистратору.Регистратор);
             ПРЕРВАТЬ;
        КонецЦикла;
7 vanyshan
 
25.10.11
16:36
А вот метод прервать похоже то, что нужно.
Только не совсем понятно как он работает. Идет по циклу и как только находит первую группировку как в моем случае заканчивает обход, так получается?
2 + 2 = 3.9999999999999999999999999999999...