![]() |
перебор группы справочника контрагенты Требуется перебрать и вывести в требуемом виде в макет элементы группы справочника контрагенты. Элементы в группе представлены в следующем виде: требуемая группа Исполнители. Исполнители - Город1 - Класс исполнителя1 - Класс исполнителя2 - Исполнитель1 Исполнитель2 Класс исполнителя4 - Класс исполнителя5 - Исполнитель1 Город2 и тд. То есть в группе исполнители, есть вложенные группы города, и прочие элементы. В группах города есть группы класс исполнителя, в которых как могут быть так и могут отсутствовать исполнители. Можно ли сделав такой запрос, перебирать каждую из групп, проверяя, на группу и элементы, выводить в отчет. Или какой должен быть запрос что бы сделать такой перебор? Задача перебрать каждую из подгрупп, группы Исполнители справочника контрагенты. ВЫБРАТЬ Контрагенты.Ссылка, Контрагенты.Родитель КАК Родитель ИЗ Справочник.Контрагенты КАК Контрагенты ГДЕ Контрагенты.Ссылка В ИЕРАРХИИ(&Исполнители) УПОРЯДОЧИТЬ ПО Родитель.Наименование ИТОГИ ПО Родитель |
и что не устраивает? |
(1) да вот пока пробую переберать |
т.е тема - это не вопрос, а просто так - поговорить? |
(3) вопрос, пока не очень получается |
(3) ну вот так не получается нормально перебрать!!!! По этому вот и вопрос!!! Запрос.УстановитьПараметр("Исполнители", Справочники.Контрагенты.НайтиПоНаименованию("Исполнители")); Рез = Запрос.Выполнить(); Если Не Рез.Пустой() Тогда ВыборкаИсполнитель = Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаИсполнитель.Следующий() Цикл ОбластьСтрока.Параметры.Город = ВыборкаГород = ВыборкаИсполнитель.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаГород.Следующий() Цикл ВыборкаКлассИсполнителя = ВыборкаГород.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаКлассИсполнителя.Следующий() Цикл КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли; |
когда на кубани разметку сделают что бы код нормально структурировался????? |
(3) подскажите пожалуйста как нужно? в запросе что не то или в переборе я что не так делаю? |
(3) как думаете как нужно правильно что бы шел перебор каждого каталога как при открытии группы в справочнике, как если бы это было перебором каталога через быбрвть |
[img]http://dlm11.meta.ua/pic/0/75/157/9XZxx9YwMr.gif[/img] |
8-LivingStar > я вообще не понимаю, что надо то? код из (0) - рабочий. В чем тогда вопрос? зы. а разметка давно уже есть, например: [code] ВЫБРАТЬ Контрагенты.Ссылка ИЗ Справочник.Контрагенты КАК Контрагенты [/code] |
сразу запросом сгруппируй как надо |
(11) а как сгруппировать подскажите? (10) я перебираю выборку но она идет беспорядочно, не так как в справочнике если я делал перебором через выбрать, то шло по порядку, все группы вложенного уровня выбираемого каталога как они идут по порядку тут же идет в зазноброс все каталоги, вот я и думаю как выбрать то структуру справочника как она есть, и обойти каждую ветку последовательно вложенных каталогов, требуемой папки (11) как так нужно сгруппировать? |
(12) отсортируй |
(13) ну так вот же УПОРЯДОЧИТЬ ПО Родитель.Наименование дело в том что хочу что бы при переборе вначале шли первые вложенные группы требуемого каталога, их под группы, элементы, и так следующий но выбмрает все группы в куче ((( че то я не так понимаю видимо!!! |
(14) ну так не по наименованию же |
подскажите как правильно обойти данную выборку, уже более менее но все равно не то, может в запросе что подправить??? Запрос.Текст = " |ВЫБРАТЬ | Контрагенты.Ссылка, | Контрагенты.Родитель КАК Родитель |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Ссылка В ИЕРАРХИИ(&Исполнители) | |УПОРЯДОЧИТЬ ПО | Контрагенты.Ссылка.Наименование |ИТОГИ ПО | Ссылка ИЕРАРХИЯ"; Запрос.УстановитьПараметр("Исполнители", Справочники.Контрагенты.НайтиПоНаименованию("Исполнители")); Рез = Запрос.Выполнить(); Если Не Рез.Пустой() Тогда ВыборкаИсполнитель = Рез.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока ВыборкаИсполнитель.Следующий() Цикл //ОбластьСтрока.Параметры.Город = ВыборкаГород = ВыборкаИсполнитель.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаГород.Следующий() Цикл ВыборкаКлассИсполнителя = ВыборкаГород.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаКлассИсполнителя.Следующий() Цикл КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли; |
Вот так вижу, что значения групп повторяются!!! Как от этого избавиться? ТО есть входит в группу, потом элемент, потом снова эта же группа в переборе... Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | Контрагенты.Ссылка, | Контрагенты.Родитель КАК Родитель |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Ссылка В ИЕРАРХИИ(&Исполнители) | |УПОРЯДОЧИТЬ ПО | Контрагенты.Ссылка.Наименование |ИТОГИ ПО | Ссылка ИЕРАРХИЯ"; Запрос.УстановитьПараметр("Исполнители", Справочники.Контрагенты.НайтиПоНаименованию("Исполнители")); Рез = Запрос.Выполнить(); Если Не Рез.Пустой() Тогда ВыборкаИсполнитель = Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаИсполнитель.Следующий() Цикл //ОбластьСтрока.Параметры.Город = ВыборкаГород = ВыборкаИсполнитель.Выбрать(ОбходРезультатаЗапроса.Прямой); Пока ВыборкаГород.Следующий() Цикл ВыборкаКлассИсполнителя = ВыборкаГород.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией); Пока ВыборкаКлассИсполнителя.Следующий() Цикл КонецЦикла; КонецЦикла; КонецЦикла; КонецЕсли; |
Текущее время: 22:37. Часовой пояс GMT +3. |