Конференция

Фильтр
Пометить все
Отобразить только
 
 

КНИГИ, БУКЛЕТЫ:
Книга «1С:Предприятие 8.3. Версия для обучения программированию (артикул 4601546109996)»
Книга «Hello, 1C. Пример быстрой разработки приложений на платформе "1С:Предприятие 8.3". Мастер-класс (+CD). Версия 3 (артикул 4601546109774). Печатная и электронная версии»
Книга «1C:Предприятие 8.3. Практическое пособие разработчика. Примеры и типовые приемы (артикул 4601546108722). Печатная и электронная версии»
Книга «Язык запросов "1С:Предприятия 8" (+диск) (артикул 4601546108029). Печатная и электронная версии»
Книга «Профессиональная разработка в системе 1С:Предприятие 8" (+DVD-ROM). Издание 2 (артикул 4601546101853)»
Книга «Разработка сложных отчетов в "1С:Предприятии 8.2". Система компоновки данных". Издание 2 (+ CD) (артикул 4601546097569)»
Книга «Решение специальных прикладных задач в "1С:Предприятии 8.2". Серия "1С:Профессиональная разработка" (артикул 4601546092694)»
Книга «Архитектура и работа с данными "1С:Предприятия 8.2". Серия "1С:Профессиональная разработка" (артикул 4601546090690)»
Книга «Инструменты для создания тиражируемых приложений "1С:Предприятия 8.2". Серия "1С:Профессиональная разработка" (артикул 4601546090706)»
Книга «Реализация прикладных задач в системе "1С:Предприятие 8.2" (+CD). Серия "1С:Профессиональная разработка" (артикул 4601546080479). Печатная и электронная версии»
Книга «Технологии интеграции 1С:Предприятия (+CD). Серия "1С:Профессиональная разработка" (артикул 4601546087195)»
Книга «Разработка управляемого интерфейса (+CD). Серия "1С:Профессиональная разработка" (артикул 4601546069634)»
Книга «Как настраивать 1С:Предприятие 8.2 при внедрении (+CD) (артикул 4601546069641)»
Книга «1С:Предприятие 8.2. Версия для обучения программированию (артикул 4601546070821)»
Книга «1С:Предприятие 8.2. Практическое пособие разработчика. Примеры и типовые приемы (артикул 4601546069627)»
Книга «Hello, 1C. Пример быстрой разработки приложений на платформе 1С:Предприятие 8.2. Мастер-класс (+CD). Версия 2 (артикул 4601546071576)»
Книга «1С:Предприятие 8.2. Коротко о главном. Новые возможности версии 8.2 (артикул 4601546069610)»
Книга «1С:Предприятие 8.1. Простые примеры разработки (артикул 4601546047045)»
Книга «Разработка сложных отчетов в 1С:Предприятии 8. Система компоновки данных (+CD) (артикул 4601546053091)»
Книга «1C:Enterprise 8.0. A Practical Developer's Guide. Examples and Standard Techniques (с приложением на CD-ROM) (артикул 4601546027368)»
Книга «Комплект вопросов сертификационного экзамена на знание основных механизмов платформы "1С:Предприятие 8" с примерами решений (февраль 2014) (артикул 4601546110077)»
Платформа «1С:Предприятие» как средство разработки бизнес-приложений [С.Нуралиев / "PC Magazine/RE", №11, 2006]



© ЗАО "1С"

Обход выборки по группировкам с иерархией

«« Платформа 8.2: РАУЗ в УПП для... Платформа 8.2: На платформе 8.2 вылетает... »»

Кочнев Владислав Александрович

01.10.2008 13:47
537541 Обход выборки по группировкам с иерархией

Коллеги, делаю простой запрос:

 

ВЫБРАТЬ  Номенклатура, Количество,Сумма 
ИЗ Документ.ПоступлениеТоваровУслуг.Товары
ИТОГИ Сумма(Количество),Сумма(Сумма) По Номенклатура ИЕРАРХИЯ

 

