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