Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 13:22

Не работает отбор по номенклатуре в СКД

Автор vinceras, 11 фев 2011, 16:01

0 Пользователей и 1 гость просматривают эту тему.

vinceras

День добрый всем. Имеется отчет в скд с набором данных - запрос:


ВЫБРАТЬ
    Остатки.Номенклатура КАК Номенклатура,
    ЕСТЬNULL(Остатки.КоличествоОстатокНаСкладах, 0) + ЕСТЬNULL(Остатки.КоличествоОстатокВПроизводстве, 0) КАК Остатки,
    ЕСТЬNULL(ПотребностиВНоменклатуре.КоличествоПотребность, 0) КАК КоличествоПотребность,
    ЕСТЬNULL(НедопроизведённаяПродукция.Количество, 0) КАК КоличествоНедопроизведено,
    ЕСТЬNULL(ПотребностиВНоменклатуре.КоличествоПотребность, 0) * ЕСТЬNULL(с_НормативныеЗапасыСрезПоследних.НормаЗапаса, 0) / 100 КАК КоличествоНормаЗапаса,
    ЕСТЬNULL(Остатки.КоличествоОстатокНаСкладах, 0) КАК КоличествоОстатокНаСкладах,
    ЕСТЬNULL(Остатки.КоличествоОстатокВПроизводстве, 0) КАК КоличествоОстатокВПроизводстве
ИЗ
    (ВЫБРАТЬ
        ВложенныйЗапросОстатки.Номенклатура КАК Номенклатура,
        СУММА(ВложенныйЗапросОстатки.КоличествоОстатокНаСкладах) КАК КоличествоОстатокНаСкладах,
        СУММА(ВложенныйЗапросОстатки.КоличествоОстатокВПроизводстве) КАК КоличествоОстатокВПроизводстве
    ИЗ
        (ВЫБРАТЬ
            ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
            ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК КоличествоОстатокНаСкладах,
            NULL КАК КоличествоОстатокВПроизводстве
        ИЗ
            РегистрНакопления.ТоварыНаСкладах.Остатки({(&НачПериода)}, Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ТоварыНаСкладахОстатки
       
        ОБЪЕДИНИТЬ ВСЕ
       
        ВЫБРАТЬ
            МатериалыВПроизводствеОстатки.Затрата,
            NULL,
            ЕСТЬNULL(МатериалыВПроизводствеОстатки.КоличествоОстаток, 0)
        ИЗ
            РегистрНакопления.МатериалыВПроизводстве.Остатки({(&НачПериода)}, Затрата В ИЕРАРХИИ (&СписокНоменклатуры)) КАК МатериалыВПроизводствеОстатки) КАК ВложенныйЗапросОстатки
   
    СГРУППИРОВАТЬ ПО
        ВложенныйЗапросОстатки.Номенклатура) КАК Остатки
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЕСТЬNULL(ПланыПроизводстваОбороты.КоличествоОборот, 0) - ЕСТЬNULL(ВыпускПродукцииОбороты.КоличествоОборот, 0) КАК Количество,
            ПланыПроизводстваОбороты.Номенклатура КАК Номенклатура
        ИЗ
            РегистрНакопления.ПланыПроизводства.Обороты({(&НачПредПериода)}, {(&КонПредПериода)}, , Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ПланыПроизводстваОбороты
                ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ВыпускПродукции.Обороты({(&НачПредПериода)}, {(&КонПредПериода)}, , Продукция В ИЕРАРХИИ (&СписокНоменклатуры)) КАК ВыпускПродукцииОбороты
                ПО ПланыПроизводстваОбороты.Номенклатура = ВыпускПродукцииОбороты.Продукция) КАК НедопроизведённаяПродукция
        ПО Остатки.Номенклатура = НедопроизведённаяПродукция.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.с_НормативныеЗапасы.СрезПоследних({(&КонПериода)}, Номенклатура В ИЕРАРХИИ (&СписокНоменклатуры)) КАК с_НормативныеЗапасыСрезПоследних
        ПО Остатки.Номенклатура = с_НормативныеЗапасыСрезПоследних.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КалендарныеПотребностиВНоменклатуре.Номенклатура КАК Номенклатура,
            СУММА(КалендарныеПотребностиВНоменклатуре.Количество) КАК КоличествоПотребность
        ИЗ
            РегистрСведений.КалендарныеПотребностиВНоменклатуре КАК КалендарныеПотребностиВНоменклатуре
        ГДЕ
            КалендарныеПотребностиВНоменклатуре.ДатаПотребности МЕЖДУ &НачПериода И &КонПериода
            И КалендарныеПотребностиВНоменклатуре.Проект = ЗНАЧЕНИЕ(Справочник.Проекты.ПустаяСсылка)
       
        СГРУППИРОВАТЬ ПО
            КалендарныеПотребностиВНоменклатуре.Номенклатура) КАК ПотребностиВНоменклатуре
        ПО Остатки.Номенклатура = ПотребностиВНоменклатуре.Номенклатура
ГДЕ
    Остатки.Номенклатура.ПометкаУдаления = ЛОЖЬ

УПОРЯДОЧИТЬ ПО
    Номенклатура


Делаю отбор по подразделению и складам и отбор работает нормально, а по номенклатуре и её реквезитам не работает. Валит всю указанную в параметре номенклатуру, а мне нужен отбор по номенклатура.ВидВоспроизводства

progmikon

А что значит валит всю указанную номенклатуру?

vinceras

Цитата: progmikon от 11 фев 2011, 20:37
А что значит валит всю указанную номенклатуру?

Я в параметр СписокНоменклатуры передаю либо определёную группу из справочника номенклатура, либо список нужной номенклатуры ч\з элемент формы. Также на форме располагается табличное поле с типом КомпоновщикНастроек.Настройки.Отбор. Например передаю я в СписокНоменклатуры папку Материалы, а в отборе ставлю папку Болты (подпапка материалов), результат СКД выгружаю в таблизу значений, а в неё выгружается вся папка материалы, и не фильтруется по полю номенклатура. В конечном счете, мне нужно фильтровать таблицу по Номенклатура.ВидВоспроизводства, но результат СКД вообще не фильтруется. Нашёл в чем причина, но не знаю как исправить. По умолчанию у меня стоит галка "Автозаполнение" в наборе данных Запрос. СКД сканирует запрос и вытаскивает кучу полей, среди них номенклатура, затрата, продукция. Не могу понять как объяснить СКД, что затрата, продукция и номенклатура - это одно и тоже поле номенклатура.

vinceras

Разобрался сам. Решение ч\з вкладку компановка данных в конструкторе запроса

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск