Имя: Пароль:
1C
 
как в запросе правильно указать
0 lamme
 
04.06.20
13:08
УФ
положил на форму - список значений с типом - номенклатура - СписокВыбранныхТоваров
выбор - элементы и группы.
Делаю запрос по остаткам .


ВЫБРАТЬ
    ОстаткиТоваровКомпанииОстатки.Номенклатура КАК Номенклатура,
    ОстаткиТоваровКомпанииОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры
ИЗ
    РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, ) КАК ОстаткиТоваровКомпанииОстатки
ГДЕ
    ОстаткиТоваровКомпанииОстатки.КоличествоОстаток > 0


В СписокВыбранныхТоваров - могут быть как элементы, так и группы

Как правильно в запросе указать - чтобы поиск был только по выбранным группам в иерархией и выбранным элементам ?




ГДЕ
    ОстаткиТоваровКомпанииОстатки.КоличествоОстаток > 0
и ОстаткиТоваровКомпанииОстатки.Номенклатура В (&СписокВыбранныхТоваров)

?
1 arsik
 
гуру
04.06.20
13:14
(0) В ИЕРАРХИИ, только нужно не в ГДЕ это использовать, а в параметрах виртуальной таблицы - "РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Номенклатура В ИЕРАРХИИ(&СписокВыбранныхТоваров)) КАК ОстаткиТоваровКомпанииОстатки"
2 Ёпрст
 
04.06.20
13:14
условие воткни в параметры виртуальной таблицы
3 lamme
 
04.06.20
13:17
(0)
если буде тв иерерархии - то при выборе 1 элемента из группы
в отчет выпадают все элементы той группы - из которой выбран товар.

сейчас еще раз проверб
4 lamme
 
04.06.20
13:27
а еще вопрос .. не в тему

часто вижу вот такую констуркцию. в запросе

    РегистрНакопления.СвободныеОстатки.Остатки(, {((Номенклатура, Характеристика) В
                    (ВЫБРАТЬ
                        ТаблицаОтбора.Номенклатура КАК Номенклатура,
                        ТаблицаОтбора.Характеристика КАК Характеристика
                    ИЗ
                        ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
                    ГДЕ
                        ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)) КАК Поле2, (Склад).*, (Номенклатура).*, (Характеристика).*}) КАК Т


вопрос вот по этим фигурным скобкам
{((Номенклатура, Характеристика) ....  КАК Поле2, (Склад).*, (Номенклатура).*, (Характеристика).*}

это что
5 Ёпрст
 
04.06.20
13:30
(4) это указание построителю\скд для условий или выбора полей\сортировки
6 lamme
 
04.06.20
13:34
а в обычном запросе - такое используется ?

те все тот же

ИЗ
    РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, Склад = &Склад И Номенклатура В ИЕРАРХИИ(&СписокВыбранныхТоваров)) КАК ОстаткиТоваровКомпанииОстатки
как то сюда эти скобки впихнуть можно ?

т.е. на форме лежат
- список значений для выбора склада
- список значений для выбора товаров

соответственно - в запрос надо подставлять условия в зависимости от того - как выбраны эти списки.


ИЗ
    РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, и тут чего то указать 1 раз - вместо Если СпискоТоваров.Количество()>0 - тогда услвоие в запросе одно ... и тд ) КАК ОстаткиТоваровКомпанииОстатки
7 lamme
 
04.06.20
13:34
и где об этом почитать ?
8 lamme
 
04.06.20
13:41
ога ..
необязательные параемтры
понял
9 lamme
 
04.06.20
13:41
а вот это - КАК ПОЛЕ2 - это что ?

|    РегистрНакопления.ОстаткиТоваровКомпании.Остатки(, {(СкладКомпании В (&СкладКомпании)
         |                И Номенклатура В ИЕРАРХИИ (&товарыКомпании)) КАК Поле2}) КАК ОстаткиТоваровКомпанииОстатки
10 Волшебник
 
модератор
04.06.20
14:04
(9) Это внутри фигурных скобок, название отбора для пользователя, как он будет выглядеть в настройках построителя отчётов
11 dka80
 
04.06.20
14:04
Номенклатура В ИЕРАРХИИ (&товарыКомпании) - сильно влияют на производительность. Если таблица большая, то так лучше не делать.
12 lamme
 
04.06.20
14:06
(10)
да. я понял

там не Новый Запрос()  надо
а Новый ПостроительЗапроса

тогда можно работать с этими скобками.
13 lamme
 
04.06.20
14:06
вопрос закрыт
14 lamme
 
04.06.20
14:06
спасибо
15 Волшебник
 
модератор
04.06.20
14:10
Удачи