Имя: Пароль:
1C
1С v8
Разные результаты СКД
0 Amfiaray
 
04.11.14
15:58
Добрый день, проблема вот в чем, есть отчет на СКД, при формировании с разной детализацией итоги в отчете меняются, может кто сталкивался с такой бедой?
1 Fragster
 
гуру
04.11.14
16:01
это не беда, это ты не думаешь о том, как СКД меняет запрос в зависимости от выбранных полей и наложенных отборов
2 Amfiaray
 
04.11.14
16:03
отборы и параметры не менялись, просто изменился 1 уровень детализации, если не сложно скажите где порыть чтобы отчет формировался так как надо?
3 shuhard
 
04.11.14
16:05
(2)[чтобы отчет формировался так как надо]
форум должен угадать запрос, схему, отборы ?
4 Amfiaray
 
04.11.14
16:08
Вот запрос
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    ВидыПотребления.ВидПотребленияГаза,
    ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) КАК МесячныйПлан,
    ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) КАК ПоступленияТекущие,
    ЕСТЬNULL(ОплатаДень.ПоступленияДень, 0) КАК ПоступленияДень,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) = 0
            ТОГДА 0
        ИНАЧЕ ВыставленныеСчета.МесячныйПлан / &КоличествоДней
    КОНЕЦ КАК ДневнойПлан,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) = 0
            ТОГДА 0
        ИНАЧЕ ВыставленныеСчета.МесячныйПлан / &КоличествоДней * &ТекущееКоличествоДней
    КОНЕЦ КАК ТекущийПлан,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ЛицевыеСчета.Ссылка
        ИНАЧЕ NULL
    КОНЕЦ КАК ЛицевойСчет,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ЛицевыеСчета.Владелец
        ИНАЧЕ NULL
    КОНЕЦ КАК Район,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ЛицевыеСчета.Родитель
        ИНАЧЕ NULL
    КОНЕЦ КАК МУчасток,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ЛицевыеСчета.Родитель.Родитель
        ИНАЧЕ NULL
    КОНЕЦ КАК Участок,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ЛицевыеСчета.ГРПШРП
        ИНАЧЕ NULL
    КОНЕЦ КАК ШРП,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ЛицевыеСчета.ГРПШРП.Родитель
        ИНАЧЕ NULL
    КОНЕЦ КАК ГРП,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ВЫБОР
                    КОГДА ЛицевыеСчета.Адрес.СекторПроживания = ЗНАЧЕНИЕ(Перечисление.СектораПроживания.Частный)
                        ТОГДА ЛицевыеСчета.Адрес.Ссылка
                    ИНАЧЕ ЛицевыеСчета.Адрес.Родитель
                КОНЕЦ
        ИНАЧЕ NULL
    КОНЕЦ КАК Дом,
    ВЫБОР
        КОГДА ЕСТЬNULL(ВыставленныеСчета.МесячныйПлан, 0) <> 0
                ИЛИ ЕСТЬNULL(ОплатаТекущая.ПоступленияТекущие, 0) <> 0
            ТОГДА ВЫБОР
                    КОГДА ЛицевыеСчета.Адрес.СекторПроживания = ЗНАЧЕНИЕ(Перечисление.СектораПроживания.Частный)
                        ТОГДА ЛицевыеСчета.Адрес.Родитель
                    ИНАЧЕ ЛицевыеСчета.Адрес.Родитель.Родитель
                КОНЕЦ
        ИНАЧЕ NULL
    КОНЕЦ КАК Улица
ИЗ
    Справочник.ЛицевыеСчета КАК ЛицевыеСчета
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            ИсторияПодключенияГазовогоОборудованияСрезПоследних.ЛицевойСчет КАК ЛицевойСчет,
            ИсторияПодключенияГазовогоОборудованияСрезПоследних.ВидПотребленияГаза КАК ВидПотребленияГаза
        ИЗ
            РегистрСведений.ИсторияПодключенияГазовогоОборудования.СрезПоследних(&ДатаСреза, ВидПотребленияГаза В (&ВидПотребленияГаза)) КАК ИсторияПодключенияГазовогоОборудованияСрезПоследних
        
        СГРУППИРОВАТЬ ПО
            ИсторияПодключенияГазовогоОборудованияСрезПоследних.ЛицевойСчет,
            ИсторияПодключенияГазовогоОборудованияСрезПоследних.ВидПотребленияГаза) КАК ВидыПотребления
        ПО ЛицевыеСчета.Ссылка = ВидыПотребления.ЛицевойСчет
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            ВзаиморасчетыСПотребителямиОстатки.ЛицевойСчет КАК ЛицевойСчет,
            ВЫБОР
                КОГДА ЕСТЬNULL(ВзаиморасчетыСПотребителямиОстатки.СуммаОстаток, 0) + ЕСТЬNULL(ВзаиморасчетыСПотребителямиОстатки.ПеняОстаток, 0) > 0
                    ТОГДА ЕСТЬNULL(ВзаиморасчетыСПотребителямиОстатки.СуммаОстаток, 0) + ЕСТЬNULL(ВзаиморасчетыСПотребителямиОстатки.ПеняОстаток, 0)
                ИНАЧЕ 0
            КОНЕЦ КАК МесячныйПлан
        ИЗ
            РегистрНакопления.ВзаиморасчетыСПотребителями.Остатки(&ДатаСреза, ) КАК ВзаиморасчетыСПотребителямиОстатки) КАК ВыставленныеСчета
        ПО ЛицевыеСчета.Ссылка = ВыставленныеСчета.ЛицевойСчет
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            ВзаиморасчетыСПотребителямиОбороты.ЛицевойСчет КАК ЛицевойСчет,
            ВЫБОР
                КОГДА ЕСТЬNULL(ВзаиморасчетыСПотребителямиОбороты.СуммаРасход, 0) > 0
                    ТОГДА ВзаиморасчетыСПотребителямиОбороты.СуммаРасход
                ИНАЧЕ 0
            КОНЕЦ КАК ПоступленияДень
        ИЗ
            РегистрНакопления.ВзаиморасчетыСПотребителями.Обороты(&НачалоТекущегоДня, &КонецТекущегоДня, , ) КАК ВзаиморасчетыСПотребителямиОбороты) КАК ОплатаДень
        ПО ЛицевыеСчета.Ссылка = ОплатаДень.ЛицевойСчет
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            ВзаиморасчетыСПотребителямиОбороты.ЛицевойСчет КАК ЛицевойСчет,
            ВЫБОР
                КОГДА ЕСТЬNULL(ВзаиморасчетыСПотребителямиОбороты.СуммаРасход, 0) > 0
                    ТОГДА ВзаиморасчетыСПотребителямиОбороты.СуммаРасход
                ИНАЧЕ 0
            КОНЕЦ КАК ПоступленияТекущие
        ИЗ
            РегистрНакопления.ВзаиморасчетыСПотребителями.Обороты(&НачалоМесяца, &КонецТекущегоДня, , ) КАК ВзаиморасчетыСПотребителямиОбороты) КАК ОплатаТекущая
        ПО ЛицевыеСчета.Ссылка = ОплатаТекущая.ЛицевойСчет
5 Defender aka LINN
 
04.11.14
16:10
(4) Как это развидеть обратно?
6 Amfiaray
 
04.11.14
16:10
отчет сам выложить не смогу, т.к. конфа полностью самописная )
7 Fragster
 
гуру
04.11.14
16:16
выкинуть (4) нафиг и заменить все на объединение, если уж так сильно нужно. Ну и понять, что к одному и тому же  регистру столько раз обращаться - не есть гуд.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.