Имя: Пароль:
1C
1С v8
Запрос. ВИерархии. Как правильно пользоваться.
0 shock3r
 
29.11.12
11:54
Подскажите как правильно пользоваться "ВИерархии", может кто-то сможет показать пример кода.

Ситуация. Есть простейший справочник, в котором можно выбрать номенклатуру или группу номенклатуры - первое поле, второе - скидка - обычное число

Вот есть у нас номенклатура Утюг
в справочнике, скидки есть такая запись: Утюг - 2...
Тут ничего сложного Запрос, &Номенклатура = Утюг, достали скидку = 2

Но что делать если утюг лежит в группах: гр. Электроприборы -> гр. Утюги -> Красный утюг
В справочнике скидки есть запись: гр. Электроприборы - 5

и вот я хочу в запрос подставить свой "Красный утюг" и получить 5 для него
1 Wobland
 
29.11.12
11:55
реквизит родителя тебе нужен?
2 shock3r
 
29.11.12
12:04
(1)
если честно я не понял вопрос...

Понимаете в чем смысл, что скидку можно задать на целую группу номенклатуры... в данном случае на электроприборы стоит ссылка 5 рублей.

а из документа мы подставляем в запрос только утюг красный, не зная входит он в эту группу электроприборы, и если он в неё входит, значит ссылка для него равна 5
3 Wobland
 
29.11.12
12:05
(2) посмотри скидку у родителя - оно?
4 Wobland
 
29.11.12
12:06
и у родителя родителя...
5 Rovan
 
гуру
29.11.12
12:06
(0) Ссылка В ИЕРАРХИИ(&Группа)
6 Cube
 
29.11.12
12:07
(4) И у родителя родителя родителя...
Ну вы понели)
7 Cube
 
29.11.12
12:07
(5) Написал не читая?)
8 zladenuw
 
29.11.12
12:07
"Красный утюг".ПринадлежитЭлементу(" Электроприборы ")
9 Cube
 
29.11.12
12:08
(8) В запросе нет такой конструкции.
10 Нуф-Нуф
 
29.11.12
12:10
в запросе никак
11 Нуф-Нуф
 
29.11.12
12:10
либо суй в скд и там используй функцию общего модуля
12 Cube
 
29.11.12
12:12
(10) Ну почему же)) Если ограничиться иерархией до определенной степени вложенности, то перебором... :)
13 shock3r
 
29.11.12
12:18
(5) а можете показать пример кода, что за &Группа, откуда её брать?
14 shock3r
 
29.11.12
12:19
(3) Да мне нужно посмотреть скидку у родителя, но вложенность может быть разная... не только родитель, а еще и родитель родителя и т.д.
15 Reset
 
29.11.12
12:23
А если "гр. Утюги" стоит скидка 7?
5 или 7?
16 shock3r
 
29.11.12
12:28
(7)

Вообщем, я в пример привел справочник, чтобы легче для понимания, но на самом деле использоваться будет РегистСведения периодический, и в таком случае когда 5 или 7, на разные группы, то приоритет будет "По дате регистратора" (регистратор документ который устанавливает скидку) чем позже дата, тем выше приоритет
17 zladenuw
 
29.11.12
12:33
ВЫБРАТЬ
   Модель.Ссылка КАК Ссылка,
   Модель.Родитель
ИЗ
   Справочник.Модель КАК Модель
ГДЕ
   Модель.Ссылка = &Ссылка
ИТОГИ ПО
   Ссылка ТОЛЬКО ИЕРАРХИЯ

Получишь сам элемент и его родителей
18 Cube
 
29.11.12
12:46
(16) Если дата и время регистратора одинаковые (в одном документе установлены), тогда что?
19 shock3r
 
29.11.12
13:29
(18) не представляю тогда как такую ситуацию обработать..., в принципе надо наверное ставить дату период по секунде, чтобы такого косяка не возникло
20 Cube
 
29.11.12
13:30
(19) Так вот, сначала алгоритм, потом программирование... :)
21 МишКа
 
29.11.12
13:38
Запрос к виртуальной таблице "СрезПоследних", сортировка результата по уровням иерархии, выборка первой записи.
22 МишКа
 
29.11.12
13:39
+(21) Сортировка в запросе, разумеется.
23 shock3r
 
29.11.12
13:54
(17) а возможно получить только родителей?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.