Имя: Пароль:
1C
1С v8
Определить группу в справочнике
,
0 spleen
 
15.11.11
11:51
Как определить находится ли элемент справочника в определенной иерархии группы?
1 Wobland
 
15.11.11
11:52
ПринадлежитЭлементу()
2 ДенисЧ
 
15.11.11
11:52
А что, синтакс-помощник сейчас читать уже не модно?
3 Wobland
 
15.11.11
11:53
(2) ты один такой - с запасом СП
PS а можно попробовать торговать правильными словами для СП ;)
4 shamannk
 
15.11.11
11:55
(2) Найти то незная что?
5 spleen
 
15.11.11
11:56
Не успел дописать.

ПринадлежитЭлементу()
Я нашел. Но как-то год назад наткнулся на функцию которая работает в несколько раз быстрее чем  ПринадлежитЭлементу().

Может кто знает, о чем я говорю?
6 Wobland
 
15.11.11
12:03
неужели это функция Выполнить() у Запроса? ;) хотя, вряд ли в несколько раз быстрее
7 pzk2
 
15.11.11
12:05
родителя проверять будет быстрее наверно, если уровень иерархии = 1 или небольшой
8 Maxus43
 
15.11.11
12:06
(7) рекурсивно можно и вглубь провалитсья, но я не думаю что это будет быстрее
9 Starhan
 
15.11.11
12:06
(5)

Функция ПринадлежитЭлементуСвойВариант(Номенлкатура)
Запрос = Новый Запрос("ВЫБРАТЬ
   |Номенклатура.Наименование КАК Наименование
|ИЗ
|    Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|    Номенклатура.Ссылка В ИЕРАРХИИ (&Папочка)
10 Maxus43
 
15.11.11
12:07
и не поверю что вобще заметно сколько ПринадлежитЭлементу() проверяется. если только это в жутком цикле, тогда надо не это менять а логику
11 Starhan
 
15.11.11
12:07
епть :( не успел дописать
12 Starhan
 
15.11.11
12:11
(5) наверное вот такую дописку встречал :)

Функция ПринадлежитЭлементуСвойВариант(Номенклатура,Папка)

Запрос = Новый Запрос("ВЫБРАТЬ
   |Номенклатура.Наименование КАК Наименование
|ИЗ
|    Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|    Номенклатура.Ссылка В ИЕРАРХИИ (&Папочка)
|И номенлкатура.Ссылка = &Номенклатура";

Запрос.установитьПараметр("Папочка",Папка);
Запрос.УстановитьПараметр("Ссылка",Ссылка);

Если Запрос.выполнить().Пустой() Тогда
Возврат Ложь
Иначе
Возврат Истина
КонецЕсли;
КонецФункции
13 Wobland
 
15.11.11
12:12
Возврат НЕ Запрос.выполнить().Пустой() элегантней ;)
14 spleen
 
15.11.11
12:14
(12) Проверю на скорость. )))
спасибо.
15 Starhan
 
15.11.11
12:15
(13) сори торопился, полностью согласен ))
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.