8.х Вывод запроса с группировками

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Korolev, 15 сен 2010.

  1. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Всем доброго вечера!

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

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    А так:
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    Номенклатура.Ссылка КАК Услуга
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.Родитель В ИЕРАРХИИ(&Родитель)
    |    И (НЕ Номенклатура.ПометкаУдаления)
    |
    |УПОРЯДОЧИТЬ ПО
    |	Услуга ИЕРАРХИЯ
    |АВТОУПОРЯДОЧИВАНИЕ";
    
    Запрос.УстановитьПараметр("Родитель", ВидРаботы);    
    Возврат Запрос.Выполнить().Выбрать();
    
  3. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Спасибо, но результат к сожалению такой же:
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    эээ...а кто будет выборку делать с обходом результата по группировкам корректно? кто группировать строки, с учетом выводимого уровня будет?

    Накидайте простейший отчетик с иерархией с помощью конструктора выходной формы.
  5. TopicStarter Overlay
    Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Так, не углядел :)
    В общем вариант, который предложил Requin действительно работает как надо :)

Поделиться этой страницей