Имя: Пароль:
1C
1C 7.7
v7: Как узнать владельца элемента справочника ????
,
0 mik888
 
13.02.12
21:46
ситуация такая: справочники являются владельцами в таком порядке
Справочник.ЗД  -> Справочник.Кв  ->Справочник.Пр
как из формы справочника ПР узнать какой элемент справочника Зд выбран (самый первый )
Помогите люди добрые
1 IamAlexy
 
13.02.12
21:46
владелец.владелец ?
не ?
2 zak555
 
13.02.12
21:47
рекурсия ?
3 IamAlexy
 
13.02.12
21:47
(2) где ты тут рекурсию увидел?
4 zak555
 
13.02.12
21:48
(3) вдруг потом будет вопрос

как получить Справочник.ЗД  -> Справочник.Кв  ->Справочник.Пр -> Справочник.Верх
5 zak555
 
13.02.12
21:49
ну т.е. самую верхнюю группу
6 IamAlexy
 
13.02.12
21:49
(4) и чо?
7 Креатив
 
13.02.12
21:51
(0)А тебе зачем?
8 mik888
 
13.02.12
21:52
Вот спасибо Владелец.Владелец нормально
туплю сегодня чегой то
9 Vladal
 
13.02.12
21:53
Владелец1 = Пр.Владелец();
Владелец2 = Владелец1.Владелец();
10 mik888
 
13.02.12
21:53
не таких не будет
11 Cthulhu
 
13.02.12
21:54
// (6):
Функция УзнатьПраДедушку(тЭл);
 Если Метаданные.Справочник(тЭл.Вид()).Владелец.Выбран()*тЭл.Выбран()=1
 Тогда Возврат(УзнатьПраДедушку(тЭл.Владелец)) КонецЕсли; Возвран(тЭл)$
КонецФункции //УзнатьПраДедушку
12 zak555
 
13.02.12
21:55
рекурсия =)

Функция ПолучитьГлавногоВладельца ( ЭлементИлиГруппа )
  Владелец = ЭлементИлиГруппа.Владелец;
  Возврат ?( ПустоеЗначение(Владелец) = 1, ЭлементИлиГруппа, ПолучитьГлавногоВладельца ( Владелец ) ) ;
КонецФункции
13 IamAlexy
 
13.02.12
21:58
сходил блин за макаронами...

и ведть всего лишь нужно было в частном примере получить значение и забыть раз и на всегда про эту задачу...
нет ведь.. напридумывали нереальных в данном конкретном контексте примеров и начали спорить кто правильнее этот нереальный пример решит...

зы: незабудьте ТС лохом обозвать и отправить его курить жкк...
14 Vladal
 
13.02.12
22:01
zak555, для простого сторожа много знаешь ;)
15 Vladal
 
13.02.12
22:02
(13) >> зы: незабудьте ТС лохом обозвать и отправить его курить жкк...
Ха!
16 zak555
 
13.02.12
22:08
(11) зачем метаданные ?
17 DJ Anthon
 
13.02.12
22:08
(16) так кошернее. я тоже так сделал
18 zak555
 
13.02.12
22:08
(14) ну так сидишь, один глазов мониторишь обстановку, другим в книгу
19 zak555
 
13.02.12
22:09
(17) чыем корешнее :?

атрибуты Владелец и родитель - предопределённые
20 Cthulhu
 
13.02.12
22:10
(12): Ок, мальчик, ты не тормоз. ты - ЯКОРЬ! (с) :))
(и твоя функция, в отличие от (11), вылетит по ошибке на "старшем" справочнике))))
21 zak555
 
13.02.12
22:19
(20) у меня не вылетает
22 zak555
 
13.02.12
22:24
23 zak555
 
14.02.12
09:41
ну так где вылетает-то ?
24 dk
 
14.02.12
09:46
(12) тут простого цикла хватит, нафига рекурсия?
25 zak555
 
14.02.12
09:47
(24) рекурсия - вещь!
26 dva1c
 
14.02.12
09:50
(24) Я так понимаю, если иерархия неизменна?
27 zak555
 
14.02.12
09:52
(26) иерархия и подчинение - два разных понятия
28 dva1c
 
14.02.12
09:54
(27) Согласен. Правильнее будет: "подчинение неизменно".
29 zak555
 
