Имя: Пароль:
1C
1C 7.7
v7: Подскажите плиз, как определить является ли выбранная группа справочника (номенк
,
0 box
 
10.01.15
13:17
Подскажите плиз, как определить является ли выбранная группа справочника (номенклатура) родителем (вернее сказать, имеются ли у нее потомки)?
1 Волшебник
 
модератор
10.01.15
13:20
запросом

Выбрать Первые 1 Из Справочник.Номенклатура
Где Родитель = &ВыбГруппа


если выборка не пустая, значит является.
2 Фокусник
 
10.01.15
13:21
(0) запросом прочитать первого "подчиненного" этой группы, если пустой запрос, значит нет подчинённых...
3 iceman2112
 
10.01.15
13:24
Это надо заскринить)))))))
4 box
 
10.01.15
13:24
Спасибо!
5 Chameleon1980
 
10.01.15
13:32
(1) Станислав совсем про 77 забыл
6 Chameleon1980
 
10.01.15
13:33
(5) или автор промахнулся
7 box
 
10.01.15
13:36
(6) ответили конечно для 8... у меня вопрос был по 7.7
8 spectre1978
 
10.01.15
13:42
Спр.ИспользоватьРодителя (ГруппаДляПроверки);

Если Спр.ВыбратьЭлементы (1)=1 Тогда
// в группе чего-то есть
Иначе
// в группе ничего нет
КонецЕсли;
9 Дмитрий
 
10.01.15
13:44
Ном = СоздатьОбъект("Справочник.Номенклатура");
Ном.ИспользоватьРодителя(ВыбГруппа);
Ном.ВыбратьЭлементы();
ЕстьПотомки=0;
Пока Ном.ПолучитьЭлемент()=1 Цикл
  ЕстьПотомки=1;
  Прервать;
Конеццикла;
10 spectre1978
 
10.01.15
13:45
(9)
ВыбратьЭлементы(<Режим>)
Назначение:
Открыть выборку элементов справочника.
Возвращает: 1 - если действие выполнено и в выборке есть хотя бы один элемент;
0 - если действие не выполнено или в выборке нет ни одного элемента.

Так что можно и проще :)
11 box
 
10.01.15
13:49
Ого!!! Благодарю!
12 Дмитрий
 
10.01.15
13:50
(10)
Согласен, но если нужно определять, например, есть ли потомки именно элементы, а не группы; либо есть ли потомки, удовлетворяющие определенному условию, то тогда вот.
13 b_ru
 
10.01.15
14:00
(10) Глаза кровоточат от такого кода

Ном = СоздатьОбъект("Справочник.Номенклатура");
Ном.ИспользоватьРодителя(ВыбГруппа);
Ном.ВыбратьЭлементы();
ЕстьПотомки=Ном.ПолучитьЭлемент();
14 b_ru
 
10.01.15
14:07
(13) к (9)
15 spectre1978
 
10.01.15
14:10
(9) красивее и грамотнее вот так

Если Спр.ВыбратьЭлементы (1)=1 Тогда
  
   Пока Спр.ПолучитьЭлемент ()=1 Цикл
   //...
   КонецЦикла;

КонецЕсли;

в этом случае не будет лишних обращений к ПолучитьЭлемент (), если выборка пуста, и код более логичный и читаемый.