Имя: Пароль:
1C
 
В запросе получить уровень элемента справочника?
0 Новичок v8
 
30.01.07
11:02
Собственно Subj.

Запрос = Новый Запрос;
Запрос.Текст = "
  |ВЫБРАТЬ
  | Номенклатура.Ссылка
  |ИЗ
  | Справочник.Номенклатура КАК Номенклатура";

Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
//Имеем это
  Уровень = Выборка.Ссылка.Уровень();
//А хотелось бы это
  Уровень = Выборка.Уровень;
КонецЦикла;

Что надо добавить в запрос?
1 alexsy
 
30.01.07
11:05
в запросе функции не работают.
или проверят как у тебя сделанно или:
сделать реквизит "уровень", заполнять его при записи в справочник.
для начала работы нужно будет обработку сделать которая оббежить текущие записи и пропишет в них уровни.
2 Новичок v8
 
30.01.07
11:14
С реквизитом "Уровень" - много будет мороки, ещё надо будет отслеживать куда юзер перетащил элемент...
И для одного запроса ( хоть и очень нужного ) огород городить.
3 Волшебник
 
модератор
30.01.07
11:16
Для неглубоких справочников:

Выбор
Когда Родитель = &Пустая Тогда 1
Когда Родитель.Родитель = &Пустая Тогда 2
Когда Родитель.Родитель.Родитель = &Пустая Тогда 3
Конец КАК Уровень
4 alexsy
 
30.01.07
11:20
(2) Если придумаешь красивше решение - крикни мне в аську или как - очень интересно.
(3) не универсально, те же номенклатуры обычно глубокие по иерархии :(
5 Feanor
 
30.01.07
11:23
(1) прав, реквизит - самое нормальное. Перед записью объекта сделай
что нить типа "Уровень = Уровень();" и проблем-то...
6 колодина
 
30.01.07
11:24
а если использовать полный код?
7 Новичок v8
 
30.01.07
11:24
Беру лопату - иду лопатить запросы. :)
8 Волшебник
 
модератор
30.01.07
11:24
выгружай результат в таблицу значений, добавляй колонку, заполняй в цикле

есть еще метод Уровень() у объекта ВыборкаИзРезультатаЗапроса
9 Feanor
 
30.01.07
11:26
(6) "ПолныйКод" - тоже метод, так что для запроса не катит