Имя: Пароль:
1C
 
остатки по периодам
0 vasyaodinesnek
 
06.06.15
13:33
добрый день.
есть отчет, в который мне нужно было добавить ряд показателей. Часть из них - это остатки по счетам бух. учета(ДебиторскаяЗадолженность, АвансыПокупателей, ЗадолженностьИмпорт, СредстваНаСчетах)

Запрос выглядит вот так:

ВЫБРАТЬ РАЗРЕШЕННЫЕ
ДанныеСценариев.НомерСценария
{ВЫБРАТЬ
ДанныеСценариев.НомерСценария,

НачалоПериода(ДанныеСценариев.Период, День) КАК ПериодДень,
НачалоПериода(ДанныеСценариев.Период, Неделя) КАК ПериодНеделя,
НачалоПериода(ДанныеСценариев.Период, Месяц) КАК ПериодМесяц,
НачалоПериода(ДанныеСценариев.Период, Квартал) КАК ПериодКвартал,
НачалоПериода(ДанныеСценариев.Период, Год) КАК ПериодГод,
ДанныеСценариев.Период КАК Период},
Выручка_0 КАК Выручка_0,
Себестоимость_0 КАК Себестоимость_0,
ВаловаяПрибыль_0 КАК ВаловаяПрибыль_0,
(Выручка_0 - Себестоимость_0)/ВЫБОР КОГДА Выручка_0 = 0 ТОГДА 1 ИНАЧЕ Выручка_0 КОНЕЦ КАК ВаловаяРентабельность_0,
ДебиторскаяЗадолженность_0 КАК ДебиторскаяЗадолженность_0,
АвансыПокупателей_0 КАК АвансыПокупателей_0,
ЗадолженностьИмпорт_0 КАК ЗадолженностьИмпорт_0,
СредстваНаСчетах_0 КАК СредстваНаСчетах_0
ИЗ
(
ВЫБРАТЬ
        &ПараметрНомерСценария_0 КАК НомерСценария,
        &ПараметрВидДанных_0 КАК ВидДанных,
        &ПустойСценарий КАК Сценарий,
        Период КАК Период,
    СУММА(Выручка) КАК Выручка_0,
    СУММА(Себестоимость) КАК Себестоимость_0,
    СУММА(ВаловаяПрибыль) КАК ВаловаяПрибыль_0,
    СУММА(ВаловаяРентабельность) КАК ВаловаяРентабельность_0,
    СУММА(ДебиторскаяЗадолженность) КАК ДебиторскаяЗадолженность_0,
    СУММА(АвансыПокупателей) КАК АвансыПокупателей_0,
    СУММА(ЗадолженностьИмпорт) КАК ЗадолженностьИмпорт_0,
    СУММА(СредстваНаСчетах) КАК СредстваНаСчетах_0
    ИЗ
        (ВЫБРАТЬ
            ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.Период, ГОД, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД),&НачТекГод, ГОД)) КАК Период,
            СУММА(ВложенныйЗапрос.Выручка) КАК Выручка,
            СУММА(ВложенныйЗапрос.Себестоимость) КАК Себестоимость,
            СУММА(ВложенныйЗапрос.Выручка) - СУММА(ВложенныйЗапрос.Себестоимость) КАК ВаловаяПрибыль,
            (СУММА(ВложенныйЗапрос.Выручка) - СУММА(ВложенныйЗапрос.Себестоимость))/ВЫБОР КОГДА СУММА(ВложенныйЗапрос.Выручка) = 0 ТОГДА 1 ИНАЧЕ СУММА(ВложенныйЗапрос.Выручка) КОНЕЦ КАК ВаловаяРентабельность,
            СУММА(ВложенныйЗапрос.ДебиторскаяЗадолженность) КАК ДебиторскаяЗадолженность,
            СУММА(ВложенныйЗапрос.АвансыПокупателей) КАК АвансыПокупателей,
            СУММА(ВложенныйЗапрос.ЗадолженностьИмпорт) КАК ЗадолженностьИмпорт,
            СУММА(ВложенныйЗапрос.СредстваНаСчетах) КАК СредстваНаСчетах
        ИЗ
            (ВЫБРАТЬ
                ХозрасчетныйОбороты.Период КАК Период,
                ХозрасчетныйОбороты.СуммаОборотКт КАК Выручка,
                0 КАК Себестоимость,
                0 КАК ВаловаяПрибыль,
                0 КАК ДебиторскаяЗадолженность,
                0 КАК АвансыПокупателей,
                0 КАК ЗадолженностьИмпорт,
                0 КАК СредстваНаСчетах
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач_0, &ДатаКон_0, День, Счет В ИЕРАРХИИ (&Счет90011), , , , ) КАК ХозрасчетныйОбороты
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
                ХозрасчетныйОбороты.Период,
                0,
                ХозрасчетныйОбороты.СуммаОборотДт,
                0,
                0,
                0,
                0,
                0
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач_0, &ДатаКон_0, День, Счет В ИЕРАРХИИ (&Счет90021), , , , ) КАК ХозрасчетныйОбороты
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
                ХозрасчетныйОбороты.Период,
                0,
                0,
                ХозрасчетныйОбороты.СуммаОборотКт - ХозрасчетныйОбороты.СуммаОборотДт,
                0,
                0,
                0,
                0
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатаНач_0, &ДатаКон_0, День, Счет В (&СчетаВаловая), , , , ) КАК ХозрасчетныйОбороты
            
            ОБЪЕДИНИТЬ ВСЕ
        
            ВЫБРАТЬ
                ХозрасчетныйОстаткиИОбороты.Период,
                0,
                0,
                0,
                ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт,
                0,
                0,
                0
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач_0, &ДатаКон_0, День, , Счет = &Счет6201, , Организация = &ПИ) КАК ХозрасчетныйОстаткиИОбороты
            
            ОБЪЕДИНИТЬ ВСЕ
        
            ВЫБРАТЬ
                ХозрасчетныйОстаткиИОбороты.Период,
                0,
                0,
                0,
                0,
                ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт,
                0,
                0
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач_0, &ДатаКон_0, День, , Счет = &Счет6202, , Организация = &ПИ) КАК ХозрасчетныйОстаткиИОбороты
            
            ОБЪЕДИНИТЬ ВСЕ
        
            ВЫБРАТЬ
                ХозрасчетныйОстаткиИОбороты.Период,
                0,
                0,
                0,
                0,
                0,
                ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт,
                0
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач_0, &ДатаКон_0, День, , Счет = &Счет6021, , Организация = &ПИ) КАК ХозрасчетныйОстаткиИОбороты
            
            ОБЪЕДИНИТЬ ВСЕ
        
            ВЫБРАТЬ
                ХозрасчетныйОстаткиИОбороты.Период,
                0,
                0,
                0,
                0,
                0,
                0,
                ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач_0, &ДатаКон_0, День, , Счет = &Счет51, , Организация = &ПИ) КАК ХозрасчетныйОстаткиИОбороты) КАК ВложенныйЗапрос
        СГРУППИРОВАТЬ ПО
            ДОБАВИТЬКДАТЕ(ВложенныйЗапрос.Период, ГОД, РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД),&НачТекГод, ГОД))) КАК Факт_0
    СГРУППИРОВАТЬ ПО Период) КАК ДанныеСценариев
УПОРЯДОЧИТЬ ПО ДанныеСценариев.НомерСценария
{УПОРЯДОЧИТЬ ПО ДанныеСценариев.НомерСценария,

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

НачалоПериода(ДанныеСценариев.Период, День) КАК ПериодДень,
НачалоПериода(ДанныеСценариев.Период, Неделя) КАК ПериодНеделя,
НачалоПериода(ДанныеСценариев.Период, Месяц) КАК ПериодМесяц,
НачалоПериода(ДанныеСценариев.Период, Квартал) КАК ПериодКвартал,
НачалоПериода(ДанныеСценариев.Период, Год) КАК ПериодГод,
ДанныеСценариев.Период КАК Период}

Если при выводе выбирать группировку по дням - все прекрасно, со всеми остальными по этим полям происходит просто суммирование, а нужны остатки на конец периода. Как их получить?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.