Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Проверить элементы на принадлежность родителю (число прочтений - 4161 )
aKomper
Junior Member
**
Отсутствует



Сообщений: 17
Зарегистрирован: 07. Июля 2006
Проверить элементы на принадлежность родителю
16. Января 2007 :: 10:52
Печать  
задача - посчитать количество родителей заданного уровня иерархии, которым принадлежат элементы из некоего списка. Список родителей и список элементов для определения родства заданы. прошу варианты
  
Наверх
 
IP записан
 
smile
Junior Member
**
Отсутствует


бррр... ужас...

Сообщений: 50
Зарегистрирован: 23. Мая 2006
Re: Проверить элементы на принадлежность родителю
Ответ #1 - 16. Января 2007 :: 12:07
Печать  
Не нравится фраза : "Прошу варианты..." но пофиг....

на коленке:


select

count(*) количество

from
$Справочник.Товары СпрТовары (nolock)

where
СпрТовары.id in (select Val from #СпрЭлементов) and СпрТовары.parentid in (select Val from #СпрРодителей)


  
Наверх
 
IP записан
 
aKomper
Junior Member
**
Отсутствует



Сообщений: 17
Зарегистрирован: 07. Июля 2006
Re: Проверить элементы на принадлежность родителю
Ответ #2 - 16. Января 2007 :: 12:21
Печать  
УложитьСписокЭлементов() работает долго, порядка 10-15 минут ждал и не дождался, ибо больная база и для порядка 500 родителей заполняется список
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проверить элементы на принадлежность родителю
Ответ #3 - 16. Января 2007 :: 12:31
Печать  
Код использования УложитьСписокЭлементов покажи
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
aKomper
Junior Member
**
Отсутствует



Сообщений: 17
Зарегистрирован: 07. Июля 2006
Re: Проверить элементы на принадлежность родителю
Ответ #4 - 16. Января 2007 :: 12:35
Печать  
Запрос.УложитьСписокОбъектов(ТЗПодразделения.Подразделение, "#СписокПодразделений", "Подразделения");
Запрос.УложитьСписокОбъектов(КодыПользователей, "#СписокКодовПользователей");
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проверить элементы на принадлежность родителю
Ответ #5 - 16. Января 2007 :: 12:46
Печать  
А какое из этих двух выражений работает долго?
В каком справочнике родителей больше ?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проверить элементы на принадлежность родителю
Ответ #6 - 16. Января 2007 :: 12:49
Печать  
Кстати, ты не указал, какую базу используешь?
Скуль или ДБФ?
И какой провайдер соответственно?
Скуль ОДБЦ или ВФП Оле ДБ или ВФП ОДБЦ ?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
aKomper
Junior Member
**
Отсутствует



Сообщений: 17
Зарегистрирован: 07. Июля 2006
Re: Проверить элементы на принадлежность родителю
Ответ #7 - 16. Января 2007 :: 12:53
Печать  
база скуль ОДБЦ, самописка на основе ТиС, дольше работает с подразделениями, второй список получаю на основе запроса к сторонней базе
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проверить элементы на принадлежность родителю
Ответ #8 - 16. Января 2007 :: 13:09
Печать  
1) Т.е. запрос из второго поста тебя устраивает, но при этом не устраивает скорость получения врем. таблицы через УложитьСписокОбъектов.

2) Ты для каждого подразделения из таблицы подразделений делаешь вызов УложитьСписокОбъектов или только один раз?
Если много вызовов, естественно, будут тормоза Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Проверить элементы на принадлежность родителю
Ответ #9 - 16. Января 2007 :: 13:11
Печать  
2+) если для каждого подразделения из таблицы, тогда намного лучше рекомендованный способ через список родителей
Код
Выбрать все
ТЗПодразделения.Выгрузить(СписокПодразделений, ,, "Подразделение");
Запрос.УложитьСписокОбъектов(СписокПодразделений, "#СписокПодразделений", "Подразделения"); 

  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать