|   |   | 
| 
 | ВыбратьИерархически() не работает | ☑ | ||
|---|---|---|---|---|
| 0
    
        extrim-style 20.02.14✎ 10:55 | 
        Выборка = Справочники.ИмяСправочника.Выбрать(,,Новый Структура("Реквизит1", "5")) - выбирает
 Выборка = Справочники.ИмяСправочника.ВыбратьИерархически() - выбирает Выборка = Справочники.ИмяСправочника.ВыбратьИерархически(,,Новый Структура("Реквизит1", "5")) - не выбирает ничего, почему? Справочик иерархический с иерархией элементов без ограничения количества уровней. Отбор хочу сделать по реквизиту с включенным индексированием с доп. упорядочиванием, тип Строка250. | |||
| 1
    
        extrim-style 20.02.14✎ 11:20 | 
        Ап     | |||
| 2
    
        Wobland 20.02.14✎ 11:22 | 
        читать до просветления: Формирует иерархическую выборку элементов справочника по заданным условиям     | |||
| 3
    
        extrim-style 20.02.14✎ 11:24 | 
        (2) что я в (2) не замечаю? мне и нужна как раз иерархическая выборка по условию равенства реквизита значению     | |||
| 4
    
        extrim-style 20.02.14✎ 11:32 | 
        Up     | |||
| 5
    
        TARPV 20.02.14✎ 11:40 | 
        Использовать для выборок данных объектные методы вместо запросов это дурной тон)) По крайней мере меня так учат в учебном центре 1С №1.     | |||
| 6
    
        extrim-style 20.02.14✎ 11:45 | 
        (5) разговор о выборках начинается после того, как задаешь вопрос из (0) )))?
 ок. Давай через запрос - v8: Выбрать элементы верхнего уровня по определенному признаку посмотрим, чему там учат | |||
| 7
    
        extrim-style 20.02.14✎ 11:50 | 
        +(6) о "выборках запросом", конечно     | |||
| 8
    
        hhhh 20.02.14✎ 11:54 | 
        (7) у вас в элементах верхнего уровня реквизит1 точно равен "5"?     | |||
| 9
    
        Wobland 20.02.14✎ 11:55 | 
        (8) выборка будет формироваться при любом значении реквизита. главное, чтобы он был     | |||
| 10
    
        hhhh 20.02.14✎ 11:59 | 
        (9) а на "5" не будет проверять?     | |||
| 11
    
        Wobland 20.02.14✎ 12:00 | 
        (10) эмм... думаю, будет     | |||
| 12
    
        Шапокляк 20.02.14✎ 12:01 | 
        А у группы есть этот реквизит?     | |||
| 13
    
        hhhh 20.02.14✎ 12:02 | 
        (12) групп нет     | |||
| 14
    
        extrim-style 20.02.14✎ 12:06 | 
        (8) база клиент-серверная. На sql-сервере сделал проверку на NULL для реквизита этого справочника. Таких значений не нашлось. Или пустая строка, или значение.     | |||
| 15
    
        extrim-style 20.02.14✎ 12:14 | 
        платформа 8.2.17.153. Проверил на файловой 8.2.19.83 - та же история...     | |||
| 16
    
        extrim-style 20.02.14✎ 12:18 | 
        sql-запрос по значению этого реквизита отрабатывает нормально, выбирает все записи с таким значением:
 SELECT * FROM [BaseName].[dbo].[_Reference75] where _Fld641 = '5' | |||
| 17
    
        extrim-style 20.02.14✎ 12:31 | 
        Появилась мысль, что ВыбратьИерархически() с отбором, вероятно, работает только тогда, когда необходимое значение реквизита есть хотя бы в нулевом уровне. М.б. это действительно так? Или нет?     | |||
| 18
    
        extrim-style 20.02.14✎ 12:33 | 
        +(17) у меня, кстати, в нулевом уровне таких значений нет, только в первом.     | |||
| 19
    
        extrim-style 20.02.14✎ 12:38 | 
        (17)(18) проверил предположение. оно оказалось ошибочным.     | |||
| 20
    
        extrim-style 20.02.14✎ 13:03 | 
        Проверяю на другой конфе (бухгалтерия) - Справочник ПодразделенияОрганизаций, включил индексирование для реквизита КПП.
 Выборка = Справочники.ПодразделенияОрганизаций.ВыбратьИерархически(,,Новый Структура("КПП", "111111111")); ничего не выбирает. Почему? | |||
| 21
    
        hhhh 20.02.14✎ 13:42 | 
        (20) на 0-вом уровне есть этот КПП?     | |||
| 22
    
        extrim-style 20.02.14✎ 14:24 | 
        (21) а зачем? я же проверил это в (19)     | |||
| 23
    
        extrim-style 20.02.14✎ 15:08 | 
        Ап для (20)     | |||
| 24
    
        catena 20.02.14✎ 15:55 | 
        (22)Плохо проверил. Я перепроверила, для первого уровня работает.     | |||
| 25
    
        extrim-style 21.02.14✎ 08:46 | 
        (24) спасибо. Действительно, видимо где-то ошибся во время проверки. Получается именно так и работает.
 Подытожу: ВыбратьИерархически() с отбором выбирает только элементы, которые имеют данный отбор во всех родителях этих элементов. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |