8.х Обход результата запроса

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

  1. TopicStarter Overlay
    ALL_EG
    Offline

    ALL_EG Опытный в 1С

    Регистрация:
    4 авг 2010
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток, коллеги!

    У меня возникла проблема с обработкой результата запроса..

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

    ..
    |ИТОГИ
    | СУММА(ОборотДт),
    | СУММА(ОборотКт),
    | СУММА(ОстатокДт),
    | СУММА(ОстатокКт)
    |ПО
    |Тип,
    | Счет ИЕРАРХИЯ"

    т.е. выбирает он

    № записи, тип, счет , ресурсы..


    1) 1 10 ресурс1
    2) 1 10.01 ресурс1
    3) 1 10.01 ресурс1
    4) 1 62 ресурс1
    5) 1 62.01 ресурс1
    6) 1 62.01.01 ресурс1
    7) 1 62.01.01 ресурс1
    ...

    т.е. я так понимаю

    1) 1 10 ресурс1 - итог по иерархии
    2) 1 10.01 ресурс1 - итог по счету 10.01
    3) 1 10.01 ресурс1 - детальная запись (рабочий счет 10,01)
    4) 1 62 ресурс1 - итог по иерархии
    5) 1 62.01 ресурс1 - итог по иерархии
    6) 1 62.01.01 ресурс1 - итог по группе
    7) 1 62.01.01 ресурс1 - детальная (рабочий счет)

    вот я и делаю

    ВыборкаТипа=РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);//по первой группировке (т.е. по типу) Все работает

    Пока ВыборкаТипа.Следующий() Цикл

    ВыборкаСчетовУровень1=ВыборкаТипа.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); // опять итог по иерархии - он мне должен отобрать записи 1 и 4 (отбирает) т.е. записи 1-го уровня (отсчет уровней с 0)

    Пока ВыборкаСчетовУровень1.Следующий() Цикл


    Выб2=ВыборкаСчетовУровень1.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); // отбор по следующей группе, - он мне должен отобрать записи 2,5...но он их не видит..

    Пока Выб2.Следующий() Цикл

    КонецЦикла;

    КонецЦикла;

    КонецЦикла;



    в чем может быть проблема?
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Запихните ваш запрос в конструктор выходной формы и пусть он вам там сам код сформирует это дело 5 минут
  3. TopicStarter Overlay
    ALL_EG
    Offline

    ALL_EG Опытный в 1С

    Регистрация:
    4 авг 2010
    Сообщения:
    55
    Симпатии:
    0
    Баллы:
    26
    Пролистал несколько форумов..очень многие сетуют на то, что ОбходРезультатаЗапроса.ПоГруппировкамСИерархией некорректно работает..
  4. mialord
    Offline

    mialord Модераторы Команда форума Модератор

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Не правда, возьмите на инфостарте обработку "Универсальная консоль отчетов", она формирует результаты запросов, так же и по иерархии, изучите полученную иерархию и уровни вложений.

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