|
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) нет, это у нас так заведены сотрудники которые должны
|
| Форум | Правила | Описание | Секции | Поиск |