|
1с запрос массив параметров пустой | ☑ | ||
---|---|---|---|---|
0
illiona
naïve
17.09.20
✎
07:00
|
ВЫБРАТЬ
РеализацияТоваровУслугСкидкиНаценки.НомерСтроки КАК НомерСтроки, РеализацияТоваровУслугСкидкиНаценки.КлючСвязи КАК КлючСвязи, РеализацияТоваровУслугСкидкиНаценки.Сумма КАК Сумма, РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка ПОМЕСТИТЬ ВременнаяТаблица ИЗ Документ.ЗаказКлиента.СкидкиНаценки КАК РеализацияТоваровУслугСкидкиНаценки ГДЕ РеализацияТоваровУслугСкидкиНаценки.Ссылка = &Ссылка И ВЫБОР КОГДА 0 В ( ВЫБРАТЬ Количество(*) ИЗ Справочник.СкидкиНаценки ГДЕ СкидкаНаценка В (&СкидкаНаценка)) ТОГДА Истина ИНАЧЕ СкидкаНаценка В (&СкидкаНаценка) КОНЕЦ Добрый день.Если массив параметров пустой выводит все значения, а если не пустой не верно выводит |
|||
1
PuhUfa
17.09.20
✎
07:10
|
(0) Не так разве должно быть?
ИНАЧЕ РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка В (&СкидкаНаценка) |
|||
2
Simod
17.09.20
✎
07:14
|
КОЛИЧЕСТВО(*) для пустой таблицы возвращает 0, так что при установке в качестве параметра отбора пустой массив ты получаешь пустую таблицу и соответствующий результат.
|
|||
3
illiona
naïve
17.09.20
✎
07:29
|
если в массиве например стоит выводить СкидкаНаценка = скидка1%, скидка2%, а в документе только скидка3%,
он выводит скидка3%, хотя должно быть пусто, т.к. условия не подходят |
|||
4
Галахад
гуру
17.09.20
✎
07:30
|
(3) Как раз и подходят в это условие:
0 В ( ВЫБРАТЬ Количество(*) ИЗ Справочник.СкидкиНаценки ГДЕ СкидкаНаценка В (&СкидкаНаценка)) |
|||
5
illiona
naïve
17.09.20
✎
07:32
|
а он выводит все что есть в документе, а должен только скидка1%, скидка2%
|
|||
6
PuhUfa
17.09.20
✎
07:34
|
Зачем вообще такие танцы? Почему просто не написать:
ВЫБОР КОГДА &ЕстьФильтрПоСкидкам ТОГДА РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка В (&СкидкаНаценка) ИНАЧЕ Истина КОНЕЦ Запрос.УстановитьПараметр("СкидкаНаценка",СкидкаНаценка); Запрос.УстановитьПараметр("ЕстьФильтрПоСкидкам", ?(СкидкаНаценка.Количество()>0,Истина,Ложь)); |
|||
7
illiona
naïve
17.09.20
✎
07:39
|
(6) спасибо
все равно только, если в массиве скидка1%, скидка2% а в документе только скидка3% запрос выдает все позиции со скидкой скидка3%, т.е. по массиву не отбирает |
|||
8
PuhUfa
17.09.20
✎
07:47
|
(7) >>запрос выдает все позиции со скидкой скидка3%, т.е. по массиву не отбирает
как определила? Показывай уж тогда весь запрос |
|||
9
Simod
17.09.20
✎
07:48
|
(6) Можно и попроще:
|... |ГДЕ | &ЕстьФильтрПоСкидкам ИЛИ РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка В (&СкидкаНаценка) Запрос.УстановитьПараметр("СкидкаНаценка", СкидкаНаценка); Запрос.УстановитьПараметр("ЕстьФильтрПоСкидкам", ?(СкидкаНаценка.Количество() > 0, Истина, Ложь)); |
|||
10
illiona
naïve
17.09.20
✎
07:49
|
ВЫБРАТЬ
РеализацияТоваровУслугСкидкиНаценки.НомерСтроки КАК НомерСтроки, РеализацияТоваровУслугСкидкиНаценки.КлючСвязи КАК КлючСвязи, РеализацияТоваровУслугСкидкиНаценки.Сумма КАК Сумма, РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка ПОМЕСТИТЬ ВременнаяТаблица ИЗ Документ.ЗаказКлиента.СкидкиНаценки КАК РеализацияТоваровУслугСкидкиНаценки ГДЕ РеализацияТоваровУслугСкидкиНаценки.Ссылка = &Ссылка И ВЫБОР КОГДА &ЕстьФильтрПоСкидкам ТОГДА РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка В (&СкидкаНаценка) ИНАЧЕ Истина КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РеализацияТоваровУслугТовары.НомерСтроки КАК НомерСтроки, РеализацияТоваровУслугТовары.КлючСвязи КАК КлючСвязи, РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура, РеализацияТоваровУслугТовары.Склад КАК Склад ПОМЕСТИТЬ Таблица2 ИЗ Документ.ЗаказКлиента.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Таблица2.КлючСвязи КАК КлючСвязи, Таблица2.Номенклатура КАК Номенклатура, Таблица2.Склад КАК Склад, ВременнаяТаблица.СкидкаНаценка КАК СкидкаНаценка, ВременнаяТаблица.Сумма КАК Сумма ИЗ ВременнаяТаблица КАК ВременнаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ Таблица2 КАК Таблица2 ПО ВременнаяТаблица.КлючСвязи = Таблица2.КлючСвязи |
|||
11
PuhUfa
17.09.20
✎
08:04
|
(10) Нужен отладчик -( Может конечно утренний кофе еще не начал действовать, но визуально запрос должен работать нормально. Надо отладчиком посмотреть где что и какие заначения по факту
|
|||
12
illiona
naïve
17.09.20
✎
08:07
|
Даже так не работает
ВЫБРАТЬ РеализацияТоваровУслугСкидкиНаценки.НомерСтроки КАК НомерСтроки, РеализацияТоваровУслугСкидкиНаценки.КлючСвязи КАК КлючСвязи, РеализацияТоваровУслугСкидкиНаценки.Сумма КАК Сумма, РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка ИЗ Документ.ЗаказКлиента.СкидкиНаценки КАК РеализацияТоваровУслугСкидкиНаценки ГДЕ РеализацияТоваровУслугСкидкиНаценки.Ссылка = &Ссылка И ВЫБОР КОГДА &ЕстьФильтрПоСкидкам ТОГДА РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка В (&СкидкаНаценка) ИНАЧЕ Истина КОНЕЦ |
|||
13
PuhUfa
17.09.20
✎
08:10
|
(12) ну тут пока только одно. В СкидкаНаценка, в момент УстановитьПараметр у тебя все значения скидок
|
|||
14
illiona
naïve
17.09.20
✎
08:15
|
т.е. он не будет выводить что я чисто в списке значений установлю?
|
|||
15
illiona
naïve
17.09.20
✎
08:18
|
ВЫБРАТЬ
РеализацияТоваровУслугСкидкиНаценки.НомерСтроки КАК НомерСтроки, РеализацияТоваровУслугСкидкиНаценки.КлючСвязи КАК КлючСвязи, РеализацияТоваровУслугСкидкиНаценки.Сумма КАК Сумма, РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка КАК СкидкаНаценка ИЗ Документ.ЗаказКлиента.СкидкиНаценки КАК РеализацияТоваровУслугСкидкиНаценки ГДЕ РеализацияТоваровУслугСкидкиНаценки.Ссылка = &Ссылка и РеализацияТоваровУслугСкидкиНаценки.СкидкаНаценка В (&СкидкаНаценка) вот так работает, но на пустоту нет проверки |
|||
16
PuhUfa
17.09.20
✎
08:19
|
(14) Ну нам отсюда не видно где и как ты устанавливаешь значения для СкидкаНаценка. Поставь точку УстановитьПараметр и посмотри что в нем в отладчиком
|
|||
17
illiona
naïve
17.09.20
✎
08:28
|
все работает, я делала через консоль)))), сделала через отладчик
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |