|
запрос в иерархии | ☑ | ||
---|---|---|---|---|
0
falselight
07.12.16
✎
07:55
|
Есть запрос который вывожу в макет.
в запросе отборы установлены как "=" то есть на отбор элементов справочника. Стоит задача, учесть отбор групп, каталогов справочника какую инструкцию для этого правильнее использовать? "В" или "В ИЕРАРХИИ ()" и чем они от друг друга отличаются? |
|||
1
falselight
07.12.16
✎
08:12
|
К примеру в поле выбрали элемент тогда в условии "=".
А если в поле выбрали группу, что тогда ставить в условие? "В ()" или "В ИЕРАРХИИ ()" |
|||
2
d546
07.12.16
✎
08:17
|
уже можно было и так и так поробывать
|
|||
3
rphosts
07.12.16
✎
08:17
|
В () - это принадлежность к множеству перечисленному в тому что отбирается в (...),
В ИЕРАРХИИ (...) - это принадлежность к множеству перечисленному в (...) или к элементам являющимся дочерними по отношению к (...). В ИЕРАРХИИ по возможности лучше не использовать никогда т.к. это жуткие тормоза (можно отказаться от В ИЕРАРХИИ в пользу В всегда когда количество уровней невелико). |
|||
4
falselight
07.12.16
✎
08:41
|
В, В ИЕРАРХИИ
Конструкция «В» позволяет сравнить значения поля с произвольным списком значения, массива или другого запроса. Если поле присутствует в указанном списке – выражение вернет ИСТИНА. Примеры: НоменклатураСпр.Наименование В («Лопата», «Грабли», «Совок») НоменклатураСпр.Наименование В (ВЫБРАТЬ ВТ.Наименование ИЗ ВТ) НоменклатураСпр.Наименование В (&СписокНаименований) «В ИЕРАРХИИ» конструкция, которой нет аналогов в обычном языке SQL. Она проверяет принадлежность значения к вложенной иерархии. Пример: НоменклатураСпр.Ссылка В (&Группа) |
|||
5
falselight
07.12.16
✎
08:44
|
В (4) я понимаю так
В - используется когда в параметре некий список В ИЕРАРХИИ - используется когда в параметр передается группа справочника (3) что правильно использовать передавая параметр в конструкции В или В ИЕРАРХИИ - группу справочника? |
|||
6
falselight
07.12.16
✎
08:45
|
(2) попробовал
выборка срабатывает когда в параметр передаю группу справочника и ставлю В ИЕРАРХИИ когда меняю на просто В, выборка исчерает |
|||
7
Лефмихалыч
07.12.16
✎
08:47
|
||||
8
falselight
07.12.16
✎
08:54
|
в итоге, думаю, будет так:
Если ЗначениеЗаполнено(ЭлементыФормы.Контрагент.Значение) И Не ЭлементыФормы.Контрагент.Значение.ЭтоГруппа() Тогда Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент"; Иначе Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ(&Контрагент)"; КонецЕсли; Если ЗначениеЗаполнено(ЭлементыФормы.Номенклатура.Значение) И НЕ ЭлементыФормы.Номенклатура.Значение.ЭтоГруппа Тогда Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура"; Иначе Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Номенклатура В ИЕРАРХИИ(&Номенклатура)"; КонецЕсли; |
|||
9
falselight
07.12.16
✎
09:01
|
точнее так
Если ЗначениеЗаполнено(ЭлементыФормы.Контрагент.Значение) И Не ЭлементыФормы.Контрагент.Значение.ЭтоГруппа() Тогда Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент"; ИначеЕсли ЗначениеЗаполнено(ЭлементыФормы.Контрагент.Значение) И ЭлементыФормы.Контрагент.Значение.ЭтоГруппа() Тогда Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ(&Контрагент)"; КонецЕсли; Если ЗначениеЗаполнено(ЭлементыФормы.Номенклатура.Значение) И НЕ ЭлементыФормы.Номенклатура.Значение.ЭтоГруппа Тогда Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Номенклатура = &Номенклатура"; ИначеЕсли ЗначениеЗаполнено(ЭлементыФормы.Номенклатура.Значение) И ЭлементыФормы.Номенклатура.Значение.ЭтоГруппа Тогда Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Номенклатура В ИЕРАРХИИ(&Номенклатура)"; КонецЕсли; |
|||
10
Лефмихалыч
07.12.16
✎
09:07
|
достаточно просто
Если ЗначениеЗаполнено(ЭлементыФормы.Контрагент.Значение) Тогда Запрос.Текст = Запрос.Текст + " | И ПоступлениеТоваровУслугТовары.Ссылка.Контрагент В ИЕРАРХИИ(&Контрагент)"; КонецЕсли; В ИЕРАРХИИ отлично работает и как "=" |
|||
11
falselight
07.12.16
✎
09:14
|
(10) понял!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |