К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

перебор группы справочника контрагенты

Гость
0 - 19.12.2014 - 08:41
Требуется перебрать и вывести в требуемом виде в макет элементы группы справочника контрагенты. Элементы в группе представлены в следующем виде:

требуемая группа Исполнители.

Исполнители -
Город1 -
Класс исполнителя1 -
Класс исполнителя2 -
Исполнитель1
Исполнитель2
Класс исполнителя4 -
Класс исполнителя5 -
Исполнитель1
Город2


и тд. То есть в группе исполнители, есть вложенные группы города, и прочие элементы. В группах города есть группы класс исполнителя, в которых как могут быть так и могут отсутствовать исполнители.

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

ВЫБРАТЬ
Контрагенты.Ссылка,
Контрагенты.Родитель КАК Родитель
ИЗ
Справочник.Контрагенты КАК Контрагенты
ГДЕ
Контрагенты.Ссылка В ИЕРАРХИИ(&Исполнители)

УПОРЯДОЧИТЬ ПО
Родитель.Наименование
ИТОГИ ПО
Родитель



Uho
1 - 19.12.2014 - 09:20
и что не устраивает?
Гость
2 - 19.12.2014 - 09:21
(1) да вот пока пробую переберать
Uho
3 - 19.12.2014 - 09:29
т.е тема - это не вопрос, а просто так - поговорить?
Гость
4 - 19.12.2014 - 09:36
(3) вопрос, пока не очень получается
Гость
5 - 19.12.2014 - 10:26
(3) ну вот так не получается нормально перебрать!!!! По этому вот и вопрос!!!


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

КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Гость
6 - 19.12.2014 - 10:27
когда на кубани разметку сделают что бы код нормально структурировался?????
Гость
7 - 19.12.2014 - 10:28
(3) подскажите пожалуйста как нужно? в запросе что не то или в переборе я что не так делаю?
Гость
8 - 19.12.2014 - 10:49
(3) как думаете как нужно правильно что бы шел перебор каждого каталога как при открытии группы в справочнике, как если бы это было перебором каталога через быбрвть
Гость
9 - 19.12.2014 - 11:46
Uho
10 - 19.12.2014 - 12:00
8-LivingStar > я вообще не понимаю, что надо то? код из (0) - рабочий. В чем тогда вопрос?
зы. а разметка давно уже есть, например:

Код:
ВЫБРАТЬ
	Контрагенты.Ссылка
ИЗ
	Справочник.Контрагенты КАК Контрагенты
Гость
11 - 20.12.2014 - 00:25
сразу запросом сгруппируй как надо
Гость
12 - 20.12.2014 - 07:46
(11) а как сгруппировать подскажите?

(10) я перебираю выборку но она идет беспорядочно, не так как в справочнике

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

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

(11) как так нужно сгруппировать?
Гость
13 - 20.12.2014 - 09:03
(12) отсортируй
Гость
14 - 20.12.2014 - 09:06
(13) ну так вот же

УПОРЯДОЧИТЬ ПО
Родитель.Наименование

дело в том что хочу что бы при переборе вначале шли первые вложенные группы требуемого каталога, их под группы, элементы, и так следующий

но выбмрает все группы в куче ((( че то я не так понимаю видимо!!!
Гость
15 - 20.12.2014 - 09:18
(14) ну так не по наименованию же
Гость
16 - 21.12.2014 - 10:13
подскажите как правильно обойти данную выборку, уже более менее но все равно не то, может в запросе что подправить???

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

КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;
Гость
17 - 21.12.2014 - 10:23
Вот так вижу, что значения групп повторяются!!! Как от этого избавиться? ТО есть входит в группу, потом элемент, потом снова эта же группа в переборе...

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

КонецЦикла;
КонецЦикла;
КонецЦикла;
КонецЕсли;


К списку вопросов






Copyright ©, Все права защищены