Имя: Пароль:
1C
1С v8
Как в запросе отобрать все элементы справочника, кроме 1 группы?
,
0 Soul771
 
16.06.14
12:12
Добрый день.
Подскажите, пожалуйста, че-то туплю...
Есть справочник номенклатуры, из него надо выбрать все элементы, кроме тех, которые находятся в определенной папке (Внутри этой папки есть подпапки). Сделать нужно в запросе, а я что-то не найду условия НЕ В ИЕРАРХИИ... Или как-то по-другому это делается?....
1 ДенисЧ
 
16.06.14
12:14
так и пиши НЕ в иерархии..
Пробовал хть?
2 Soul771
 
16.06.14
12:15
Запрос = Новый Запрос;
    Запрос.Текст =
          "ВЫБРАТЬ
          |    Номенклатура.Наименование,
          |    Номенклатура.Код,
          |    Номенклатура.Артикул,
          |    Номенклатура.Родитель,
          |    Номенклатура.ЭтоГруппа,
          |    Номенклатура.НаименованиеПолное
          |ИЗ
          |    Справочник.Номенклатура КАК Номенклатура
          |ГДЕ
          |     Номенклатура.Родитель НЕ В ИЕРАРХИИ (&Родитель)";
          
    Запрос.УстановитьПараметр("Родитель", "Затраты");      
    Выборка = Запрос.Выполнить().Выбрать();
3 Segate
 
16.06.14
12:15
Благославляю тебя на использование В ИЕРАРХИИ и Не в одной строке условия, аминь.

ЗЫ
Где
Не справочник.ссылка в иерархии &ссылка
4 Soul771
 
16.06.14
12:15
(1) вот так пробовала, и еще
НЕ Номенклатура.Родитель  В ИЕРАРХИИ (&Родитель)";

не работает почему-то..
5 PuhUfa
 
16.06.14
12:17
- Запрос.УстановитьПараметр("Родитель", "Затраты");
6 rsv
 
16.06.14
12:18
(0)Ну явно перечислите в запросе  коды родителей  элементы которых не обрабатывать.
7 Segate
 
16.06.14
12:18
(6)ты серьезно? оО
8 rsv
 
16.06.14
12:18
Где Родитель.Код NOT IN ("123","NNN")
9 rsv
 
16.06.14
12:18
(7) Вполен . Что смущает ?
10 Lelic
 
16.06.14
12:21
Присоединяюсь к (5). Стесняюсь спросить, а Запрос.УстановитьПараметр("Родитель", "Затраты") у вас работает?
11 rsv
 
16.06.14
12:23
Результат все равно одинаков :) Т.е. запрос приведен к примитиву  без прикладного ИЕРАРХИИ.
12 Soul771
 
16.06.14
12:23
(8) - для моей задачи перечислить смогу, а как быть, если таких подпапок будет очень много, как все-таки правильно?...
(10) - ммм... тыкните носом, пжлста, чего не так написала.....Смотрю в синтаксис, не вижу трабла... мож уже от 7-ки глючит..
13 Segate
 
16.06.14
12:23
(8) а если в 1й группе 1500 подгрупп? ну мне так... чисто интересно, как тогда ты будешь делать.
14 Segate
 
16.06.14
12:24
(12) у тебя в параметре строка, а сранивать ты пытаешься с справочникСсылка.
15 Enders
 
16.06.14
12:25
(12)Номенклатура.Родитель - это ссылка на группу, а в переменную ты пихаешь строку.
16 rsv
 
16.06.14
12:25
(12) Если можете  выполняйте задачу :)  а если бы да кабы  это потом.

(13) Вы о космических кораблях ?
17 Soul771
 
16.06.14
12:26
(14) Спасибо!!
поправила, все получилось))))
18 rsv
 
16.06.14
12:26
Вот если баааа да кабы ... :) Вот это все и  отклоняет от решения задач и  утягивает в философию.
19 Soul771
 
16.06.14
12:27
Всем спасибо, ребята!
написала в запросе
ГДЕ
          |     НЕ Номенклатура.Родитель  В ИЕРАРХИИ (&Родитель)";

после запроса
Родитель = Справочники.Номенклатура.НайтиПоНаименованию("Затраты");      
    Запрос.УстановитьПараметр("Родитель", Родитель);
20 rsv
 
16.06.14
12:28
(19) Давайте уж тогда из профайлера протыню :)
21 Segate
 
16.06.14
12:31
(18) 10 лет стажа почти, и не знаешь, что нельзя в конфигураторе использовать конструкции завязанные на пользовательские данные? мдаа...
22 rsv
 
16.06.14
12:37
(21) Вы хотите поговорит об этом ?
23 rsv
 
16.06.14
12:37
:)
24 rsv
 
16.06.14
12:37
Что еще нельзя ? :)
25 МихаилМ
 
16.06.14
13:07
1с8 обрабатывает конструкцию в иерархии в 2 запроса

1) считвывает группы, вычисляет нужные
2) отбирает по нужным  

если известно соотношение нужных и не нужных,
можно прочитать выборку и исключить ненужные на клиенте.
AdBlock убивает бесплатный контент. 1Сергей