Имя: Пароль:
1C
1С v8
Подскажите с запросом
0 shadow_sw
 
22.09.16
05:32
Доброго дня!
Имеем УТ 10.3 1с8.3.7.1845

Написал отчет на основе Универсального, запрос привожу ниже

ВЫБРАТЬ
    ВЫБОР
        КОГДА ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств ЕСТЬ NULL
            ТОГДА ПланируемыеПоступленияДенежныхСредствОбороты.ДокументПланирования.ФормаОплаты
        ИНАЧЕ ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств
    КОНЕЦ КАК ВидДенежныхСредств,
    ВЫБОР
        КОГДА ДвиженияДенежныхСредствОбороты.Контрагент.КаналСбыта ЕСТЬ NULL
            ТОГДА ПланируемыеПоступленияДенежныхСредствОбороты.Контрагент.КаналСбыта
        ИНАЧЕ ДвиженияДенежныхСредствОбороты.Контрагент.КаналСбыта
    КОНЕЦ КАК КаналСбыта,
    ВЫБОР
        КОГДА ДвиженияДенежныхСредствОбороты.Контрагент ЕСТЬ NULL
            ТОГДА ПланируемыеПоступленияДенежныхСредствОбороты.Контрагент
        ИНАЧЕ ДвиженияДенежныхСредствОбороты.Контрагент
    КОНЕЦ КАК Контрагент,
    ДвиженияДенежныхСредствОбороты.СуммаОборот КАК Факт,
    ВЫБОР
        КОГДА ПланируемыеПоступленияДенежныхСредствОбороты.ДокументПланирования.ФормаОплаты = ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств
            ТОГДА ПланируемыеПоступленияДенежныхСредствОбороты.СуммаОборот
        ИНАЧЕ 0
    КОНЕЦ КАК План,
    ПланируемыеПоступленияДенежныхСредствОбороты.Период,
    НАЧАЛОПЕРИОДА(ПланируемыеПоступленияДенежныхСредствОбороты.Период, ДЕНЬ) КАК ПериодДень,
    НАЧАЛОПЕРИОДА(ПланируемыеПоступленияДенежныхСредствОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    НАЧАЛОПЕРИОДА(ПланируемыеПоступленияДенежныхСредствОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
    НАЧАЛОПЕРИОДА(ПланируемыеПоступленияДенежныхСредствОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
    НАЧАЛОПЕРИОДА(ПланируемыеПоступленияДенежныхСредствОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    НАЧАЛОПЕРИОДА(ПланируемыеПоступленияДенежныхСредствОбороты.Период, ГОД) КАК ПериодГод,
    ПланируемыеПоступленияДенежныхСредствОбороты.Регистратор
{ВЫБРАТЬ
    КаналСбыта.*,
    Контрагент.*,
    Факт,
    План,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод,
    Регистратор.*,
    ВидДенежныхСредств.*}
ИЗ
    РегистрНакопления.ПланируемыеПоступленияДенежныхСредств.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ПланируемыеПоступленияДенежныхСредствОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДвиженияДенежныхСредств.Обороты(&ДатаНач, &ДатаКон, Регистратор, ) КАК ДвиженияДенежныхСредствОбороты
        ПО ПланируемыеПоступленияДенежныхСредствОбороты.Контрагент = ДвиженияДенежныхСредствОбороты.Контрагент
{ГДЕ
    ДвиженияДенежныхСредствОбороты.Контрагент.КаналСбыта.*,
    ДвиженияДенежныхСредствОбороты.Контрагент.*,
    (ВЫБОР
            КОГДА ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств ЕСТЬ NULL
                ТОГДА ПланируемыеПоступленияДенежныхСредствОбороты.ДокументПланирования.ФормаОплаты
            ИНАЧЕ ДвиженияДенежныхСредствОбороты.ВидДенежныхСредств
        КОНЕЦ).* КАК ВидДенежныхСредств}
ИТОГИ
    СУММА(Факт),
    СУММА(План)
ПО
    ОБЩИЕ
{ИТОГИ ПО
    КаналСбыта.*,
    Контрагент.*,
    Период,
    ПериодДень,
    ПериодНеделя,
    ПериодМесяц,
    ПериодКвартал,
    ПериодПолугодие,
    ПериодГод,
    Регистратор.*,
    ВидДенежныхСредств.*}


При формировании отчета, если было поступление денежных средств допустим 2> раз сумма плановая увеличивается пропорционально

http://prntscr.com/ckvd12

Опять же понятно, левое соединение..Подскажите как оптимизировать?

Заранее спасибо
1 shadow_sw
 
22.09.16
06:09
разобрался, период у второй таблицы необходимо убрать, всем спасибо :)
2 1dvd
 
22.09.16
06:09
Соединять ещё и по регистратору не пробовали?
2 + 2 = 3.9999999999999999999999999999999...