| 
    
        
     
     | 
    
  | 
Обход иерархического справочника в запросе | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        gul_Sayan    
     28.02.24 
            ✎
    06:14 
 | 
         
        Нужно получить значение доп реквизита справочника причем не только самого но и его родителей. Обращение через точку, а тем более несколько не приветствуется, не подскажите как лучше организовать запрос?
 
        Попробовал получать доп. реквизиты обработкой, но тоже очень медленно.  | 
|||
| 
    1
    
        steep1    
     28.02.24 
            ✎
    07:44 
 | 
         
        (0) Сколько уровней вложенности ?     
         | 
|||
| 
    2
    
        gul_Sayan    
     28.02.24 
            ✎
    07:50 
 | 
         
        (1)7-9     
         | 
|||
| 
    3
    
        gul_Sayan    
     28.02.24 
            ✎
    07:51 
 | 
         
        (1)правда может быть и 1-2 уровень. но до 9ти.     
         | 
|||
| 
    4
    
        Волшебник    
     28.02.24 
            ✎
    07:51 
 | 
         
        (0) Обращайтесь через точку.     
         | 
|||
| 
    5
    
        Смотрящий    
     28.02.24 
            ✎
    08:04 
 | 
         
        https://infostart.ru/1c/articles/158512/
 
        Читани. Работает.  | 
|||
| 
    6
    
        gul_Sayan    
     28.02.24 
            ✎
    08:17 
 | 
         
        (5) Спасибо.     
         | 
|||
| 
    7
    
        Одинист    
     28.02.24 
            ✎
    09:06 
 | 
         
        Если подглядеть как у 1С сделано: 
 
        Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ | Справочник1.Ссылка КАК Элемент, | Справочник1.Родитель КАК Родитель1, | Справочник2.Родитель КАК Родитель2, | Справочник3.Родитель КАК Родитель3, | Справочник4.Родитель КАК Родитель4, | Справочник5.Родитель КАК Родитель5 |ИЗ | Справочник.Номенклатура КАК Справочник1 | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Справочник2 | ПО (Справочник2.Ссылка = Справочник1.Родитель) | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Справочник3 | ПО (Справочник3.Ссылка = Справочник2.Родитель) | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Справочник4 | ПО (Справочник4.Ссылка = Справочник3.Родитель) | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Справочник5 | ПО (Справочник5.Ссылка = Справочник4.Родитель) |ГДЕ | Справочник1.Ссылка В(&МассивСсылок)";  | 
|||
| 
    8
    
        Волшебник    
     28.02.24 
            ✎
    09:08 
 | 
         
        (7) Ужасный программный код. Лучше так 
 
        ВЫБРАТЬ
        Спр.Ссылка КАК Элемент,
        Спр.Родитель КАК Родитель1,
        Спр.Родитель.Родитель КАК Родитель2,
        Спр.Родитель.Родитель.Родитель КАК Родитель3,
        Спр.Родитель.Родитель.Родитель.Родитель КАК Родитель4,
        Спр.Родитель.Родитель.Родитель.Родитель.Родитель КАК Родитель5
    ИЗ
        Справочник.Номенклатура КАК Спр     | 
|||
| 
    9
    
        Волшебник    
     28.02.24 
            ✎
    09:09 
 | 
         
        А ещё можно сделать 
 
        ИТОГИ ПО поле ИЕРАРХИЯ он соберёт всех родителей  | 
|||
| 
    10
    
        Одинист    
     28.02.24 
            ✎
    09:09 
 | 
         
        (8) > Ужасный программный код.
 
        1С  | 
|||
| 
    11
    
        Волшебник    
     28.02.24 
            ✎
    09:10 
 | 
         
        (10) и чо?     
         | 
|||
| 
    12
    
        lodger    
     28.02.24 
            ✎
    09:41 
 | 
         
        (0) пиши 2 отдельных запроса.
 
        первый выводит ИТОГИ ПО ИЕРАРХИЯ, обходишь, собираешь ссылки в одну колонку. второй к этим итогам приделывает левый джойн твоей таблицы. готово.  | 
|||
| 
    13
    
        Ненавижу 1С    
     28.02.24 
            ✎
    09:55 
 | 
         
        В типовых сделали РС ИерархияПартнеров, скрытые данные, которые заполняются при записи справочника. Удобно получать иерархию     
         | 
|||
| 
    14
    
        АгентБезопасной Нацио    
     28.02.24 
            ✎
    10:37 
 | 
         
        (12) решение без всяких дополнительных обходов - в (5)     
         | 
|||
| 
    15
    
        Eiffil123    
     28.02.24 
            ✎
    11:32 
 | 
         
        (12) помоему самое оптимальное решение. И код будет читаемый.     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |