| 
    
        
     
     | 
    
  | 
Правильное построение запросов 1с? Задваивание в результате(( | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        exiter1    
     21.02.18 
            ✎
    22:47 
 | 
         
        Столкнулся с такой проблемой. Задваивается (затраивается) результат по регистру с площадями. Как правильно выстроить логику?
 
        |ВЫБРАТЬ | СписокЛС.ЛицевойСчет, | СписокЛС.Собственник, | СписокЛС.Помещение, | СписокЛС.Этаж, | СписокЛС.КоличествоКомнат, | СписокЛС.Здание, | СписокЛС.Здание.Многоквартирное КАК ПризнакМКД, | КВП_АдресаСрезПоследних.Город, | КВП_АдресаСрезПоследних.НаселенныйПункт, | КВП_АдресаСрезПоследних.Улица, | КВП_АдресаСрезПоследних.Дом, | КВП_АдресаСрезПоследних.Корпус, | ВЫБОР | КОГДА КВП_ПлощадьПомещенияСрезПоследних.ВидПлощади.Код = ""000000001"" | ТОГДА КВП_ПлощадьПомещенияСрезПоследних.Площадь | ИНАЧЕ 0 | КОНЕЦ КАК ОбщаяПлощадь, | ВЫБОР | КОГДА КВП_ПлощадьПомещенияСрезПоследних.ВидПлощади.Код = ""000000002"" | ТОГДА КВП_ПлощадьПомещенияСрезПоследних.Площадь | ИНАЧЕ 0 | КОНЕЦ КАК ЖилаяПлощадь, | ВЫБОР | КОГДА КВП_ПлощадьПомещенияСрезПоследних.ВидПлощади.Код = ""000000007"" | ТОГДА КВП_ПлощадьПомещенияСрезПоследних.Площадь | ИНАЧЕ 0 | КОНЕЦ КАК ПлощадьЗемельногоУчастка |ИЗ | СписокЛС КАК СписокЛС | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КВП_Адреса.СрезПоследних(&Дата, ) КАК КВП_АдресаСрезПоследних | ПО СписокЛС.Здание = КВП_АдресаСрезПоследних.Объект | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КВП_ПлощадьПомещения.СрезПоследних(&Дата, ) КАК КВП_ПлощадьПомещенияСрезПоследних | ПО СписокЛС.Помещение = КВП_ПлощадьПомещенияСрезПоследних.Объект";  | 
|||
| 
    1
    
        Cyberhawk    
     21.02.18 
            ✎
    22:49 
 | 
         
        СГРУППИРОВАТЬ ПО?     
         | 
|||
| 
    2
    
        exiter1    
     21.02.18 
            ✎
    22:57 
 | 
         
        Добавил группировку к запросу:
 
        |СГРУППИРОВАТЬ ПО | СписокЛС.ЛицевойСчет, | СписокЛС.Помещение, | СписокЛС.Собственник, | СписокЛС.Этаж, | СписокЛС.КоличествоКомнат, | СписокЛС.Здание, | СписокЛС.Здание.Многоквартирное, | КВП_АдресаСрезПоследних.Город, | КВП_АдресаСрезПоследних.НаселенныйПункт, | КВП_АдресаСрезПоследних.Улица, | КВП_АдресаСрезПоследних.Дом, | КВП_АдресаСрезПоследних.Корпус, | ВЫБОР | КОГДА КВП_ПлощадьПомещенияСрезПоследних.ВидПлощади.Код = ""000000001"" | ТОГДА КВП_ПлощадьПомещенияСрезПоследних.Площадь | ИНАЧЕ 0 | КОНЕЦ, | ВЫБОР | КОГДА КВП_ПлощадьПомещенияСрезПоследних.ВидПлощади.Код = ""000000002"" | ТОГДА КВП_ПлощадьПомещенияСрезПоследних.Площадь | ИНАЧЕ 0 | КОНЕЦ, | ВЫБОР | КОГДА КВП_ПлощадьПомещенияСрезПоследних.ВидПлощади.Код = ""000000007"" | ТОГДА КВП_ПлощадьПомещенияСрезПоследних.Площадь | ИНАЧЕ 0 | КОНЕЦ" Ничего не дало((  | 
|||
| 
    3
    
        youalex    
     21.02.18 
            ✎
    23:04 
 | 
         
        Запрос просто получает данные в том виде, который ты описал в тексте запроса. Те данные, которые у тебя есть в таблицах. 
 
        И да, в качестве наводки, может быть - СрезПоследних, в отличие от виртуальных РН - возвращает все возможные сочетания измерений. Вне зависимости от выбранных полей.  | 
|||
| 
    4
    
        exiter1    
     21.02.18 
            ✎
    23:20 
 | 
         
        (3) Вот по РегистрСведений.КВП_ПлощадьПомещения.СрезПоследних и идет дублирование . Тогда как правильно свернуть? Может убрать в условии "ИНАЧЕ 0"?     
         | 
|||
| 
    5
    
        youalex    
     21.02.18 
            ✎
    23:25 
 | 
         
        (4) я не знаю) Ну, вытащи его в поля, и сверни по нему. Но оно все равно задублится по нему, что логично. 
 
        Сделай отбор в параметрах вт по площади, тогда не задублится.  | 
|||
| 
    6
    
        youalex    
     21.02.18 
            ✎
    23:27 
 | 
         
        Зачем вы вообще площадь воткнули в измерения?     
         | 
|||
| 
    7
    
        exiter1    
     21.02.18 
            ✎
    23:28 
 | 
         
        (4) Т.е. обратиться к трем разным вт одного регистра РегистрСведений.КВП_ПлощадьПомещения с разным отбором по площадям?
 
        П.С.: Не я пихал. Это "крутая" конфа от ВДГБ)) Там все не как у всех))  | 
|||
| 
    8
    
        exiter1    
     21.02.18 
            ✎
    23:41 
 | 
         
        Сделал так:
 
        |ВЫБРАТЬ | СписокЛС.ЛицевойСчет, | СписокЛС.Собственник, | СписокЛС.Помещение, | СписокЛС.Этаж, |..., | ОбщПл.Площадь КАК ОбщаяПлощадь, | ЖилПл.Площадь КАК ЖилаяПлощадь, | ЗемУчПл.Площадь КАК ПлощадьЗемельногоУчастка |ИЗ | СписокЛС КАК СписокЛС | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КВП_Адреса.СрезПоследних(&Дата, ) КАК КВП_АдресаСрезПоследних | ПО СписокЛС.Здание = КВП_АдресаСрезПоследних.Объект | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КВП_ПлощадьПомещения.СрезПоследних(&Дата, ВидПлощади.Код = ""000000001"") КАК ОбщПл | ПО СписокЛС.Помещение = ОбщПл.Объект | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КВП_ПлощадьПомещения.СрезПоследних(&Дата, ВидПлощади.Код = ""000000002"") КАК ЖилПл | ПО СписокЛС.Помещение = ЖилПл.Объект | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КВП_ПлощадьПомещения.СрезПоследних(&Дата, ВидПлощади.Код = ""000000007"") КАК ЗемУчПл | ПО СписокЛС.Помещение = ЗемУчПл.Объект" Все работает. Но есть более элегантное решение?  | 
|||
| 
    9
    
        chelentano    
     22.02.18 
            ✎
    06:49 
 | 
         
        (8) Более элегантного нет. Но я бы сначала сформировал временную таблицу по РС КВП_ПлощадьПомещения сразу для трёх видов площадей, а потом уже с ней бы соединял     
         | 
|||
| 
    10
    
        Малыш Джон    
     22.02.18 
            ✎
    07:48 
 | 
         
        (8) Сделай предварительную выборку из срез и добавь поле в неё поле
 
        ВЫБОР КОГДА ВидПлощади.Код = ""000000001" ТОГДА ОбщПл.Объект  | 
|||
| 
    11
    
        Малыш Джон    
     22.02.18 
            ✎
    07:49 
 | 
         
        КОГДА ВидПлощади.Код = ""000000002" ТОГДА ЖилПл.Объект
 
        и т.д. а потом по этому полю соединяй  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |