![]() |
![]() |
![]() |
|
v7: Условие при выборе полей в запросе | ☑ | ||
---|---|---|---|---|
0
OnePrg
26.11.20
✎
12:36
|
Подскажите пожалуйста как лучше реализовать такой запрос
ТекстЗапроса="//{{ЗАПРОС(ПриходныеНакладные) |Период с ДатаНачала по ДатаОкончания; |Товар = Документ.ПриходнаяНакладная.Товар; |ЭтоВозврат = Документ.ПриходнаяНакладная.ВидОперации; |Количество = ?(ЭтоВозврат=0,1,-1) * Документ.ПриходнаяНакладная.Количество; |Функция СуммаКоличество = Сумма(Количество); |Группировка Товар без групп; |"//}}ЗАПРОС Нужно чтобы поле Количество принимало минус, если это документ возврата. Пробовал вставить свою функцию - не принимает. |
|||
1
Андрей_Андреич
naïve
26.11.20
✎
12:40
|
|Функция СуммаКоличество = Сумма(Количество) КОГДА (Документ.ПриходнаяНакладная.ВидОперации=чему-то там)
|
|||
2
Андрей_Андреич
naïve
26.11.20
✎
12:41
|
А лучше просто
Условие (ЭтоВозврат=1) |
|||
3
Андрей_Андреич
naïve
26.11.20
✎
12:42
|
А у тебя видоперации это 1 или 0 или какое-то перечисление?
|
|||
4
OnePrg
26.11.20
✎
12:46
|
(1) А вот так как сделать?
Функция СуммаКоличество = Сумма(Количество) КОГДА (Документ.ПриходнаяНакладная.ВидОперации = 0) + Сумма(-Количество) КОГДА (Документ.ПриходнаяНакладная.ВидОперации = 1) |
|||
5
OnePrg
26.11.20
✎
12:46
|
(3) 0 или 1
|
|||
6
OnePrg
26.11.20
✎
12:48
|
(2) Условие мне отберёт или приход или возврат, а мне нужно сложить + приход, - возврат
|
|||
7
Андрей_Андреич
naïve
26.11.20
✎
12:51
|
Конечно это все не по фэншую. Но можно вычислить 2 суммы а потом вычесть :)
|
|||
8
Андрей_Андреич
naïve
26.11.20
✎
12:52
|
то есть функция пришло и функция ушло
|
|||
9
OnePrg
26.11.20
✎
12:53
|
(7)
ТекстЗапроса="//{{ЗАПРОС(ПриходныеНакладные) |Период с ДатаНачала по ДатаОкончания; |Товар = Документ.ПриходнаяНакладная.Товар; |ЭтоВозврат = Документ.ПриходнаяНакладная.ВидОперации; |Количество = Документ.ПриходнаяНакладная.Количество; |Функция СуммаКоличествоПриход = Сумма(Количество) КОГДА (Документ.ПриходнаяНакладная.ВидОперации = 0); |Функция СуммаКоличествоРасход = Сумма(Количество) КОГДА (Документ.ПриходнаяНакладная.ВидОперации = 1); |СуммаКоличество = СуммаКоличествоПриход - СуммаКоличествоРасход; |Группировка Товар без групп; |"//}}ЗАПРОС СуммаКоличество = <<?>> СуммаКоличествоПриход - СуммаКоличествоРасход; Запрос[13] : Неверно заданный путь 'СуммаКоличествоПриход' Ошибок - 1, Предупреждений - 0. |
|||
10
Builder
26.11.20
✎
12:55
|
(9) СуммаКоличество уже вычисли при выводе отчета.
|
|||
11
OnePrg
26.11.20
✎
12:57
|
(10) не понял
|
|||
12
OnePrg
26.11.20
✎
12:58
|
ладно остановлюсь на двух суммах, отработаю их при выводе в отчет
|
|||
13
johnnik
26.11.20
✎
14:14
|
Скромненько вклинюсь:
Приходная накладная должна двигать регистры остатков на приход и расход, поэтому можно в запросе товары выбирать не из документов, а из регистра остатков. Главное - отличить поступления и возвраты от расхода, списания, возвратов от покупателя и т.п. |
|||
14
OnePrg
26.11.20
✎
14:37
|
(13) да, только я запрос сократил для форума, а так полный набор полей запроса такой Фирма, Контрагент, Товар, Документ, Количество, Сумма". Я посчитал, что проще сделать запрос к документам.
|
|||
15
Builder
26.11.20
✎
14:50
|
(11) Что непонятного?
При выводе отчета пишешь ТвоеНужноеКоличество = Запрос.СуммаКоличествоПриход - Запрос.СуммаКоличествоРасход; |
|||
16
OnePrg
26.11.20
✎
15:52
|
(15) Так и сделал.
Всем спасибо. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |