Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как в запросе по остаткам выбрать только отрицательные остатки

v7: Как в запросе по остаткам выбрать только отрицательные остатки
Я
   Absurdus
 
13.11.17 - 09:39
|Период с НачДата по КонДата;
|Номенклатура = Регистр.ОстаткиТМЦ.Номенклатура;
|Количество = Регистр.ОстаткиТМЦ.Количество;
|Функция КолКонОст = КонОст(Количество);
|Группировка Номенклатура;

Какое добавить условие в запросе, чтобы в результате были только отрицательные остатки?

|Условие(КолКонОст < 0); не канает

Перебор строк запроса после выполнения тоже не канает, т.к. запрос чуть сложенее и нужны итоги по группировкам
 
 
   АЛьФ
 
1 - 13.11.17 - 10:10
2(0) Сделать два запроса: первым отобрать список номенклатуры с отрицательными остатками, вторым собрать итоги с фильтром по полученному списку.
   VladZ
 
2 - 13.11.17 - 10:19
Еще вариант: использовать "прямые запросы".
   aka AMIGO
 
3 - 13.11.17 - 10:31
У меня канает

    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Товар = Регистр.ОстаткиТоваров.Товар;
    |Склад = Регистр.ОстаткиТоваров.Склад;
    |ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара;
    |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара);
    |Группировка Склад Без Групп;
    |Группировка Товар Без Групп;
    |Условие(ОстатокТовара < 0);
    |"//}}ЗАПРОС
   aka AMIGO
 
4 - 13.11.17 - 10:34
Твой вариант:
|Условие (Количество<0);
   vcv
 
5 - 13.11.17 - 10:37
(3) Если в регистре есть еще какие измерения (партия, и тому подобное) получится несколько не то, что (0) хотел.
   vcv
 
6 - 13.11.17 - 10:38
(0) Есть еще вариант фильтрации при выводе.
   Ёпрст
 
7 - 13.11.17 - 10:40
(0)
|условие Запрос.КолКонОст<0

Но, это не всегда верно, и лучше, так не делать.
   Ёпрст
 
8 - 13.11.17 - 10:41
(3) хня написана. Есу нужно отрицательный остаток, а не значение ресурса.
   vcv
 
9 - 13.11.17 - 10:47
(8) Что ж ты такой злой? При структуре регистра типа ОстаткиТМЦ из ТиС и отсутствии розницы метод вполне канает.
   Ёпрст
 
10 - 13.11.17 - 10:50
(9) что именно канает ?
 
 Рекламное место пустует
   vcv
 
11 - 13.11.17 - 11:09
В ОстаткахТМЦ, например, измерения Фирма, Склад, Номенклатура, ЦенаПрод. Если нет розницы и не может возникнуть пересорт по цене продажи, фильтр "Условие (Количество<0);" вполне может решить задачу (0). А может и не решить, если (0) не интересует возможный "пересорт" в разрезе складов и фирм.
   Ёпрст
 
12 - 13.11.17 - 11:34
(11) подумай, каким х..ом количество будет отрицательным ? И что такое остаток.
   Ёпрст
 
13 - 13.11.17 - 11:36
И, как он считается, если не на дату ТА.
   aka AMIGO
 
14 - 13.11.17 - 11:49
С внешней функцией
Функция ОтрицОст(Товар, Склад)
    Ост = Регистр.ОстаткиТоваров.СводныйОстаток(Товар, Склад, "ОстатокТовара");
    Возврат ?(Ост<0,Ост,0);
КонецФункции

Процедура Сформировать()
    Перем Запрос, ТекстЗапроса, Таб;
    //Создание объекта типа Запрос

    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса = 
    "//{{ЗАПРОС(Сформировать)

    |Товар = Регистр.ОстаткиТоваров.Товар;
    |Склад = Регистр.ОстаткиТоваров.Склад;
    |ОстатокТовара = Регистр.ОстаткиТоваров.ОстатокТовара;
    |Функция ОстатокТовараКонОст = КонОст(ОстатокТовара);
    |Функция ОстатокТовараЫ = Сумма(ОтрицОст(Товар,Склад));
    |Группировка Склад Без Групп;
    |Группировка Товар Без Групп;
    |"//}}ЗАПРОС

    ;
Картинка результатов:
https://i.paste.pics/2adf0195d4559efe52182c9a029949c5.png
   aka AMIGO
 
15 - 13.11.17 - 11:51
Отбор можно выполнить в цикле по Запросу.
   aka AMIGO
 
16 - 13.11.17 - 11:56
   sapphire
 
17 - 14.11.17 - 00:45
(0) regprint.ert

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует