|
v7: Как в запросе по остаткам выбрать только отрицательные остатки | ☑ | ||
---|---|---|---|---|
0
Absurdus
13.11.17
✎
09:39
|
|Период с НачДата по КонДата;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура; |Количество = Регистр.ОстаткиТМЦ.Количество; |Функция КолКонОст = КонОст(Количество); |Группировка Номенклатура; Какое добавить условие в запросе, чтобы в результате были только отрицательные остатки? |Условие(КолКонОст < 0); не канает Перебор строк запроса после выполнения тоже не канает, т.к. запрос чуть сложенее и нужны итоги по группировкам |
|||
1
АЛьФ
13.11.17
✎
10:10
|
2(0) Сделать два запроса: первым отобрать список номенклатуры с отрицательными остатками, вторым собрать итоги с фильтром по полученному списку.
|
|||
2
VladZ
13.11.17
✎
10:19
|
Еще вариант: использовать "прямые запросы".
|
|||
3
aka AMIGO
13.11.17
✎
10:31
|
У меня канает
ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Товар = Регистр.ОстаткиТоваров.Товар; |Склад = Регистр.ОстаткиТоваров.Склад; |ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара; |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара); |Группировка Склад Без Групп; |Группировка Товар Без Групп; |Условие(ОстатокТовара < 0); |"//}}ЗАПРОС |
|||
4
aka AMIGO
13.11.17
✎
10:34
|
Твой вариант:
|Условие (Количество<0); |
|||
5
vcv
13.11.17
✎
10:37
|
(3) Если в регистре есть еще какие измерения (партия, и тому подобное) получится несколько не то, что (0) хотел.
|
|||
6
vcv
13.11.17
✎
10:38
|
(0) Есть еще вариант фильтрации при выводе.
|
|||
7
Ёпрст
13.11.17
✎
10:40
|
(0)
|условие Запрос.КолКонОст<0 Но, это не всегда верно, и лучше, так не делать. |
|||
8
Ёпрст
13.11.17
✎
10:41
|
(3) хня написана. Есу нужно отрицательный остаток, а не значение ресурса.
|
|||
9
vcv
13.11.17
✎
10:47
|
(8) Что ж ты такой злой? При структуре регистра типа ОстаткиТМЦ из ТиС и отсутствии розницы метод вполне канает.
|
|||
10
Ёпрст
13.11.17
✎
10:50
|
(9) что именно канает ?
|
|||
11
vcv
13.11.17
✎
11:09
|
В ОстаткахТМЦ, например, измерения Фирма, Склад, Номенклатура, ЦенаПрод. Если нет розницы и не может возникнуть пересорт по цене продажи, фильтр "Условие (Количество<0);" вполне может решить задачу (0). А может и не решить, если (0) не интересует возможный "пересорт" в разрезе складов и фирм.
|
|||
12
Ёпрст
13.11.17
✎
11:34
|
(11) подумай, каким х..ом количество будет отрицательным ? И что такое остаток.
|
|||
13
Ёпрст
13.11.17
✎
11:36
|
И, как он считается, если не на дату ТА.
|
|||
14
aka AMIGO
13.11.17
✎
11:49
|
С внешней функцией
Функция ОтрицОст(Товар, Склад) Ост = Регистр.ОстаткиТоваров.СводныйОстаток(Товар, Склад, "ОстатокТовара"); Возврат ?(Ост<0,Ост,0); КонецФункции Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Товар = Регистр.ОстаткиТоваров.Товар; |Склад = Регистр.ОстаткиТоваров.Склад; |ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара; |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара); |Функция ОстатокТовараЫ = Сумма(ОтрицОст(Товар,Склад)); |Группировка Склад Без Групп; |Группировка Товар Без Групп; |"//}}ЗАПРОС ; Картинка результатов: https://i.paste.pics/2adf0195d4559efe52182c9a029949c5.png |
|||
15
aka AMIGO
13.11.17
✎
11:51
|
Отбор можно выполнить в цикле по Запросу.
|
|||
16
aka AMIGO
13.11.17
✎
11:56
|
||||
17
sapphire
14.11.17
✎
00:45
|
(0) regprint.ert
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |