Имя: Пароль:
1C
1C 7.7
v7: Как упростить метод ПринадлежитГруппе ?
0 Izuchayu1C7
 
29.04.15
09:17
При открытии справочника проверяется принадлежность элементов к группе Работающие. Как-то можно облегчить эту конструкцию? Получилось как то громоздко.
  
Процедура ПриОткрытии()
  СправочникСотрудники=СоздатьОбъект("Справочник.Сотрудники");
  СправочникСотрудники.НайтиПоНаименованию("Работающие");
  Работающие=СправочникСотрудники.ТекущийЭлемент();
  СправочникСотрудники.ВыбратьЭлементы();
  Пока СправочникСотрудники.ПолучитьЭлемент()=1
    Цикл  
     Если СправочникСотрудники.ПринадлежитГруппе(Работающие)=1  Тогда
     Сообщить(СправочникСотрудники.Наименование);
     КонецЕсли;
    КонецЦикла;
КонецПроцедуры
1 ДенисЧ
 
29.04.15
09:19
а нафига всё это нужно?
И да, никогда не используй запросы...
2 KishMish
 
29.04.15
09:21
(0)
1. Можно запросом.
2. Позиционирование группы Работающие можно сделать проще
ИСпользовать 1 раз
СтрокаРаботающие=ЗначениеВСТрокуВнутр(Работающие);
и потом в томо код пишешь
Работающие = ЗначениеИЗСтрокиВнутр("ну и тут та строка которую ты получишь");
3 vcv
 
29.04.15
09:25
Если нужно много-много сотрудников, выгоднее всего будет перед перебором приготовить список значений, содержащий группу "Работающие" и все подгруппы в ней. В цикле проверять СписокГрупп.НайтиЗначение(СправочникСотрудники.Родитель)
4 Эльниньо
 
29.04.15
09:45
ИспользоватьРодителя() отменили?
5 Izuchayu1C7
 
29.04.15
12:59
(3) (4) Спасибо, это понял.
6 Izuchayu1C7
 
29.04.15
13:10
(2) Вот это пока не понятно. Не знаю как правильно написать синтаксис.
7 Эльниньо
 
29.04.15
13:19
(6) Гланды через жпо вырезать предлагает
8 lavalit
 
30.04.15
13:33
Зачем в (0) циклить? просто проверяй родителя элемента и все.
НО при открытии справочника и так видно в какой группе элемент... так что непонятно зачем оно надо?