|   |   | 
| 
 | v7: метод ПринадлежитГруппе() в 1С сделан на хранимке или чем ? | ☑ | ||
|---|---|---|---|---|
| 0
    
        Холст 16.11.13✎ 22:41 | 
        может кто-то изучал, как работает в SQL базе 7.7 метод ЭтоГруппа() и, может быть, можно обратиться к соответствующей SQL функции/хранимке  из прямых запросов ?     | |||
| 1
    
        0wl 16.11.13✎ 22:54 | 
        Под рукой базы нет,  но вроде это поле IsFolder.  Но могу с 8 путать     | |||
| 2
    
        Холст 16.11.13✎ 23:21 | 
        (1) блин, не ЭтоГруппа(0), а ПринадлежитГруппе() конечно же !!!
 модераторы, прошу поправить заголовок ! | |||
| 3
    
        Холст 16.11.13✎ 23:22 | 
        ЭтоГруппа()     | |||
| 4
    
        Torquader 16.11.13✎ 23:26 | 
        А там разве вообще хранимки есть - там запросы, что в dbf, что в SQL - просто выполняется перебор, также как и в ПолучитьПолныйКод() - то есть по шагам выбираем родителя.     | |||
| 5
    
        be-may 16.11.13✎ 23:33 | 
        Самое простое это открыть профайлер и посмотреть что делает 1С при вызове ПринадлежитГруппе().
 Насколько я помню, там была рекурсия, временные таблицы и конструкция if exist select ..... | |||
| 6
    
        be-may 16.11.13✎ 23:36 | 
        оу. поиск как обычно, рулит.. 
 ADO : как кто реализует условие запроса ПринадлежитГруппе(Гр1)=1 ? | |||
| 7
    
        КонецЦикла 17.11.13✎ 01:03 | 
        Рекурсивный запрос скорее всего, так как вложенность может быть хз какая
 Пройдись профайлером штоле | |||
| 8
    
        КонецЦикла 17.11.13✎ 01:08 | 
        Сцуко тупо перебор, облажался     | |||
| 9
    
        Злопчинский 17.11.13✎ 01:10 | 
        (8) хм.. а как неперебором в скуле сделать..? есть элемент - может входить в группу на любом уровне иерархии...
 . ? | |||
| 10
    
        Злопчинский 17.11.13✎ 01:12 | 
        (9) херню какую-то написал...     | |||
| 11
    
        КонецЦикла 17.11.13✎ 01:12 | 
        (10) ага :)     | |||
| 12
    
        Злопчинский 17.11.13✎ 01:13 | 
        берем элемент и строим рекурсивно набор родителей. ищем среди набора родителей заданную группу...?
 . или рекурсивно получаем родителя и каждого полученногородителя сравниваем с заданной группой - сошлось - готово! . или как-то иначе ПО ПРАВИЛЬНОМУ? | |||
| 13
    
        Холст 17.11.13✎ 01:13 | 
        (9) на 1С++ форуме терли помоему об этом, можно не перебором
 подзапросами с уровня вложенности элемента который сравнивают до уровня с которым сравнивают ну и вьюху походу дела под это забацать | |||
| 14
    
        Злопчинский 17.11.13✎ 01:14 | 
        911) заметь. мне понадобилось всего 2 минуты, чтобы понять что облажался, а тебе - пять..! ;-)     | |||
| 15
    
        Злопчинский 17.11.13✎ 01:15 | 
        у Тейлора в Скуле для чайников рекурсивный запрос мну понравился...     | |||
| 16
    
        Холст 17.11.13✎ 01:17 | 
        изначально поднял тему в предположении, что сама 1С делает ПринадлежитГруппе(Гр1) достаточно оптимально и чтобы 1С++ запрос использовал созданный самой 1С функцию поиска принадлежности, а 1С походу динамически создает эту функцию а потом ее стирает     | |||
| 17
    
        КонецЦикла 17.11.13✎ 01:26 | 
        Нет, все же не перебор. Просто что-то в кишках ворочает своих. Кол-во итераций не увеличивается. Значит не все так плохо.     | |||
| 18
    
        КонецЦикла 17.11.13✎ 01:30 | ||||
| 19
    
        Злопчинский 17.11.13✎ 01:30 | 
        чисто интересно было бы посмотреть на этот скульный запросик     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |