Имя: Пароль:
1C
1С v8
Уровни группировок справочника через запрос?
0 spiller26
 
15.04.13
09:45
Как в запросе вытащить Уровень, Справочника?

По типу:
Группа           -  Уровень      - Родитель
Продукция        -  1            -   "нет"
Упакованная      -  2            - "Продукция"
Материалы        -  1            -   "нет"
1 Cube
 
15.04.13
09:47
(0) Это сложно. Тебе зачем?
2 Галахад
 
гуру
15.04.13
09:49
Уровень()
3 spiller26
 
15.04.13
09:52
(1) Есть у нас Справочник "Брэнды" он иерархический, в этом справочнике забита Номенклатура, которая принадлежит тому или иному бренду.
Нужно вынести продажи по брендам в иерархии.
(2) Т.е. сначало запросом вытащить Таблицу, потом циклом уровни поставить?
4 palpetrovich
 
15.04.13
09:53
(3) в Дерево выгрузить не?
5 Classic
 
15.04.13
09:53
(3)
В таблицу не получишь. А вот просто вывести - можно
6 MadHead
 
15.04.13
09:54
Если так стоит задача, я бы добавил реквизит уровень
7 cw014
 
15.04.13
09:56
А вытаскивать в отчет надо? Может через СКД?
8 spiller26
 
15.04.13
09:57
(7) СКД не поможет данные замороченные
9 spiller26
 
15.04.13
09:58
(4) примерно так?

Запрос = Новый Запрос;
Запрос.Текст =
   "ВЫБРАТЬ
   |    Номенклатура.Наименование КАК Наименование
   |ИЗ
   |    Справочник.Номенклатура КАК Номенклатура
   |УПОРЯДОЧИТЬ ПО
   |    Наименование ИЕРАРХИЯ";
Результат = Запрос.Выполнить();      
Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
ЭлементыФормы.Дерево.СоздатьКолонки();
10 Classic
 
15.04.13
10:01
(9)
Иерархия наименования?
11 palpetrovich
 
15.04.13
10:02
(9) примерно так, но лучше все-таки
   Выборка = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл
...

так можно гибче заполнять строки, к примеру выделить жирным Папки...
12 spiller26
 
15.04.13
10:05
(10) Это пример: там должна быть "Ссылка"
13 palpetrovich
 
15.04.13
10:06
+11 а почему "Номенклатура.Наименование" ?
14 palpetrovich
 
15.04.13
10:08
(12) а, тогда (13) не читать :)
15 NicolayNN
 
15.04.13
10:09
Количество уровней ограничено?
Может так:
ВЫБРАТЬ
   ВЫБОР
       КОГДА Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА 0
       КОГДА Номенклатура.Родитель.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
           ТОГДА 1
       ИНАЧЕ 2
   КОНЕЦ КАК Уровень,
   Номенклатура.Ссылка
ИЗ
   Справочник.Номенклатура КАК Номенклатура
16 spiller26
 
15.04.13
10:13
(15) Уровней аж целых "9"
(9) Все спасибо готово
   ЗапросК.Текст =
   "
   |ВЫБРАТЬ
   |    Брэнды.Ссылка КАК Ссылка,
   |    Брэнды.Родитель,
   |    0 КАК УровеньИерархии;
   |ИЗ
   |    Справочник.Брэнды КАК Брэнды
   |
   |УПОРЯДОЧИТЬ ПО
   |    Ссылка ИЕРАРХИЯ";
   РезультатК = ЗапросК.Выполнить();
   Выборка = РезультатК.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
   Пока Выборка.Следующий() Цикл
       Выборка.УровеньИерархии = Выборка.Уровень();
   КонецЦикла;
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.