Выполняю запрос и делаю выборку:

Рез=Запрос.Выполнить(); 
Выборка= Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);   
Пока Выборка.Следующий() Цикл       
      Выборка2=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);       
      Пока Выборка2.Следующий() Цикл
 
      КонецЦикла;
КонецЦикла;

 

Если в запросе убрать слово ИЕРАРХИЯ, то правильно открывается и обходится внутренняя выборка.
Если же указать слово ИЕРАРХИЯ, Выборка возвращает самый верхний итог по иерархии (Самую верхнюю группу). Выборка2 открывается, но ее метод Следующий() возвращает значение ложь. В документации заявлено, что при варианте обхода ПоГруппировкамСИерархией внутренняя выборка должна также содержать данные.
Что я делаю не так?


Ответить  
Ванин Геннадий Владимирович

01.10.2008 14:54
Отвечает на: »»»»
537543 Re: Обход выборки по группировкам с иерархией

 

> Коллеги, делаю простой запрос:



> Выполняю запрос и делаю выборку:
>
Рез=Запрос.Выполнить(); 
> Выборка= Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);   
> Пока Выборка.Следующий() Цикл       
>       Выборка2=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);       
>       Пока Выборка2.Следующий() Цикл
>
>       КонецЦикла;
> КонецЦикла;


>

> Если в запросе убрать слово ИЕРАРХИЯ, то правильно открывается и обходится внутренняя выборка.
> Если же указать слово ИЕРАРХИЯ, Выборка возвращает самый верхний итог по иерархии (Самую верхнюю группу). Выборка2 открывается, но ее метод Следующий() возвращает значение ложь. В документации заявлено, что при варианте обхода ПоГруппировкамСИерархией внутренняя выборка должна также содержать данные.
> Что я делаю не так?

 

Ох, не люблю я писать без отладчика. Наверное, что-то типа 

 

 

Рез = Запрос.Выполнить(); 
 
ТабДок.НачатьАвтогруппировкуСтрок();
 
ВыборкаГруппа =Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаГруппа.Следующий() Цикл
    Выборка2=ВыборкаГруппа.Выбрать();
    Пока Выборка2.Следующий() Цикл
    
    КонецЦикла;
КонецЦикла; 

   

Посм., как оно было в отчете ПереченьУслуг в книге Радченко по версии 8.0 (работает в конфигурации книги Радченко по 1С 8.1)

 

 

Процедура ПереченьУслуг(ТабДок, ВидНоменклатуры, ДатаОтчета) Экспорт
//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(ПереченьУслуг)
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Макет = ОтчетОбъект.ПолучитьМакет("ПереченьУслуг");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|      СпрНоменклатураМастер.Родитель КАК ГруппаУслуг,
|      ПРЕДСТАВЛЕНИЕ(СпрНоменклатураМастер.Родитель),
|      СпрНоменклатураМастер.Ссылка КАК Услуга,
|      СпрНоменклатураМастер.Представление,
|      ЦеныСрезПоследних.Цена
|ИЗ
|      Справочник.НоменклатураМастер КАК СпрНоменклатураМастер
|            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Цены.СрезПоследних(&ДатаОтчета, ) КАК ЦеныСрезПоследних
|            ПО ЦеныСрезПоследних.Номенклатура = СпрНоменклатураМастер.Ссылка
|ГДЕ
|      СпрНоменклатураМастер.ВидНоменклатуры = &ВидНоменклатуры
|ИТОГИ ПО
|      ГруппаУслуг ИЕРАРХИЯ";
Запрос.УстановитьПараметр("ВидНоменклатуры", Перечисления.ВидыНоменклатуры.Услуга);
Запрос.УстановитьПараметр("ДатаОтчета", ДатаОтчета);
Результат = Запрос.Выполнить();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьГруппаУслугИерархия = Макет.ПолучитьОбласть("ГруппаУслугИерархия");
ОбластьГруппаУслуг = Макет.ПолучитьОбласть("ГруппаУслуг");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаГруппаУслуг = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаГруппаУслуг.Следующий() Цикл
    Если ВыборкаГруппаУслуг.ТипЗаписи() = ТипЗаписиЗапроса.ИтогПоИерархии Тогда
        Область = ОбластьГруппаУслугИерархия;
    Иначе
        Область = ОбластьГруппаУслуг;
    КонецЕсли;
    Область.Параметры.Заполнить(ВыборкаГруппаУслуг);
    ТабДок.Вывести(Область, ВыборкаГруппаУслуг.Уровень());
    ВыборкаДетали = ВыборкаГруппаУслуг.Выбрать();
    Пока ВыборкаДетали.Следующий() Цикл
        ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетали);
        ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетали.Уровень(),, Ложь);
    КонецЦикла;
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ
КонецПроцедуры



 

 


