Имя: Пароль:
1C
1C 7.7
v7: Получение групп справочника "Номенклатура"
0 Ganiev
 
15.11.12
13:44
Добрый день! Подскажите люди добрые, как можно получить все группы справочника номенклатура?

Спр = СоздатьОбъект("Справочник.Номенклатура");    
Спр.ВыбратьЭлементы();
Пока Спр.ПолучитьЭлемент() =1 Цикл
  Если Спр.ЭтоГруппа() = 1 Тогда
           ?(?(?(?(?(?(?(?(?(?(?(?(?(?(?(?(?(
   КонецЕсли;
КонецЦикла;

Это не подходит не устраивает скорость выполнения!
1 vova1122
 
15.11.12
13:47
у Вас 10000000 позиций номенклатуры?
2 WoodMan
 
15.11.12
13:47
альтернатива запрос(черный) по справочнику, но это еще дольше
3 vova1122
 
15.11.12
13:50
При старте системы один раз выполнить это действие и записать результат в список или таблицу значений. И когда нужно выбирать уже готовые данные....
4 ДенисЧ
 
15.11.12
13:50
SELECT ID [Группа $Справочник.Номенклатура]
FROM $Справочник.Номенклатура
WHERE IsFolder = 1
5 dk
 
15.11.12
13:50
Спр.ВыбратьЭлементы(0);
---
тогда группы вроде вверх "всплывают"
6 Ganiev
 
15.11.12
13:51
у нас 60 000 позиций просто необходимо чтобы это выполнялось при открытии внешней обработки! по этому принципиальна скорость отработки!
7 Азат
 
15.11.12
13:51
(6) Денис уже все написал...
8 ДенисЧ
 
15.11.12
13:51
(6) см (4). БЫстрее некуда
9 Ganiev
 
15.11.12
13:52
(3) СПС как вариант рассмотрю! еще есть варианты?
10 Ganiev
 
15.11.12
13:52
(4) Спасибо!
11 ЧеловекДуши
 
15.11.12
13:57
(3)Бу га га... а когда добавят новые группы или изменят иерархию, то потом долго объяснять пользователю, что не так :)
12 vova1122
 
15.11.12
13:58
(11) согласен
13 dk
 
15.11.12
14:01
шота я в (5) поторопился, но вроде был метод выборки, когда группы вверху
14 Ganiev
 
15.11.12
14:08
(13) Не знаю такого метода но даже и если был то все равно нужно делать выборку а это уже долго!
15 Ganiev
 
15.11.12
14:10
Через SQL запросс подходит отрабатывает махом еще раз спс (4)ДенысЧ
16 1Сергей
 
15.11.12
15:25
(15) За 20 минут разобрался? не верю