14.02.12
22:17
(28) ???
30 smaharbA
 
14.02.12
22:31
Рупора на вас не хватае
31 zak555
 
14.02.12
22:45
(30) а он что ?
32 Попытка1С
 
14.02.12
22:46
ПолныйКод
33 opty
 
14.02.12
22:49
(0) Через ПолныйКод() , а потом найти по коду , проще надо быть :)
34 opty
 
14.02.12
22:49
(32) На три секунды опередил :)
35 zak555
 
14.02.12
22:54
(32) это не интерсно =)
36 smaharbA
 
14.02.12
22:56
??????("[?????????"+???????????(??????("","?"+(?????????.???????()-1))," ",".????????") +"]")
37 smaharbA
 
14.02.12
22:57
Шаблон("[глКонтСпс"+СтрЗаменить(Формат("","С"+(глКонтСпс.Уровень()-1))," ",".Родитель") +"]")
38 zak555
 
14.02.12
22:57
(36)это что такое ?
39 zak555
 
14.02.12
22:57
ааа
40 smaharbA
 
14.02.12
22:59
Работает в 77 и 8х
41 Попытка1С
 
14.02.12
23:00
(34) На три минуты... )
42 opty
 
14.02.12
23:01
(41) :))
43 zak555
 
14.02.12
23:02
(37) причём тут родитель и владелец *
44 zak555
 
14.02.12
23:02
*?
45 opty
 
14.02.12
23:03
(35) Зато работает , и работает быстро :)
46 zak555
 
14.02.12
23:07
кстати,

ПолныйКод()
Синтаксис:
ПолныйКод()
Назначение:
Возвращает строку, содержащую полный код выбранного элемента справочника со всеми вышестоящими уровнями, разделенными символом /.


причём тут владелец и уровень ?
47 opty
 
14.02.12
23:12
(46) Парсится элементарно , особенно если нужно узнать только владельца самого верхнего уровня
48 zak555
 
14.02.12
23:13
(47) скачай из (22) и проверь
49 smaharbA
 
14.02.12
23:13
(46)
не к стати


Сообщить(Спр.НайтиПоКоду(Спр.ПолныйКод))
50 smaharbA
 
14.02.12
23:14
+ при уникальности, пр не уникальности условие поможет
51 zak555
 
14.02.12
23:17
(49) не работает
52 smaharbA
 
14.02.12
23:17
(51) работает
53 zak555
 
14.02.12
23:19
(52) http://zalil.ru/32708155

у меня нет =(
54 smaharbA
 
14.02.12
23:19
Спр.ПолныйКод()
55 zak555
 
14.02.12
23:21
(54) через косые черты должны выводиться ?
56 opty
 
14.02.12
23:22
(55) Да
57 smaharbA
 
14.02.12
23:28
//*******************************************
Процедура Сформировать()
   Перем Элемент;
   Элемент=ПолучитьПустоеЗначение("Справочник");
   Уровень=0;
   Спр=СоздатьОбъект("Справочник.Номенклатура");
   Спр.ВыбратьЭлементы();
   Пока Спр.ПолучитьЭлемент() = 1 Цикл
       Если Спр.Уровень()>=Уровень Тогда
           Элемент=Спр.ТекущийЭлемент();
           Уровень=Спр.Уровень();
       КонецЕсли;
   КонецЦикла;
   Если Спр.НайтиПоКоду(Элемент.ПолныйКод())=1 Тогда
       Сообщить(Спр.ТекущийЭлемент());
       Сообщить(Шаблон("[Элемент"+СтрЗаменить(Формат("","С"+(Элемент.Уровень()-1))," ",".Родитель") +"]"));
   КонецЕсли;
КонецПроцедуры
58 opty
 
14.02.12
23:32
А вообще то в топике о владельцах :( Тормознул , ПолныйКод() позволяет удобно работать родителями , тогда только рекурсия ..
59 smaharbA
 
14.02.12
23:36
(58) без разницы, с владельцами и того просче
60 smaharbA
 
14.02.12
23:36
О рекурсии верно
61 zak555
 
14.02.12
23:54
(60) что верно *
62 smaharbA
 
14.02.12
23:57
(61) о владельце, в (59) писано не думая ))
63 zak555
 
15.02.12
09:32
(62) так значит только рекурсия поможет ?