Имя: Пароль:
1C
1С v8
Группировка в запросе, как исправить
0 ghostrid3r
 
27.02.14
13:04
Подскажите плз, изначально отчет был предназначен для формирования помесячно и все прекрасно работало, а вот если построить его за N месяцев то начинаются бока, а точнее Исполнительный лист всегда последний, потому что стоит макусимум. Но если убрать групировку по Максимум(ИсполнительныйЛист), то получаются пустые поля СовокупныйДоход и Удержания, точнее оно разбивается на несколько строк. Какой выход придумать подскажите?

ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ВложенныйЗапрос.Период КАК Период,
    СУММА(ВложенныйЗапрос.Начисления) КАК СовокупныйДоход,
    СУММА(ВложенныйЗапрос.Удержания) КАК Удержания,
    СУММА(ЕСТЬNULL(ВложенныйЗапрос.СуммаАлиментов, 0)) КАК СуммаАлиментов,
    МАКСИМУМ(ВложенныйЗапрос.ИсполнительныйЛист.Размер) КАК Процент,
    МАКСИМУМ(ХозрасчетныйОбороты.Регистратор) КАК Регистратор,
    ВложенныйЗапрос.Сотрудник,
    МАКСИМУМ(ВложенныйЗапрос.ИсполнительныйЛист) КАК Исполнительный
ИЗ
    (ВЫБРАТЬ
        Начисления.ПериодРегистрации КАК Период,
        СУММА(Начисления.Результат) КАК Начисления,
        NULL КАК Удержания,
        Начисления.СуммаАлиментов КАК СуммаАлиментов,
        Начисления.ИсполнительныйЛист КАК ИсполнительныйЛист,
        Начисления.Сотрудник КАК Сотрудник
    ИЗ
        (ВЫБРАТЬ
            СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
            НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрации,
            СУММА(0) КАК СуммаАлиментов,
            NULL КАК ИсполнительныйЛист,
            ОсновныеНачисленияРаботниковОрганизаций.Сотрудник КАК Сотрудник
        ИЗ
            РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
        ГДЕ
            ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
            И ОсновныеНачисленияРаботниковОрганизаций.Результат <> 0
            И ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета В
                    (ВЫБРАТЬ
                        УдержанияОрганизацийБазовыеВидыРасчета.ВидРасчета
                    ИЗ
                        ПланВидовРасчета.УдержанияОрганизаций.БазовыеВидыРасчета КАК УдержанияОрганизацийБазовыеВидыРасчета
                    ГДЕ
                        УдержанияОрганизацийБазовыеВидыРасчета.Ссылка В (&Ссылка))
        
        СГРУППИРОВАТЬ ПО
            ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
            ОсновныеНачисленияРаботниковОрганизаций.Сотрудник
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            СУММА(0),
            НАЧАЛОПЕРИОДА(УдержанияРаботниковОрганизаций.ПериодРегистрации, МЕСЯЦ),
            СУММА(УдержанияРаботниковОрганизаций.Результат),
            УдержанияРаботниковОрганизаций.ДокументОснование,
            УдержанияРаботниковОрганизаций.Сотрудник
        ИЗ
            РегистрРасчета.УдержанияРаботниковОрганизаций КАК УдержанияРаботниковОрганизаций
        ГДЕ
            УдержанияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
            И УдержанияРаботниковОрганизаций.Результат <> 0
            И УдержанияРаботниковОрганизаций.ВидРасчета В(&Ссылка)
        
        СГРУППИРОВАТЬ ПО
            УдержанияРаботниковОрганизаций.ПериодРегистрации,
            УдержанияРаботниковОрганизаций.ДокументОснование,
            УдержанияРаботниковОрганизаций.Сотрудник) КАК Начисления
    
    СГРУППИРОВАТЬ ПО
        Начисления.ПериодРегистрации,
        Начисления.СуммаАлиментов,
        Начисления.ИсполнительныйЛист,
        Начисления.Сотрудник
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        Удержания.ПериодРегистрации,
        NULL,
        СУММА(Удержания.Результат),
        NULL,
        NULL,
        Удержания.Сотрудник
    ИЗ
        (ВЫБРАТЬ
            НАЧАЛОПЕРИОДА(ВзносыВФонды.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрации,
            СУММА(ВзносыВФонды.Результат) КАК Результат,
            ВзносыВФонды.Сотрудник КАК Сотрудник
        ИЗ
            РегистрРасчета.ВзносыВФонды КАК ВзносыВФонды
        ГДЕ
            ВзносыВФонды.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
            И ВзносыВФонды.Результат <> 0
            И НЕ ВзносыВФонды.Налог В ИЕРАРХИИ (&ГруппаНалоговФОТ)
        
        СГРУППИРОВАТЬ ПО
            НАЧАЛОПЕРИОДА(ВзносыВФонды.ПериодРегистрации, МЕСЯЦ),
            ВзносыВФонды.Сотрудник
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            НАЧАЛОПЕРИОДА(ВзаиморасчетыПоНДФЛОбороты.Период, МЕСЯЦ),
            СУММА(ВзаиморасчетыПоНДФЛОбороты.НалогОборот),
            ВзаиморасчетыПоНДФЛОбороты.Сотрудник
        ИЗ
            РегистрНакопления.НДФЛ.Обороты(&ДатаНач, &ДатаКон, Месяц, ) КАК ВзаиморасчетыПоНДФЛОбороты
        ГДЕ
            ВзаиморасчетыПоНДФЛОбороты.НалогОборот <> 0
        
        СГРУППИРОВАТЬ ПО
            НАЧАЛОПЕРИОДА(ВзаиморасчетыПоНДФЛОбороты.Период, МЕСЯЦ),
            ВзаиморасчетыПоНДФЛОбороты.Сотрудник) КАК Удержания
    
    СГРУППИРОВАТЬ ПО
        Удержания.ПериодРегистрации,
        Удержания.Сотрудник) КАК ВложенныйЗапрос
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач, &ДатаКонПлюс1, Регистратор, Счет = &Счет6853, , , КорСчет В ИЕРАРХИИ (&Счет311), ) КАК ХозрасчетныйОбороты
        ПО ВложенныйЗапрос.ИсполнительныйЛист = ХозрасчетныйОбороты.Субконто2
            И (ВложенныйЗапрос.Период = НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(ХозрасчетныйОбороты.Период, МЕСЯЦ, -1), МЕСЯЦ))

СГРУППИРОВАТЬ ПО
    ВложенныйЗапрос.Период,
    ВложенныйЗапрос.Сотрудник