Ответить  
Laddy

02.10.2008 16:49
Отвечает на: »»»»
537568 Re: Обход выборки по группировкам с иерархией

Спасибо!

 

Так действительно работает!

 

Но у меня так и остается нерешенным вопрос:

 

В каких случаях и для чего используют "ОбходРезультатаЗапроса.ПоГруппировкамСИерархией"?

И как обойти все элементы выборки при этом типе обхода?


Ответить  
Ванин Геннадий Владимирович

02.10.2008 17:38
Отвечает на: »»»»
1,0
537569 Re: Обход выборки по группировкам с иерархией


> В каких случаях и для чего используют "ОбходРезультатаЗапроса.ПоГруппировкамСИерархией"?И как обойти все элементы выборки при этом типе обхода?

http://1c-book.ru/P6/SelectQ.php

 

http://masich.info/articles/43/1/30-Ianeieuei-adoiiediaie-Auaia-aaiiuo-a-ioao/Nodaieoa1.html

 


Ответить  
Белоусов Павел, 1С

07.10.2008 22:10
Отвечает на: »»»»
537696 Re: Обход выборки по группировкам с иерархией

Привожу выдержку из встроенной справки (Содержание-1С:Предприятие-Встроенный язык-Работа с запросами-Выполнение и работа с запросами во встроенном языке-Основные приемы работы

):

 

Иерархический обход результата

Следующий способ обхода результата - иерархический. При данном обходе обходятся только записи, находящиеся на одном уровне. Для получения иерархической выборки из результата необходимо вызвать метод Выбрать() объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкамСИерархией.

Пример:

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

Выборка из результата с иерархическим обходом в нашем примере обойдет только записи с номерами 1 и 11, так как только эти две записи находятся на самом верхнем уровне. Проиллюстрируем это, представив наш результат в виде дерева, где узлами будут итоговые записи, а листьями дерева будут детальные записи. Вот что у нас получится:

 

Из этого рисунка видно, что именно записи с номерами 1 и 11, и только они находятся на первом уровне дерева, в результате чего только они и попадают в первый проход иерархической выборки.

Возникает вопрос, как получать остальные записи результата запроса. Для этого у объекта ВыборкаИзРезультатаЗапроса можно получить еще одну выборку, которая будет обходить подчиненные записи текущей записи выборки. В нашем примере в момент, когда объект Выборка2 будет позиционирован на запись с номером 1, мы запросим у него иерархическую выборку. Таким образом, мы получим выборку, которая нам вернет записи с номерами 2, 7. А когда Выборка2 будет спозиционирована на записи с номером 11, то полученная у нее иерархическая выборка вернет записи с номерами 12, 16. Так реализуется иерархический обход результатов запроса. Заметим, что у выборки можно получать вложенные выборки любого типа. Так, если бы мы запросили у Выборки2, спозиционированной на записи 1, линейную выборку, то с ее помощью мы бы получили записи с номерами записей со 2-го по 10-й. Проиллюстрируем описанную методику на примере.

Пример:

Процедура ВыполнитьЗапрос()
    // Создадим запрос.
    Запрос = Новый Запрос;

    // Установим текст запроса
    Запрос.Текст = "Выбрать
             |Товар, Количество
             |Из
             |Документ.РасхНакл.Состав
             |Упорядочить по Товар
             |Итоги Сумма(Количество) По Товар, Товар Иерархия";

    // Выполним запрос и запишем результат в переменную
    // РезультатЗапроса.
    РезультатЗапроса = Запрос.Выполнить();

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

    ВыдатьРекурсивно(Выборка);

КонецПроцедуры

Процедура ВыдатьРекурсивно(Выборка)
    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
        // ... выведем в окно сообщений поля из результата
        Товар = Выборка.Наименование;
        Количество = Выборка.Количество;
        Сообщить("Товар: " + Товар + " Количество: " + Количество);

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

Обход результата по группам

Третий, и последний способ обхода результата - по группам. Он сходен с иерархическим обходом, но с одним различием: записи с иерархическими итогами при обходе в нем рассматриваются как детальные записи, а не как узловые. Для получения выборки по группам из результата запроса необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкам.

Пример:

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

Перебрав в ней всё, мы получим записи с номерами 1, 2, 7, 11, 12, 16.

Пример:

Процедура ВыполнитьЗапрос()
    // Создадим запрос.
    Запрос = Новый Запрос;

    // Установим текст запроса
    Запрос.Текст = "Выбрать
             |Товар, Количество
             |Из
             |Документ.РасхНакл.Состав
             |Упорядочить по Товар
             |Итоги Сумма(Количество) По Товар, Товар Иерархия";

    // Выполним запрос и запишем результат в переменную
    // РезультатЗапроса.
    РезультатЗапроса = Запрос.Выполнить();

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

    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
        // ... выведем в окно сообщений поля из результата
        Товар = Выборка.Наименование;
        Количество = Выборка.Количество;
        Сообщить("Товар: "+Товар+" Итого по товару: "+Количество);

        ВыдатьДочерниеЗаписи(Выборка.Выбрать());

    КонецЦикла;
КонецПроцедуры

Процедура ВыдатьДочерниеЗаписи (Выборка)
    // Пока в выборке есть записи ...
    Пока Выборка.Следующий() Цикл
        // ... выведем в окно сообщений поля из результата
        Товар = Выборка.Наименование;
        Количество = Выборка.Количество;
        Сообщить("Товар: "+Товар+" Количество: "+Количество); 
    КонецЦикла;
КонецПроцедуры

 


Ответить  
Корнилова Татьяна

24.10.2008 11:23
Отвечает на: »»»»
538049 Re: Обход выборки по группировкам с иерархией

Хочу вернуться к обсуждению "Обхода выборки по группировкам с иерархией" (537541).

Она действительно не работает, то есть не выбирает детальные записи.

 Ссылка на  встроенную справку "Содержание-1С:Предприятие-Встроенный язык-Работа с запросами-

                                                Выполнение и работа с запросами во встроенном языке-Основные приемы работы)" ничего не дает.

Аналогичный текст приведен в документации "1С: Предприятие 8.1 Конфигурирование и администрация. Часть 1".

Я выполнила те примеры, которые там предлаются и обнаружила:

 

1) Ошибку в самом запросе

 

Процедура ВыполнитьЗапрос()
    // Создадим запрос.
    Запрос = Новый Запрос;
    // Установим текст запроса
    Запрос.Текст = "Выбрать
             |Товар, Количество
             |Из
             |Документ.РасхНакл.Состав
             |Упорядочить по Товар
             |Итоги Сумма(Количество) По Товар, Товар Иерархия";
    // Выполним запрос и запишем результат в переменную
    // РезультатЗапроса.
    РезультатЗапроса = Запрос.Выполнить();
    // Получим выборку из результата запроса.
    СпособВыборки = ОбходРезультатаЗапроса.ПоГруппировкамСИерархией;
    Выборка = РезультатЗапроса.Выбрать(СпособВыборки);
    ВыдатьРекурсивно(Выборка);
КонецПроцедуры
 

 Строка  Итоги Сумма(Количество) По Товар, Товар Иерархия

 

удваивает итоги по товарам

 

Согласно документации "1С: Предприятие 8.1 Конфигурирование и администрация. Часть 1". (Глава 5. Работа с запросами. Итоги по иерархии):

 

"Есть возможность рассчитать итоги по иерархии. Для этого после имени поля, для которого вычисляются итоги, необходимо

указать ключевое слово ИЕРАРХИЯ. В результате будут рассчитаны итоги по контрольным точкам ( в нашем случае ТОВАР ) и итоги по иерархии  для контрольных точек."

Поэтому достаточно использовать строку

 

Итоги Сумма(Количество)  Товар Иерархия

 

2)  Независимо от варианта итоговой строки запроса обход выборки по группировкам с иерархией

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

 

В качестве доказательства прилагаю базу. Мой пример немного отличается, он построен на каркасной конфигурации, но суть дела не меняет.

Это отчет "ОбходРезультатовВыборки".

Допускаю, что у меня не самая новая версия Учебной базы: 8.1.9. Может быть уже все исправлено, но надо об этом где-то сказать,

т.к. всевозможные ссылки в интернете перепечатывают текст, который привел Белоусов Павел.

 

 

 

 

 

 

 

 


Ответить  
Ванин Геннадий Владимирович

24.10.2008 12:19
Отвечает на: »»»»
538052 Re: Обход выборки по группировкам с иерархией


> удваивает итоги по товарам

 

Вы имеете под "удваивает" в виду "повторяет"?

и правильно писать 

Итоги Сумма(Количество)  Товар Иерархия 

 вместо

Итоги Сумма(Количество) По Товар, Товар Иерархия 

т.е. не писать дважды Товар, чтобы не дублировался вывод? 


Ответить  
Корнилова Татьяна

24.10.2008 14:02
Отвечает на: »»»»
2,0
538058 Полезный совет! Re: Обход выборки по группировкам с иерархией
Да, конечно, повторяет итоговые строки для Товара.

Ответить  
Геннадий Ванин (Новосибирск)

04.02.2009 11:31
Отвечает на: »»»»
541138 Re: Обход выборки по группировкам с иерархией

