Имя: Пароль:
1C
1С v8
Как сделать отбор в СКД по не по конечному результату ресурсов?
0 Elf56
 
24.06.14
10:44
Всем доброго времени суток.

Имеется 1с 8.3 УТ 11 есть вот такой запрос

ВЫБРАТЬ
    ЗаказКлиентаТовары.Ссылка.Партнер,
    ЗаказКлиентаТовары.Ссылка КАК Ссылка,
    ЗаказКлиентаТовары.Номенклатура,
    ЗаказКлиентаТовары.осиРМ,
    СУММА(ЗаказКлиентаТовары.СуммаСНДС) КАК СуммаСНДС,
    СУММА(ЗаказКлиентаТовары.СуммаРучнойСкидки) КАК СуммаРучнойСкидки,
    СУММА(ЗаказКлиентаТовары.СуммаАвтоматическойСкидки) КАК СуммаАвтоматическойСкидки,
    ЗаказКлиентаТовары.ПроцентАвтоматическойСкидки,
    ЗаказКлиентаТовары.ПроцентРучнойСкидки,
    ЗаказКлиентаТовары.Ссылка.СуммаДокумента КАК СкидкаДокумента,
    ВЫБОР
        КОГДА ЗаказКлиентаТовары.СуммаРучнойСкидки <> 0
            ТОГДА СУММА(ЗаказКлиентаТовары.СуммаРучнойСкидки)
        ИНАЧЕ СУММА(ЗаказКлиентаТовары.СуммаРучнойСкидки)
    КОНЕЦ КАК СуммаСкидки
ПОМЕСТИТЬ Товары
ИЗ
    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
ГДЕ
    ЗаказКлиентаТовары.Ссылка.Проведен

СГРУППИРОВАТЬ ПО
    ЗаказКлиентаТовары.Ссылка,
    ЗаказКлиентаТовары.Номенклатура,
    ЗаказКлиентаТовары.осиРМ,
    ЗаказКлиентаТовары.Ссылка.Партнер,
    ЗаказКлиентаТовары.ПроцентАвтоматическойСкидки,
    ЗаказКлиентаТовары.ПроцентРучнойСкидки,
    ЗаказКлиентаТовары.Ссылка.СуммаДокумента,
    ЗаказКлиентаТовары.СуммаРучнойСкидки
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    осиОплатаВыручкаОбороты.Партнер КАК Партнер,
    осиОплатаВыручкаОбороты.Заказ КАК Заказ,
    ВЫБОР
        КОГДА Товары.СуммаСНДС <> 0
            ТОГДА (Товары.СуммаСНДС + Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) * осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС
        ИНАЧЕ 0
    КОНЕЦ КАК ПрайсЦена,
    ВЫБОР
        КОГДА Товары.СуммаСНДС <> 0
            ТОГДА осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки)
        ИНАЧЕ 0
    КОНЕЦ КАК Скидка,
    осиОплатаВыручкаОбороты.СуммаОплатыОборот КАК СуммаСоСкидкой,
    осиОплатаВыручкаОбороты.Номенклатура,
    осиОплатаВыручкаОбороты.Заказ.осиНаправлениеДеятельности,
    осиОплатаВыручкаОбороты.РекламноеМесто,
    ВЫБОР
        КОГДА Товары.ПроцентРучнойСкидки <> 0
            ТОГДА Товары.ПроцентРучнойСкидки
    КОНЕЦ КАК ПроцентРучнойСкидки,
    Товары.ПроцентАвтоматическойСкидки,
    НАЧАЛОПЕРИОДА(осиОплатаВыручкаОбороты.ПериодМесяц, МЕСЯЦ) КАК ПериодМесяц,
    ВЫБОР
        КОГДА Товары.Ссылка.СуммаДокумента > 0
                И Товары.СуммаСНДС <> 0
            ТОГДА осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) * 100 / (Товары.Ссылка.СуммаДокумента + осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки))
        ИНАЧЕ 0
    КОНЕЦ КАК СуммаСкидкиДокумента,
    Товары.СуммаРучнойСкидки,
    Товары.Ссылка.СуммаДокумента КАК СкидкаДокумента,
    ВЫБОР
        КОГДА Товары.Ссылка.СуммаДокумента > 0
            ТОГДА СУММА(Товары.СуммаСкидки) * 100 / (Товары.Ссылка.СуммаДокумента + СУММА(Товары.СуммаСкидки))
        ИНАЧЕ 0
    КОНЕЦ КАК СкидкаДок,
    Товары.СуммаСкидки
ИЗ
    РегистрНакопления.осиОплатаВыручка.Обороты(, , Авто, Заказ.осиВидСчета <> ЗНАЧЕНИЕ(Перечисление.осиВидыСчетов.ДокументальныйСчет) {(Партнер = &Партнер), (Заказ.осиНаправлениеДеятельности = &НаправлениеДеятельности)}) КАК осиОплатаВыручкаОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ Товары КАК Товары
        ПО осиОплатаВыручкаОбороты.Заказ = Товары.Ссылка
            И осиОплатаВыручкаОбороты.Номенклатура = Товары.Номенклатура
            И осиОплатаВыручкаОбороты.РекламноеМесто = Товары.осиРМ
ГДЕ
    ВЫБОР
            КОГДА &ВключатьРК
                ТОГДА &ВключатьРК
            ИНАЧЕ осиОплатаВыручкаОбороты.Заказ.Партнер = &РКЛГ
                        И осиОплатаВыручкаОбороты.Заказ.Организация <> &ЛГОфис
                    ИЛИ осиОплатаВыручкаОбороты.Заказ.Партнер <> &РКЛГ
        КОНЕЦ

СГРУППИРОВАТЬ ПО
    осиОплатаВыручкаОбороты.Партнер,
    осиОплатаВыручкаОбороты.Заказ,
    осиОплатаВыручкаОбороты.СуммаОплатыОборот,
    осиОплатаВыручкаОбороты.Номенклатура,
    осиОплатаВыручкаОбороты.Заказ.осиНаправлениеДеятельности,
    осиОплатаВыручкаОбороты.РекламноеМесто,
    Товары.ПроцентАвтоматическойСкидки,
    НАЧАЛОПЕРИОДА(осиОплатаВыручкаОбороты.ПериодМесяц, МЕСЯЦ),
    Товары.СуммаРучнойСкидки,
    Товары.Ссылка.СуммаДокумента,
    Товары.СуммаСкидки,
    ВЫБОР
        КОГДА Товары.СуммаСНДС <> 0
            ТОГДА (Товары.СуммаСНДС + Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) * осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА Товары.СуммаСНДС <> 0
            ТОГДА осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки)
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА Товары.ПроцентРучнойСкидки <> 0
            ТОГДА Товары.ПроцентРучнойСкидки
    КОНЕЦ,
    ВЫБОР
        КОГДА Товары.Ссылка.СуммаДокумента > 0
                И Товары.СуммаСНДС <> 0
            ТОГДА осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки) * 100 / (Товары.Ссылка.СуммаДокумента + осиОплатаВыручкаОбороты.СуммаОплатыОборот / Товары.СуммаСНДС * (Товары.СуммаРучнойСкидки + Товары.СуммаАвтоматическойСкидки))
        ИНАЧЕ 0
    КОНЕЦ


Поле "Скидка документа"

В конструкторе запроса определяется как поле "Товары.Ссылка.СуммаДокумента" в самой СКД в ресурсах вычисляется вот такое вырожение

ОКР(Сумма(СуммаРучнойСкидки) * 100 / (СкидкаДокумента + Сумма(СуммаРучнойСкидки)))

т.е. уже на выходе в отчет по первой группировке которым является сам документ выходит результат вычисления, но в строках документа в отчете выводится как "Товары.Ссылка.СуммаДокумента" т.е. другой результат. В ресурсах расчитывается все правильно, но вот в чем проблема мне нужно сделать отбор именно по результату вычисления ресурса который в первой  группировке, а у меня отбор осуществляется по строке документа т.е. по полю "Товары.Ссылка.СуммаДокумента" там совершенно другое значение. Так как мне сделать отбор по ресурсам СКД?
Если вычислять это выражение в запросе то оно не правильное получается нужно именно в ресурсах.

Всем заранее спасибо за ответ.
1 Elf56
 
24.06.14
10:56
Не у что не кто не знает как этот отбор сделать?
2 Elf56
 
24.06.14
12:02
поднял
3 Elf56
 
24.06.14
12:17
Вот я туплю всего то надо было по той групперовки сделать отбор по какой надо тема закрыта )
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший