Имя: Пароль:
1C
 
Родитель при создании нового элемента справочника
0 Масянька
 
20.04.16
11:01
День добрый!
Как при создании (!!!) нового элемента справочника определить группу?
Именно, при создании.
И интересует самая верхняя группа.

Спасибо.
1 catena
 
20.04.16
11:05
В смысле при интерактивном создании?
2 Масянька
 
20.04.16
11:07
(1) Нет. Пользователь создает сам (ручками). Но при записи для этой группы (именно - самой верхней) выполняется ряд действий. Ну, должен выполняться.
3 sash-ml
 
20.04.16
11:08
ПолныйКод() например, или Родитель.Родитель.Родитель... и т.д.
4 FIXXXL
 
20.04.16
11:09
ПолноеНаименование() разложить
5 Масянька
 
20.04.16
11:09
(3) ПолноеНаименование - не работает - элемент еще не записан.
Родитель.Родитель и т. д. - не кошерно. Пока - запасной вариант.
6 Масянька
 
20.04.16
11:09
(4) Процедура ВводНового.
7 Рэйв
 
20.04.16
11:10
(0)Ну Об.Родитель=НайденаяСсылкаПапка
Как то так.
8 Timon1405
 
20.04.16
11:11
(0) Рекурсивная функция поиска родителя. написать быстрее, чем тут мусолить.
9 Масянька
 
20.04.16
11:11
(7) Переведи...
10 FIXXXL
 
20.04.16
11:11
(6) ну а папка то есть уже у нового элемента? с нее прочитай ПолноеНаименование

ты уже спрашивала что-то похожее или у меня дежа вю
11 Рэйв
 
20.04.16
11:11
(9)Ну сначала найди родителя которого хочешь иметь. пттом его присвой перед записью.
12 Масянька
 
20.04.16
11:12
(8) А я никуда не тороплюсь...
До пятницы - совершенно свободен (С) :)))
Лучше день потерять - зато потом за пять минут долететь (С) :))
13 Рэйв
 
20.04.16
11:12
+(11) или выбрать дай перед записью группу.
14 Рэйв
 
20.04.16
11:13
++(11)или на форму выведи выбор родителя:-)
15 AceVi
 
20.04.16
11:13
(2) По порядку.
1. У тебя есть иерархия, при записи (пользователь ручками) пытаеться записать элемент справочника, при этом у элемента уже есть родитель, например 4 уровня, а тебе надо определить родителя 1 уровня? так?

Есть 2 варианта
2а. Рекурсия по поиску родителя что то типа
Процедура ПолучитьРодителя1ур(Родитель,Род1Ур = неопределено)
Если Родитель.Уровень() <> 1 Тогда
ПолучитьРодителя1ур(Родитель.Родитель)
Иначе
Род1Ур = Родитель;
КонецЕсли;
КонецПроцедуры

2б. В запросе выбрать все группы 1 уровня. и поставить условие в иерархии.
16 Timon1405
 
20.04.16
11:15
(12) Тогда нужны подробности. Элемент создается программно? или интерактивно из формы списка?
17 Масянька
 
20.04.16
11:16
(15) 1. Именно.
2. А проще - не?
18 los_hooliganos
 
20.04.16
11:16
(16) Какая разница? Это событие (манипуляции с верхним родителем) у любом случае лучше повесить на обработчика
19 Рэйв
 
20.04.16
11:20
(17)Проще только так
Род=ТекЭлемент.Родитель
Пока НЕ Род.Пустая() Цикл
    Род=Род.Родитель;
    ЧтоНадо=Род;
КонецЦикла;

Сообщить("Вот верхний уровень:"+ЧтоНадо);
;-)
20 AceVi
 
20.04.16
11:20
(17) куда тебе проще. как ты думаешь, должно выглядеть проще? Встроенной функции в 1С нету.
21 Рэйв
 
20.04.16
11:21
+(19)Правда придеся отследить чтобы не в верхнем уровне создовали.А то вообще не зайдет
22 Рэйв
 
20.04.16
11:21
+(19)Правда придеся отследить чтобы не в верхнем уровне создовали.А тро вообще не зайдет
23 Масянька
 
20.04.16
11:22
(20) Очень плохо - что встроенной нет.

Спасибо.
24 Карупян
 
20.04.16
11:25
Почему Родитель.Родитель в цикле не кошерно?
25 Timon1405
 
20.04.16
11:29
Функция ВерхнийРодитель(Ссылка)
    Родитель = Ссылка.Родитель;
    Возврат ?(Родитель.Пустая(),Ссылка,ВерхнийРодитель(Родитель)) ;
КонецФункции
26 Mikeware
 
20.04.16
11:29
(0)
1.При интерактивном вводе Родитель уже известен.
это тебе отвечали еще пару месяцев назад.
2.
ВерхнийРодитель=ЗначениеИзСтрокиВнутр(Шаблон("[ЗначениеВСтрокуВнутр(Спр"+СтрЗаменить(Формат("","С"+(Спр.Уровень()-1))," ",".Родитель")+")]"));
©РупорАбсурда
27 salvator
 
20.04.16
11:30
(0) Выбрать запросом все группы, к которых нет родителя.
Затем при обходе выборки использовать метод ПринадлежитЭлементу()
28 Timon1405
 
20.04.16
11:31
(27) это запрос в цикле.
29 AceVi
 
20.04.16
11:36
(28) Нет. это обход выборки запрос, по русски вроде написано.

(26) Это чет такое ? Я попробовал
{Форма.Форма.Форма(35,40)}: Процедура или функция с указанным именем не определена (Шаблон)
    ВерхнийРодитель=ЗначениеИзСтрокиВнутр(<<?>>Шаблон("[ЗначениеВСтрокуВнутр(Спр"+СтрЗаменить(Формат("","С"+(Спр.Уровень()-1))," ",".Родитель")+")]"));  (Проверка: Толстый клиент (обычное приложение))
30 Mikeware
 
20.04.16
11:39
(29) ТС - обычно по клюшкам глупые вопросы задает...
неужели она расширила область глупых вопросов?
31 Timon1405
 
20.04.16
11:39
(29) "принадлежит элементу" преобразуется в запрос ГДЕ ... В ИЕРАРХИИ так что как его не назови, запрос в цикле и есть.
Закон Брукера: Даже маленькая практика стоит большой теории.