Имя: Пароль:
1C
1С v8
Простой вроде запрос. Но лыжи не едут...
,
0 Галахад
 
гуру
06.03.19
09:51
"ВЫБРАТЬ
    |    *
    |ПОМЕСТИТЬ ТаблицаДанных
    |ИЗ
    |    &Таблица КАК Таблица
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    *
    |ИЗ
    |    ТаблицаДанных КАК ТаблицаДанных
    |ГДЕ
    |    ТаблицаДанных.Номенклатура.ЭтоГруппа ИЛИ
    |    НЕ
    |    (ТаблицаДанных.Номенклатура.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп))
    //|    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп) ИЛИ
    //|    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп))
    |
    |УПОРЯДОЧИТЬ ПО
    |    ТаблицаДанных.Номенклатура ИЕРАРХИЯ";
1 Галахад
 
гуру
06.03.19
09:52
Запрос в (0) работает нормально, а вот такой нет:

    "ВЫБРАТЬ
    |    *
    |ПОМЕСТИТЬ ТаблицаДанных
    |ИЗ
    |    &Таблица КАК Таблица
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    *
    |ИЗ
    |    ТаблицаДанных КАК ТаблицаДанных
    |ГДЕ
    |    ТаблицаДанных.Номенклатура.ЭтоГруппа ИЛИ
    |    НЕ
    |    (ТаблицаДанных.Номенклатура.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп) ИЛИ
    //|    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп))
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп) ИЛИ
    |    ТаблицаДанных.Номенклатура.Родитель.Родитель.Родитель.Родитель.Родитель.Родитель В (&МассивГрупп))
    |
    |УПОРЯДОЧИТЬ ПО
    |    ТаблицаДанных.Номенклатура ИЕРАРХИЯ";
2 2S
 
06.03.19
09:52
жесть какая-то
3 Галахад
 
гуру
06.03.19
09:55
Параметр "МассивГрупп" номенклатура, которая попадает только в условие ТаблицаДанных.Номенклатура.Родитель В (&МассивГрупп)
4 Галахад
 
гуру
06.03.19
09:55
(2) Так, больше слов.
5 sqr4
 
06.03.19
09:57
(0) а че не работает то
А зачем тебе нужно запросом такое делать?
6 Prog111
 
06.03.19
09:57
А в чем разница между первым и вторым запросом?
7 sqr4
 
06.03.19
09:58
(6) в количестве ".Родитель"
8 sqr4
 
06.03.19
09:58
(6) Может количество уровней иерархии ограничено
9 Галахад
 
гуру
06.03.19
09:59
(5) Возвращает разный результат.
10 sqr4
 
06.03.19
10:00
(9) Логично, запрос же разный)
11 sqr4
 
06.03.19
10:01
И почему не использовать в Иерархии
12 Галахад
 
гуру
06.03.19
10:01
(8) Так, подробнее.

(10) Ну, в последнее условие, точно не должно попадать.
13 palsergeich
 
06.03.19
10:03
В этом запросе прекрасно всё.
Количество точек, оператор НЕ В, упорядочить по ИЕРАРХИЯ)))
14 palsergeich
 
06.03.19
10:03
А да ещё и оператор или в больших количествах)
15 ks_83
 
06.03.19
10:04
вроде не пятницо еще
16 Галахад
 
гуру
06.03.19
10:05
(14) Что есть, то есть. Мне интересно почему результат разный.
17 Лодырь
 
06.03.19
10:07
(16) Разный это какой?
18 Галахад
 
гуру
06.03.19
10:09
(17)  Первый возвращает все, что не в "МассивГрупп", группы и элементы
Второй возвращает только группы.
19 Лодырь
 
06.03.19
10:12
(18) если у тебя уровень иерархии 3, то 4ый родитель ВСЕГДА будет пустым и не попадет в массив. Следовательно условие на вложенность всегда будет истина. И будет срабатывать только условие ЭтоГруппа
20 Fram
 
06.03.19
10:13
(18) а как надо?
21 Лодырь
 
06.03.19
10:14
(19)тьфу, запутался. надо чаю попить
22 los_hooliganos
 
06.03.19
10:25
Что мешает нормально использовать иерархию?
23 Галахад
 
гуру
06.03.19
10:29
(19) Спасибо. Так и есть:
Null В (&МассивГрупп)
Видимо вообще не булево.
24 evorle145
 
06.03.19
10:35
(23) а там точно NULL Будет? А не пустаяссылка?
25 sqr4
 
06.03.19
10:36
(24) угу
26 Галахад
 
гуру
06.03.19
10:37
(24) Да. Я проверил.
27 catena
 
06.03.19
10:39
(24) в пределах количества уровней пустая ссылка, сверх уже NULL
28 dezss
 
06.03.19
10:43
эх...как бы сделать "развидеть" :(
29 Eiffil123
 
06.03.19
11:00
А нельзя отдельным запросом собрать родителей по иерархии, выгрузить их в массив и в условии проверять вхождение в этот массив? Мне кажется, будет более оптимально.
30 palsergeich
 
06.03.19
11:27
(29) вечно вы программисты все усложняете©
31 sqr4
 
06.03.19
11:29
(30) а среди 1с ников есть программисты?
32 ДенисЧ
 
06.03.19
11:30
(31) нет
33 Eiffil123
 
06.03.19
11:53
(32) вот закроют все модули в типовых от изменений - и будет хорошо. повыгоняют всех этих программистов на улицу
будет как в сапе - "доработать нельзя" )))
34 hhhh
 
06.03.19
12:00
(24) пустая ссылка тоже дает этот результат. Пустая ссылка - это родитель для всей номенклатуры. Всего справочника. Корневой узел дерева. Поэтому всегда там ИСТИНА. И учитывая, что там НЕ, получается, что попадают только группы. Что ТС и наблюдает.
35 dmpl
 
07.03.19
07:16
(33) И сколько они тогда тех же ERP продадут? ;) Ноль, потому что из коробки оно не работает.