Имя: Пароль:
1C
1C 7.7
v7: Есть большой справочник, как можно быстро выбрать группу?
0 sysadminlk
 
07.04.15
11:35
Процедура ВыборатьГруппу()
    Группы = СоздатьОбъект("СписокЗначений");
    Спр = СоздатьОбъект("Справочник.Контрагенты");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
        Если Спр.ЭтоГруппа() = 1 Тогда
            Группы.ДобавитьЗначение(Спр.ТекущийЭлемент());
        КонецЕсли;
    КонецЦикла;
    Группы.ВыбратьЗначение(Контрагент,"Выбор группы");
КонецПроцедуры    // ВыборатьГруппу


Вот получается оч.долго
1 Lazy Stranger
 
07.04.15
11:38
запросом, скорее всего, быстрее будет
2 бомболюк
 
07.04.15
11:39
запросом только непустые группы (с элементами) выбрать можно.
3 palpetrovich
 
07.04.15
11:39
(1) разве что прямым :)
4 sysadminlk
 
07.04.15
11:40
(3) Это как? я запросы не понимаю
5 бомболюк
 
07.04.15
11:42
тут надо делать через рекурсию, ПолучитьЭлемент(0), и как натыкаешься на элемент (не группу) - прерывать обход.
6 sysadminlk
 
07.04.15
11:50
Пока сделал так

Процедура ВыборатьГруппу()
    Группы = СоздатьОбъект("СписокЗначений");
    Спр = СоздатьОбъект("Справочник.Контрагенты");    
    Группы.ДобавитьЗначение("00000002","Основные поставщики");
    Группы.ДобавитьЗначение("00014805","Поставщики");
    Группы.ДобавитьЗначение("00000003","Физические лица");
    Группы.ДобавитьЗначение("00000909","Организации");
    Группы.ДобавитьЗначение("00006218","Cотрудники");
    Группы.ДобавитьЗначение("00025043","Рабы");
    Группы.ДобавитьЗначение("00000911","Служебные");        
    КодГруппы = "";
    Группы.ВыбратьЗначение(КодГруппы,"Выбор группы");    
    Если Спр.НайтиПоКоду(КодГруппы) = 1 Тогда
        Контрагент = Спр.ТекущийЭлемент()
    КонецЕсли;
КонецПроцедуры    // ВыборатьГруппу
7 бомболюк
 
07.04.15
11:52
Группы.ДобавитьЗначение("00025043","Рабы");

ты с Украины?
8 Масянька
 
07.04.15
11:53
(6) Попробуй - ВыборГруппы
9 sysadminlk
 
07.04.15
12:13
(7) нет, это у нас так заведены сотрудники которые должны
Основная теорема систематики: Новые системы плодят новые проблемы.