> Привожу выдержку из встроенной справки (Содержание-1С:Предприятие-Встроенный язык-Работа с запросами-Выполнение и работа с запросами во встроенном языке-Основные приемы работы

 

Для удобства (быстрого) доступа, во встроенной справке эту тему (Основные приемы работы) можно найти поиском по
ПоГруппировкамСИерархией Основные приемы работы

Хотя, код и запросы из этой темы встроенной справки не выполнишь ни в какой конфигурации.

 

Зато, в 

http://1c-book.ru/P6/SelectQ.php

написано практически всё то же самое, но запросы и код можно напрямую выполнять в конфигурации, создаваемой из шаблона

Демонстрационные конфигурации\Примеры 8.1\1.0.6.1 

с диска ИТС (и, кажется,  CD книги Габец содержит) 

 

 


Ответить  
Петров Иван

05.02.2009 17:06
Отвечает на: »»»»
541244 Re: Обход выборки по группировкам с иерархией
Так все таки кто-нибудь может четко сказать, соответствует ли описание языка тому, что получается на практике??? это глюк платформы или наши "кривые" руки?? Я проверял на учебной конфигурации по основным объектам - результаты также отличаются от описания...

Обходы не просто перепутаны, они вообще работают не предсказуемо. Например, при обходе по группировкам с иерархией на первом же проходе выдаются детальные записи по элементам, не принадлежащим ни одной группе. Хотя по идее детальные записи вообще в него попасть не должны...

З.Ы. Если не трудно, то скиньне демонстрационные конфигурации - проверю на них и если и там не соответствует, то буду отписываться в форуме для разработчиков.

Ответить  
Rasch Maslasky

10.08.2009 10:52
Отвечает на: »»»»
549518 Re: Обход выборки по группировкам с иерархией

Добрый день, уважаемые коллеги!

 

Все это понятно, и действительно описано в стандартной документации, ведь простой перебор иерархии это 5% сложностей, связанных с древовидной структурой.

 

Как решать корректно задачи:

 

1. Полный обход по одному Родителю (не вся древовидная стуктура). Выбирается Родитель, и относительно него, формируется дерево.

 

2. Расчет сумм нижлежащих уровней относительно выбранного Родителя.

 

3. Подсчет количества нижлежащих уровней, ну например сколько (количество) уровней 2, уровней 3 относительно выбранного Родителя

 

Спасибо. Удачи!

 


Ответить  
Александр

10.08.2009 14:05
Отвечает на: »»»»
549544 Re: Обход выборки по группировкам с иерархией

А оно у вас вообще работает так, как описано в стандартной документации?

 

Когда я последний раз интересовался этим вопросом, иерархический обход работал крайне странно, и на форумах в интернете не было ничего определенного на тему того, как заставить его работать нормально. Правда, это было давно, в каком-то из релизов платформы могли и поправить.  


Ответить  
Rasch Maslasky

10.08.2009 17:40
Отвечает на: »»»»
549595 Re: Обход выборки по группировкам с иерархией

Добрый день, уважаемые коллеги!

 

:) да, то что "написано" в доках работает :)

 

В доке, достаточно "точно" все описано... :) 

 

Простой обход - это ничего не решает, в прикладном смысле. Просто "монстры" 1С что-то молчат :) Хотелось бы узнать опыт других. Неужели задачи связанные с древовидной структурой никто не решал. СТРАННО !!! ОЧЕНЬ СТРАННО !!! это же ВЕЗЬДЕ... используется... :) 

 

Удачи.


Ответить  
CLEO

10.08.2009 17:44
Отвечает на: »»»»
549598 Re: Обход выборки по группировкам с иерархией
"Монстры" 1С вообще молчаливые :).

Ответить  
Rasch Maslasky

10.08.2009 17:50
Отвечает на: »»»»
549602 Re: Обход выборки по группировкам с иерархией

Добрый день, уважаемые коллеги!

 

Это наверное все Фрейд виноват :)

 

Ладно на этом с "лирикой" закончим, давайте серьезно. :) Ау, кто нибудь есть дома (у монстров 1С и не только) ?

 

Как насчет "древовидной структуры" !!! 

 

Удачи!


Ответить  
Коган Эстер

13.08.2009 17:08
Отвечает на: »»»»
549867 Re: Обход выборки по группировкам с иерархией
Дерево с нерегулярной вложенностью обходится рекурсией, естественно. Ванин привёл очень информативную ссылку на эту тему.

Ответить  
Шлаев Кирилл

29.01.2010 07:28
Отвечает на: »»»»
557196 Re: Обход выборки по группировкам с иерархией

Ссылка не пашет. Выложите текст!


Ответить  
Маликов Денис Сергеевич

20.06.2011 16:40
Отвечает на: »»»»
580550 Re: Обход выборки по группировкам с иерархией

Рез=Запрос.Выполнить();
Выборка= Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией,"Номенклатура");    
Пока Выборка.Следующий() Цикл        
Выборка2=Выборка.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией,"Номенклатура");        
Пока Выборка2.Следующий() Цикл
 
КонецЦикла;
КонецЦикла; 
Вот правильный обход.


Ответить  


«« Платформа 8.2: РАУЗ в УПП для... Платформа 8.2: На платформе 8.2 вылетает... »»