![]() |
![]() |
|
v8: Как указать уровень элемента справочника в запросе | ☑ | ||
---|---|---|---|---|
0
Grand
07.11.06
✎
12:25
|
Вот есть в языке возможность узнать уровень в справочнике, например, СпрНоменклатура.Уровень().
Подскажите пожалуйста, как можно этоже сделать в запросе, чтобы была: _____________________________ Номенклатура | Уровень | ----------------------------- | | |
|||
1
megalodon
07.11.06
✎
12:27
|
ну если известен реально максимальный уровень - тогда да.
|
|||
2
Grand
07.11.06
✎
12:35
|
Как?
|
|||
3
zbv
07.11.06
✎
12:37
|
(2) Непонял что надо то? поподробнее
|
|||
4
VasilyKushnir
07.11.06
✎
12:37
|
А зачем в запросе? При выводе на печать из запроса имеешь ссылку на элемент номенклатуры, к примеру, Товар, тогда Товар.Уровень(). Или, что мне больше по душе, Товар.ПолноеНаименование() - выдаст всю цыпочку подчиненности для выбраного элемента.
|
|||
5
Grand
07.11.06
✎
12:38
|
У меня есть такая реализация, но она мне не очень нравится
------------------------------------------------------------- ВЫБОР КОГДА Номенклатура = &ПустаяНоменклатура ТОГДА 1 КОГДА Номенклатура.Родитель = &ПустаяНоменклатура ТОГДА 2 КОГДА Номенклатура.Родитель.Родитель = &ПустаяНоменклатура ТОГДА 3 КОГДА Номенклатура.Родитель.Родитель.Родитель = &ПустаяНоменклатура ТОГДА 4 КОГДА Номенклатура.Родитель.Родитель.Родитель.Родитель = &ПустаяНоменклатура ТОГДА 5 ИНАЧЕ 6 КОНЕЦ КАК УровеньНоменклатуры |
|||
6
megalodon
07.11.06
✎
12:39
|
// ну вот пример для максимум 3 уровня
выбрать с.ссылка, выбор когда с1.ссылка is null тогда 1 когда с2.ссылка is null тогда 2 иначе 3 конец как уровень из справочник.статьизатрат как с левое соединение справочник.статьизатрат как с1 по с.родитель = с1.ссылка левое соединение справочник.статьизатрат как с2 по с1.родитель = с2.ссылка |
|||
7
Grand
07.11.06
✎
12:40
|
Потому что в зависимости от уровня там зависит процент
и чем уровень ближе к самой номенклатуре, тот процент и нужно брать |
|||
8
Лефмихалыч
07.11.06
✎
12:41
|
(7) добавь реквизит родителям "процент" и не парься
|
|||
9
Grand
07.11.06
✎
12:42
|
он добавлен
|
|||
10
Grand
07.11.06
✎
12:42
|
чем уровень ближе к самой номенклатуре, тот процент и нужно брать
|
|||
11
Grand
07.11.06
✎
12:46
|
ПЕРЕФРАЗИРУЮ: чем группа с установленным процентом ближе к самой номенклатуре, тот процент и нужно брать
|
|||
12
Scooter
07.11.06
✎
12:57
|
проще создать РС и в него записывать процент
или воспользоваться свойствами номенклатуры |
|||
13
Grand
07.11.06
✎
13:01
|
И как РС будет устроен? или что в свойствах хранить?
|
|||
14
Scooter
07.11.06
✎
13:02
|
(13) Номенклатура/процент
|
|||
15
Grand
07.11.06
✎
13:03
|
Элемент номенклатуры?
|
|||
16
Scooter
07.11.06
✎
13:04
|
(15)да
|
|||
17
Grand
07.11.06
✎
13:04
|
А если менеджер хочет установить процент на группу, а в группе их 500? Что делать?
|
|||
18
Scooter
07.11.06
✎
13:11
|
(17)или обработкой или документом
у меня была такая ситуация, пришел к выводу что (12) проще могу ошибаться, поапай, поспрашивай мнение |
|||
19
megalodon
07.11.06
✎
13:12
|
(17) тут приходится выбирать между удобством ввода и удобством хранения информации. можно хранить коэффициент на группу - но придется отказаться от получения его запросом, а можно при установке коэффициента на группу программно устанавливать его на все подчиненные элементы, отрабатывать перенос элемента/группы в другую группу и так далее. выбирать естественно тебе.
|
|||
20
Grand
07.11.06
✎
13:16
|
Понятно.
|
|||
21
Grand
07.11.06
✎
13:16
|
Это я и так знал.
|
|||
22
t_vladimir
07.11.06
✎
13:28
|
Добавить в справочник реквизит Уровень и записывать его при записи элемента.
Других вариантов я в свое время не нашел. 1С не хранит в БД уровни элементов справочника, поэтому и запросом их не выдает. Иерархия в 1С организуется только хранением Родителя. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |