8.х Убрать лишнюю строку из ИТОГОВ при выборке Регистратора

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем baa, 19 дек 2007.

  1. TopicStarter Overlay
    baa
    Offline

    baa

    Регистрация:
    19 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Подскажите, есть запрос:
    Код:
    ПостроительОтчетаДвиженияТМЦ.Текст =
    "ВЫБРАТЬ
    |    Партии.МестоХранения                     КАК МестоХранения,
    |    ПРЕДСТАВЛЕНИЕ(Партии.МестоХранения),
    |    Партии.ТМЦ                                 КАК ТМЦ,
    |    ПРЕДСТАВЛЕНИЕ(Партии.ТМЦ),
    |    Партии.Поставщик                         КАК Поставщик,
    |    ПРЕДСТАВЛЕНИЕ(Партии.Поставщик),
    |    Партии.Партия                             КАК Партия,
    |    ПРЕДСТАВЛЕНИЕ(Партии.Партия),
    |    Партии.Регистратор                         КАК Регистратор,
    |    ПРЕДСТАВЛЕНИЕ(Партии.Регистратор),
    |    Партии.КоличествоНачальныйОстаток         КАК НачКоличество,
    |    Партии.КоличествоКонечныйОстаток         КАК КонКоличество,
    |    Партии.КоличествоПриход                 КАК ПриходКоличество,
    |    Партии.КоличествоРасход                 КАК РасходКоличество,
    |    Партии.СтоимостьНачальныйОстаток         КАК НачСтоимость,
    |    Партии.СтоимостьКонечныйОстаток         КАК КонСтоимость,
    |    Партии.СтоимостьПриход                     КАК ПриходСтоимость,
    |    Партии.СтоимостьРасход                     КАК РасходСтоимость
    |ИЗ
    |    РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, ДвиженияИГраницыПериода, ) КАК Партии
    |УПОРЯДОЧИТЬ ПО
    |    МестоХранения,
    |    ТМЦ,
    |    Поставщик,
    |    Партия,
    |    Регистратор
    |ИТОГИ 
    |    СУММА(НачКоличество),    СУММА(НачСтоимость),
    |    СУММА(ПриходКоличество),СУММА(ПриходСтоимость),
    |    СУММА(РасходКоличество),СУММА(РасходСтоимость),
    |    СУММА(КонКоличество),    СУММА(КонСтоимость)
    |ПО
    |    ОБЩИЕ,    МестоХранения,
    |    ТМЦ,     Поставщик,
    |    Партия,    Регистратор";
    
    При этом в развороте по Регистратору получается лишняя строка с остатком начальным = остатку конечному с пустым Регистратором. Как от нее избавится в запросе, чтобы сразу вывести через постоитель отчетов, без дополнительного перебора результата.
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    ГДЕ ЕстьNULL(Регистратор, 0 ) <> 0
  3. TopicStarter Overlay
    baa
    Offline

    baa

    Регистрация:
    19 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    это условие приведет к тому, что будут отобраны записи по тем позициям, обороты которых есть в данном периоде, тоже самое, что в параметрах вирт. таблицы указать вместо ДвиженияИГраницыПериода - параметр Движения.
    Так что такое условие неверно!
  4. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Если запихать в параметры - то да, а если внешнее - то нет.
  5. TopicStarter Overlay
    baa
    Offline

    baa

    Регистрация:
    19 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Нет, такое выражение ничего не дало. Более того, нужно фильтровать по ГДЕ Регистратор <> Неопределено, а не по ЕстьNull.
    Такое выражение - ГДЕ ЕстьNULL(Регистратор, 0 ) <> 0
    вообще ничего не отфильтрует
  6. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Там пустая ссылка, скорее... если один регистратор.

    Тьфу! Естественно будет такая строка! У тебя же ОстаткиИОбороты да еще с итогами по регистратору! Вот отсюда и растут ноги.
  7. TopicStarter Overlay
    baa
    Offline

    baa

    Регистрация:
    19 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Это понятно, как от этого избавится.
    В 7.7 это было сделано на порядок проще:
    Код:
    ТекстЗапроса = "
    |Контрагент     = Регистр.Партии.Поставщик;
    |ТекДокумент = Регистр.Партии.ТекущийДокумент;
    |Остаток     = Регистр.Партии.ОстатокТовара;
    |
    |Функция НачОст = НачОст(Остаток);
    |Функция Приход = Приход(Остаток);
    |Функция Расход = Расход(Остаток);
    |Функция КонОст = КонОст(Остаток);
    |
    |Группировка Контрагент;
    |Группировка ТекДокумент;
    
    При этом получали только оборот в разрезе текущего документа. Как в v8 сделать такое же?
  8. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А если убрать итог по регистратору?
  9. TopicStarter Overlay
    baa
    Offline

    baa

    Регистрация:
    19 дек 2007
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Дак в том-то и смысл чтобы его получить. Если убрать ИТОГИ по регистратору, то в отчете просто не будет документов движения и все. А весь смысл как раз в их получении
  10. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Посмотрел - читай еще раз пост 2 - формируется пустой регистратор, потому что движений по этим товарам не было.
  11. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Лишние строки из-за параметра виртуальной таблицы ДвиженияИГраницыПериода. Если поставить Движения, то их не должно быть.

Поделиться этой страницей