Имя: Пароль:
1C
1С v8
Проверка родителя на родителя
0 piffoff
 
06.02.12
23:30
Подскажите люди добрые

как быдет выглядеть цикл
берем хрень смотрим является ли она подчиненым справоч. и есть ли у ней родитель, далее берем родителя хрени и опять то же самое.
И так до тех пор пока родители не закончатся!

все это для платформы 8.2, объекта справочник
1 Никола_
Питерский
 
06.02.12
23:32
*Пошел за поп-корном ! )))
2 Neco
 
06.02.12
23:33
(0) Цель какая? Или чисто позырить, на вложенные процедуры?
3 Попытка1С
 
06.02.12
23:56
Рекурсия.
4 ПесняПроЗайцев
 
07.02.12
00:02
(0) все правильно, цикл, и больше не надо сущностей.
5 Asmody
 
07.02.12
00:10
(0) у элементов подч.справочников должен быть владелец, а не родитель (хотя последний может и быть). хотя, думаю ТС всё равно на такие мелочи
6 Никола_
Питерский
 
07.02.12
00:19
Ниче если я автору мозГ повыношу ? ))


Показатель = Истина;
Родитель = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
ТекущийРодитель = строка.ПодразделениеОрганизации;
Код = "Родитель = строка.ПодразделениеОрганизации.Родитель";
Если строка.ПодразделениеОрганизации.Родитель.Наименование <> "" тогда
 Пока показатель Цикл
   Выполнить(Код);
   ТекущийРодитель = Родитель;
     Если Родитель.Родитель.Наименование <> "" тогда
       Код = Код + ".Родитель"
     Иначе
       Показатель = Ложь;
     КонецЕсли;
  КонецЦикла;
КонецЕсли;
7 Живой Ископаемый
 
07.02.12
00:27
8 piffoff
 
07.02.12
10:34
цель имеет место быть такая

есть например склад такой - то в нем шкаф такой - то в шкафу ящичек а в ящичке з яйца ...

нужно расшифровать
9 Starhan
 
07.02.12
10:36
(7) тема.
10 piffoff
 
07.02.12
10:51
(7) почти поверил
у кого - нибудь есть ценные указания а не как всегда?

и нет должен быть именно родитель, проверка на то что справочник в группе или нет

справочник имееи иерархию груп и элементов

и да есть тут кто ниб с возрастом и IQ больше 10?
11 Reset
 
07.02.12
10:57
ТС прав в (8). "Нужно расшифровать", чего он хочет то.
12 Staffa
 
07.02.12
10:57
(10) вам в (3) уже сказали как сделать
13 НЕА123
 
07.02.12
11:04
(11)
а что расшифровывать? в (0) четко поставлена задача. код нужен.
судя по (10) - тупые мистяне не могут его написать.
14 Reset
 
07.02.12
11:07
(13) Для меня - совершенно не четко.
15 НЕА123
 
07.02.12
11:09
(14)
да, согласен, бредовато - владельцы, родители... но цель-то понятна
16 aka AMIGO
 
07.02.12
11:09
в 7-ке для понятия "родитель" есть для элемента ПолныйКод()
для "Владельца" - особенного ничего нет, но, получив Вледельца, уже в его справочнике также можно увидеть "ПолныйКод()"..
да и ПолноеНаименование() тоже можно анализировать.

кажется, это и в 8-ке есть.. 2 года без 8-ки, забывается :)
17 Fish
 
07.02.12
11:12
(13) Совсем миста обленилась. Не могут за человека элементарный код написать :))))
(10) > и да есть тут кто ниб с возрастом и IQ больше 10
Нету. Тут только тупые малолетние тролли :)))
18 aka AMIGO
 
07.02.12
11:14
+16 можно анализировать и "Уровни" для групп справочника.
вообще достаточно много способов и функций предусмотрено в 1с-языке, при полете фантазии можно много чего придумать и сделать :)
19 Reset
 
07.02.12
11:15
(15) Честно, для меня, и цель-то не ясна. В (0) цель - "перебирать пока родители некончатся"(?!). Ну, можно телепатировать, хочет найти родителя верхненго уровня. Ок. Далее в (8) оказывается, что нужно расшифровать что-то, причем рассуждение ведется, противоположное первому (опускается по иерархии).
В (10) пишет нечитаемый набор слов(строка 2) и обзывает всех ослами(остальные строки).
Имхо, ТСу нужно спуститься на землю, проявить уважение к читающим, прочистить свои мысли и внятно сформулировать задачу.
P.S. Допускаю, что я плохой телепат.
20 aka AMIGO
 
07.02.12
11:16
(19) >>цель - "перебирать пока родители некончатся"(?!).<<
пральна, это самый неудобный способ анализа
21 Reset
 
07.02.12
11:19
(16) ПолныйКод, а тем паче полное наименование - весьма ненадежный инструмент для работы с иерахией (из-за отсутвия гарантиий на постоянную длину кода и отсутвие в нем разделителей)
22 aka AMIGO
 
07.02.12
11:21
(21)постоянная длина кода не нужна.
разделители тоже предусмотрены.
Можно поискать в 8-ке функцию типа СЗ=глРазделить(ПолныйКод(),"разделительполного кода"), и анализировать эту СЗ.
23 aka AMIGO
 
07.02.12
11:22
+22 разделитель, вроде как, стандартный "/"
24 Serg_1960
 
07.02.12
11:23
(0) Давай я тебе подскажу: кнопочка "Поиск", фраза "Родитель верхнего уровня". Много нового для себя откроешь :))
25 Fish
 
07.02.12
11:23
(22) Да что вы спорите о родителях, когда ТС вёл речь о подчинённых справочниках?
26 Serg_1960
 
07.02.12
11:25
(25) Соори, но тс позднее уточнил вопрос в (8)
27 ИС-2
 
naïve
07.02.12
11:27
есть более быстрый способ выбрать всех родителей - в запросе сделать итоги с иерархии
28 aka AMIGO
 
07.02.12
11:27
(25)я и про подчиненные справочники написал в (16) вроде-б прозрачно
если ТС знает точную принадлежность названий
29 Fish
 
07.02.12
11:28
(26) Ну да, уточнил: "склад такой - то в нем шкаф такой - то в шкафу ящичек а в ящичке з яйца"
Т.е. ты считаешь, что или у него склады это номенклатура, или яйца - это склады :)))
30 Fish
 
07.02.12
11:29
(29) ИМХО, тут имеет место быть как подчиненность справочников, так и иерархия групп одного справочника. Без ТС не разобраться :)))
31 aka AMIGO
 
07.02.12
11:30
(21)вот скрин рабочего документа с анализом иерархии и номеров групп одного справочника. Работает штатно, и сбоев за полтора года не отловлено:
http://img-fotki.yandex.ru/get/4403/22238773.0/0_69485_5619cd29_XL.jpg
32 palpetrovich
 
07.02.12
11:31
пипец раздули проблему ...балаболы :)
33 aka AMIGO
 
07.02.12
11:32
(32) это точно :)
34 Reset
 
07.02.12
11:32
(23) Внимательней читаем последние два слова в (21). Если в коде(в содержимом) использован символ "/", глРазделить вылетает в трубу
35 Serg_1960
 
07.02.12
11:33
Мда... без уточнений ТС "ху их ху" получается "иголка - в яйце, яйцо - в утке, утка - в зайце, а заяц - в шоке" :)
36 aka AMIGO
 
07.02.12
11:33
(34)это я знаю. Специально в справочнике удалил слеши, и ввел контроль кода группы на недопустимый слеш
37 Fish
 
07.02.12
11:34
(31) Я так понимаю, что в этом примере уровень вложенности жёстко ограничен 2-мя уровнями?
38 aka AMIGO
 
07.02.12
11:35
(34)ты тоже прочти внимательно (22) :))
39 aka AMIGO
 
07.02.12
11:36
(37)да, писано под себя.. только не 2 а 3 уровня. Первый уровень имеет номер "0"
40 wertyu
 
07.02.12
11:37
(31) и где там яйцы?
41 Serg_1960
 
07.02.12
11:38
А вот если приколоться и усложнить... Код - числовой, контроль уникальности - отсутствует :))
42 Reset
 
07.02.12
11:39
(38) Прочитал внимательно, остался при своем (правильном) мнении. Ругаться не будем, за резковатый тон приношу извинения.
43 Fish
 
07.02.12
11:39
(39) Ну тогда пример несколько некорректен. ИМХО, правильный метод не должен быть привязан к количеству уровней. Тут единственный правильный метод - это (3) :))
44 Reset
 
07.02.12
11:40
(43) Цикл! :)
45 smaharbA
 
07.02.12
11:40
нет на вас Рупора Абсурда.
46 aka AMIGO
 
07.02.12
11:40
(40)в курицце :)
(41) - всё равно сработает. Уникальность не важна в этом документе.. весьма специфиццкий :)
47 wertyu
 
07.02.12
11:41
(41)
ПолныйКод (FullCode)
Синтаксис:

ПолныйКод()
Возвращаемое значение:

Тип: Строка.
48 Fish
 
07.02.12
11:42
Да уж развели флудильню, а бедный заклёванный ТС давно уже ищет яйца в ящиках шкафа на складе :)))
49 aka AMIGO
 
07.02.12
11:43
(43)в общем случае то, что у меня, конечно, некорректно! однозначно. Я потому и написал, что привязка к одному справочнику и только под себя :)
50 Serg_1960
 
07.02.12
11:44
(48) +1 От изобилия... ммм... информации на его бедную голову
51 smaharbA
 
07.02.12
11:45
не то ?

Функция Верхний(Элемент)
   Спр = Справочники[Элемент.Метаданные().Имя];
   Если Элемент.ПринадлежитЭлементу(Спр.НайтиПоКоду(Элемент.ПолныйКод())) Тогда
       Возврат Спр.НайтиПоКоду(Элемент.ПолныйКод()).Ссылка;
   КонецЕсли;
   Возврат Вычислить("Элемент"+СтрЗаменить(Формат(0,"ЧВН=;ЧЦ="+(Элемент.Уровень())+";ЧГ=0;ЧН="),"0",".Родитель")).Ссылка;
   Стр = СтрЗаменить(Элемент.ПолныйКод(),"/","" "");
   Структура = Новый Структура;
   Структура.Вставить("Код",СтрПолучитьСтроку(Стр,1));
   Для Сч=1 По СтрЧислоСтрок(Стр) Цикл
       Выборка = Спр.Выбрать(Спр.ПустаяСсылка(),,Структура);
       Сообщить(Структура.Код);
       Пока Выборка.Следующий() Цикл
           Если Элемент.ПринадлежитЭлементу(Выборка.Ссылка) Тогда
               Возврат Выборка.Ссылка;
           КонецЕсли;
       КонецЦикла;
       Структура.Код = Структура.Код + "/" + СтрПолучитьСтроку(Стр,Сч+1);
   КонецЦикла;
КонецФункции
52 piffoff
 
07.02.12
11:48
Смиритесь все перед моим великолепием и Высокоайкьюностью!!!

Ячейка  = ВыборкаСтрокЗапасы.Ячейка;
пТекущийЭлемент = Ячейка;
ЯчейкаРасшифровка = пТекущийЭлемент.Наименование;
Пока ЗначениеЗаполнено(пТекущийЭлемент.Родитель) Цикл    
ЯчейкаРасшифровка = ЯчейкаРасшифровка + ", " + пТекущийЭлемент.Родитель.Наименование;  
пТекущийЭлемент = пТекущийЭлемент.Родитель;
КонецЦикла;
ОбластьМакета.Параметры.ЯчейкаРасшифровка = ЯчейкаРасшифровка;
53 piffoff
 
07.02.12
11:49
может кому и понадобиться
54 smaharbA
 
07.02.12
11:49
(52)
см (51) внимательно

Спр.НайтиПоКоду(Элемент.ПолныйКод()).Ссылка

Все.
55 Serg_1960
 
07.02.12
11:50
(52) "гы-гы"(с)
56 Fish
 
07.02.12
11:51
(53) Ну это вряд ли :))))
57 aka AMIGO
 
07.02.12
11:52
ну, вы и злыдни!! :)
нет, чтоб поддержать маленьких :)
58 Reset
 
07.02.12
11:55
Пример в (51), даже, по моему, замечательней, чем пример в (52). Просто феерия.
59 Serg_1960
 
07.02.12
11:57
(57) Поддерживаю "маленких" :)

"Браво, бис, гениально, архиважно, эпохально... феерично... преклоняя колени перед высокоайкьюностью, прослезился от избытка благодарственных чуйств"
60 Fish
 
07.02.12
11:59
(57) Я тоже поддержу маленьких супергениев: а давайте эту ветку в книгу знаний занесём :)))
61 aka AMIGO
 
07.02.12
12:00
(59)вооот!! другое дело! :)
полить младую поросль :)
62 aka AMIGO
 
07.02.12
12:00
(60)давай! какие посты отметить? :)
63 Serg_1960
 
07.02.12
12:01
Надеюсь тс обладает чуством юмора, достаточным чтобы пережить эту ветку без глубоких моральных травм :)
64 Lama12
 
07.02.12
12:01
(8) УПП. Смотри как там разузлование работает.
65 Fish
 
07.02.12
12:03
(62) Ну наверное (0), (8) и конечно же (52). можно еще (10) для полноты картины :))))
66 aka AMIGO
 
07.02.12
12:06
(65) :))
67 Живой Ископаемый
 
07.02.12
12:47
2(10) не хватило АйКю чтобы понять как получается сразу без циклов самый верхний родитель?
68 pumbaEO
 
07.02.12
13:21
Не всегда поможет (7) http://www.screencast.com/t/nLVZ216zYzX
69 Живой Ископаемый
 
07.02.12
13:22
2(68) да, есть такое...
70 pumbaEO
 
07.02.12
13:32
Прогнал, в (36) уже сказали про это.
71 piffoff
 
07.02.12
14:19
бугага
не думал что тема будет такой популярной)))
72 n koretsky
 
07.02.12
15:01
ТС, у меня стойкое убеждение, что код метод реализации свой задачи твоя гениальная айкьюшность слямзила на govnokod.ru/1c
если нет. то настоятельно рекомендую его туда запостить. страна должна знать своих героев!