Имя: Пароль:
1C
 
Подскажите по запросу
0 falselight
 
20.03.18
16:57
Есть запрос по ценам номенклатуры и свободному количеству на складе.
Конфигурация Комплексная автоматизация.
Почему он выбирает много строк одной и той же номенклатуры?
Это демо база. Вижу что у неё у каждой разные цены.
Правильно ли построен сам запрос?

ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка Товар,
    ЦеныНоменклатурыСрезПоследних.Номенклатура.Наименование,
    ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Упаковка КАК Упаковка,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Вес, 0) КАК УпаковкаВес,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Числитель, 0) КАК Вес1Шт,
    ЦеныНоменклатурыСрезПоследних.Номенклатура.ДлинаЗнаменатель КАК ВесПогонногоМетра,
    ЦеныНоменклатурыСрезПоследних.Номенклатура.ДлинаЧислитель КАК Длина,
    ЕСТЬNULL(ТоварыНаСкладахОстатки.ВНаличииОстаток, 0) КАК ВНаличииОстаток
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ) КАК ЦеныНоменклатурыСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
        ПО ЦеныНоменклатурыСрезПоследних.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
1 rphosts
 
20.03.18
16:58
потому-что свернуть нужно как минимум по складам, возможно там ещё и характеристики есть...
2 falselight
 
20.03.18
17:03
(1) Понятно спасибо за замечание, учту!
Это группировка будет по складам и характеристикам????
Как правильно сворачивать если не нужно ничего суммировать????
Сижу на демо базе, мало уверенности в её данных.
3 tesseract
 
20.03.18
23:58
(2) В демо базе все данные нормализованы. Там как раз все хорошо.

У тебя и зачем-то левая таблица с не той стороны. Сначала надо остатки выбрать - а потом уже срез последних цен, да и срез остатков у тебя на последнюю дату, а на дату среза.  


Эти строчки называют обычно "у меня тут слишком много оперативки свободной":

ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Вес, 0) КАК УпаковкаВес,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Упаковка.Числитель, 0) КАК Вес1Шт,