Имя: Пароль:
1C
1С v8
Сортировка в иерархическом запросе
0 Embarcadero
 
27.09.12
16:53
Подскажите, пожалуйста. Есть справочник Номенклатура с 2 уровнями иерархии, надо его вывести в ДеревоЗначений.

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

Как при выводе упорядочить элементы верхнего уровня по коду, а нижнего - по алфавиту?
P.S. Знаю, что можно добавить в конце запроса АВТОУПОРЯДОЧИВАНИЕ, но тогда элементы обоих уровней упорядочиваются по алфавиту.
1 Ns33
 
27.09.12
17:41
Нужно свое поле для сортировки, что-то типа такого:

ВЫБОР
   КОГДА Номенклатура.Родитель.Родитель=Значение(Справочник.Номенклатура.ПустаяСсылка) ТОГДА Номенклатура.Код
   ИНАЧЕ  Номенклатура.Наименование
КОНЕЦ    КАК ПолеСортировки
2 Embarcadero
 
28.09.12
13:58
Не получилось, сортировка все равно происходит по ссылкам.
Запрос должен получиться таким?

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

УПОРЯДОЧИТЬ ПО
   Ссылка ИЕРАРХИЯ,
   ПолеСортировки
Закон Брукера: Даже маленькая практика стоит большой теории.