Имя: Пароль:
1C
1С v8
Запрос и вхождение в группу
0 2307861c
 
26.11.11
12:26
Можно в запросе определить находяться ли два в элемента в Общей группе верхнего уровня?
1 ДенисЧ
 
26.11.11
12:29
ага.
2 Нуф-Нуф
 
26.11.11
12:30
(1) +100500
3 2307861c
 
26.11.11
12:32
(1)А как? Что-то я немогу никак придумать (найти)
4 ДенисЧ
 
26.11.11
12:33
что-о типа в иерархии..
Справку у тебя злобные душманы отняли?

Могу по дешёвке продать, если жалостливую историю расскажешь и скан заявы в пилицию предъявишь...
5 2307861c
 
26.11.11
12:36
(4)А как? Если например я незнаю группу верхнего уровня А сструктура следущая
Группа1
Группа11
Элемент1
Группа12
Элемент2
6 golden-pack
 
26.11.11
12:38
нельзя
7 Нуф-Нуф
 
26.11.11
12:40
(6) +100500
8 ДенисЧ
 
26.11.11
12:42
(7) ты уж определись :-)
9 andrewks
 
26.11.11
13:10
выбрать ссылка где группа истина и родитель is null и ссылка1 в иерархии ссылка и ссылка2 в иерархии ссылка
10 Нуф-Нуф
 
26.11.11
13:15
(9) а разве родитель элемента первого уровня - это нулл?
11 wertyu
 
26.11.11
13:17
(10) конечно же это пустаяссылька
12 Нуф-Нуф
 
26.11.11
13:20
(9) выбрали родителей первого уровня а дальше что?
13 andrewks
 
26.11.11
13:26
(10) ну да, если написать как Родитель.Ссылка. ну, или можно на пустое значение проверить. не это главное, главное - дать идею и пнуть в нужном направлении :)
(12) это ты у автора спрашивай, что именно ему надо - мне неведомо
14 Нуф-Нуф
 
26.11.11
13:27
(13) ну так если не понял что ему надо - чего тогда постил?


имхо ему нужно узнать, являются ли два выбранных элемента подчиненные одному родителю
15 2307861c
 
26.11.11
13:28
(12)Ну если мы знаем родителей первого уровня Элемента1 и Элемента2, то мы уже можем узнать совпадают они или нет, что мне и требуется.
16 wertyu
 
26.11.11
13:28
ТС неполно описал задачу
(0) что в итоге должно вылезти из запроса, можно ли эти два элемента и группы передать в параметре или это должно быть подзапросом
17 andrewks
 
26.11.11
13:28
(14) я как раз на этот вопрос и ответил, имхо. или ты не согласен?
18 2307861c
 
26.11.11
13:30
Незнаю, не вижу я универсального решения сделаю типа так наверно (здесь на форуме видел)

Выбрать
Выбор когда Ссылка.Родитель Есть NULL
     Тогда "Верхний уровень"
     Когда Ссылка.Родитель.Родитель Есть NULL
     Тогда Ссылка.Родитель
     Когда Ссылка.Родитель.Родитель.Родитель Есть NULL
     Тогда Ссылка.Родитель.Родитель
     Когда Ссылка.Родитель.Родитель.Родитель.Родитель Есть NULL
     Тогда Ссылка.Родитель.Родитель.Родитель


Тем более что иерархия - это подразделения организации, я не думаю что будет очень много вложений, ограничусь пока 5.
19 wertyu
 
26.11.11
13:30
(15) ПринадлежитЭлементу ?
20 Нуф-Нуф
 
26.11.11
13:30
(15)(17) лично я из (9) понял только как получить родителей первого уровня (в принципе всех родителей), без привязки к элементу1 и элементу2.
поэтому и задал вопрос - че дальше то, как связать это с элементами?
21 wertyu
 
26.11.11
13:30
(18) не парься, юзай ПринадлежитЭлементу
22 andrewks
 
26.11.11
13:30
(20) ну тогда ты плохо смотрел
23 andrewks
 
26.11.11
13:31
(18) ты бы задачу описал, глядишь, что и выгорело бы
24 Нуф-Нуф
 
26.11.11
13:32
имхо код по получению элементов первого уровня, выборка этих элементов в цикле и ПринадлежитЭлементу для элемента1 и элемента2
25 EvgeniuXP
 
26.11.11
13:33
всех родителей в один список, потом у всех элементов проверить родителя на этот список - это что ли надо?
26 2307861c
 
26.11.11
13:59
ЗАДАЧА вот типа такой запрос
ВЫБРАТЬ
      Спр1.Ссылка,
      Спр2.Ссылка
ИЗ
 Справочник.ФизЛица КАК Спр1
 ЛевоеСоединение Справочник.ФизЛица КАК Спр2
 По Спр2.Основной = Спр1.ФизЛицо

И тепрь нужно в этом запросе провенрять что Спр1.Родитель и Спр2.родитель находяться в одной группе

Вот упрощенный вариант задачи
27 andrewks
 
26.11.11
14:01
(26) а если в разных - что должен выдать запрос? а если в одной?
28 2307861c
 
26.11.11
14:03
(27)Если в разных тогда отбрасывать Спр2, а если в одной тогда брать Спр2
29 Rie
 
26.11.11
14:03
(26) Соедини ещё раз со справочником ФизЛица, а условием поставь В ИЕРАРХИИ для обоих.
30 andrewks
 
26.11.11
14:08
(28) я так и не пойму, ты под этим понимаешь, что они непосредственно  находятся в одной и той же группе, или что они принадлежат с учётом иерархии одной группе самого верхнего уровня
31 2307861c
 
26.11.11
14:08
(29)Непонял, как? К справочнику ФизЛиц - прикрутить через лево Спр1 и Спр2?
32 2307861c
 
26.11.11
14:08
(30)или что они принадлежат с учётом иерархии одной группе самого верхнего уровня
33 KarpovDeniska
 
26.11.11
14:11
(26) получить родителей верхнего уровня а потом сделать в иерархии с твоим запросом????
34 Rie
 
26.11.11
14:14
(29) Что-нибудь вроде
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизЛица КАК Группы
   ПО (Спр1.Ссылка В ИЕРАРХИИ (Группы.Ссылка))
   И (Спр2.Ссылка В ИЕРАРХИИ (Группы.Ссылка))
35 Rie
 
26.11.11
14:14
(34)->(31)
36 2307861c
 
26.11.11
14:17
(35)Здесь наверно не получится, я все написал упрощенно, а вобще Спр1 и Спр2 это буду 2 набора данных в СКД и их нужно соединить, я вижу что их можно будет соеденить если в каждом наборе получить родитель верхнего уровня.
37 andrewks
 
26.11.11
14:18
+(34) а вместо Спр2.Ссылка

выбор когда Группы.Ссылка is null тогда null иначе Спр2.Ссылка конец
38 KarpovDeniska
 
26.11.11
14:20
(36)  а нах 2 набора??? (по родителям и соединяй)
39 2307861c
 
26.11.11
14:22
(38)Да потому что это отчет из конфы ЗКБУ и там их не 2,а 5 не переписывать же полностью этот отчет.
40 Rie
 
26.11.11
14:23
(36) Ты, на всякий случай, задачу сформулируй полностью. А то хрен знает, какие у тебя там ещё требования спрятаны.
41 2307861c
 
26.11.11
14:24
(40)Да вот впринцепе это все.
42 KarpovDeniska
 
26.11.11
14:31
(41) проверить принадлежность двух элементов к одной группе верхнего уровня из 5 наборов данных,такая задача??? Ну все понятно впринципе...............
43 2307861c
 
26.11.11
14:34
(42)Все 5 наборов соединяються через закладку "Связи наборов данных" и их нужно соединить по родителю верхнего уровня
44 KarpovDeniska
 
26.11.11
14:46
(43)кроме как в каждом наборе получать верхний уровень ниче не придумывается,и то если они связаны не через объединить,а так проще переписать
45 Лефмихалыч
 
26.11.11
14:52
(0) соединений по иерархии не бывает, по этому просто запросом нельзя.
Хотя можно попытаться запросом можно найтить группу верхнего уровня для каждого из элементов и потом сравнить. Щас покумакаю, может и бредовая идея...
46 2307861c
 
26.11.11
14:55
(45) как в (18)?
47 Лефмихалыч
 
26.11.11
14:56
(46) нет
Элемента ровно два или может быть массив с элементами?
48 Rie
 
26.11.11
14:57
(45) В ПО условие может быть любым.
49 2307861c
 
26.11.11
14:58
(47)Может быть много, уровней тоже
50 Rie
 
26.11.11
15:00
А если условие что-то типа
Спр1.Ссылка В ИЕРАРХИИ
(ВЫБРАТЬ Группы.Ссылка ИЗ Справочник.ФизЛица КАК Группы ГДЕ Спр2.Ссылка В ИЕРАРХИИ (Группы.Ссылка))
51 Лефмихалыч
 
26.11.11
15:00
(48) давай попробуй соединить по иерархии
52 Лефмихалыч
 
26.11.11
15:16
не,  в (45) фуфло, а не идея. Тут только быдлокодом вроде (18)
53 2307861c
 
26.11.11
15:32
(52)Ок я понял. Всем спасибо.
54 golden-pack
 
26.11.11
16:40
нельзя потому что использовать "в иерархии" можно только с выборокой или предопределенным списком
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший