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