Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Что не так в запросе?

Что не так в запросе?
Я
   vladimirpetrov11
 
28.12.12 - 10:47
Здравствуйте, помогите пожалуйста с запросом. Мне нужно выбрать сумму площадей (Значение) из регистра по дому. Хотелось бы без перебора выбранных записей сразу вытащить нужную сумму...        

"ВЫБРАТЬ
       |    Сумма(ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение) как Значен
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом
        |ИЗ
        |    РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних КАК ркЗначенияПериодическихСвойствОбъектовСрезПоследних
        |ГДЕ
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом = &Дом
        |    И ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение <> 0
        |
        |СГРУППИРОВАТЬ ПО
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом
        | ИМЕЮЩИЕ
        | Количество(Значен)>0"
        ;
 
 
   vladimirpetrov11
 
1 - 28.12.12 - 10:48
Видимо по дому группировкой не получится в данном случае?
   salvator
 
2 - 28.12.12 - 10:49
А зачем секция ИМЕЮЩИЕ?
   vladimirpetrov11
 
3 - 28.12.12 - 10:49
Так сумму по другому вроде как нельзя вытащить
   vladimirpetrov11
 
4 - 28.12.12 - 10:50
я без ИМЕЮЩИЕ пробовал, ошибка
   vladimirpetrov11
 
5 - 28.12.12 - 10:50
Количество вытащит, а вот сумму нет(
   salvator
 
6 - 28.12.12 - 10:51
(4) Какая ошибка?
   Maxus43
 
7 - 28.12.12 - 10:52
Количество(Сумма(ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение))>0 ?
   tdm
 
8 - 28.12.12 - 10:52
(5) у вас сумма по каждому "Дом" просто, вам вообще общий итог нужен ?
   vladimirpetrov11
 
9 - 28.12.12 - 10:52
(6) Поле "Значен" не найдено
   vladimirpetrov11
 
10 - 28.12.12 - 10:53
(8) По конкретному дому нужно сложить площадь квартир.
 
 Рекламное место пустует
   salvator
 
11 - 28.12.12 - 10:54
(10) Секцию "ИМЕЮЩИЕ" убери, все остальное вроде бы правильно.
   Maxus43
 
12 - 28.12.12 - 10:54
(10) нафига тогда СрезПоследних и т.д.? площать менялась чтоли?
   vladimirpetrov11
 
13 - 28.12.12 - 10:54
(9) Количество(<<?>>Значен)>0
   vladimirpetrov11
 
14 - 28.12.12 - 10:55
(12) Площадь меняется
   vladimirpetrov11
 
15 - 28.12.12 - 10:56
(11) Сейчас покажу какую ошибку выдаст без секции ИМЕЮЩИЕ...
   salvator
 
16 - 28.12.12 - 10:56
Мда, вот так решишь купить квартиру, приедешь с мебелью, а диван не влезает.
   Maxus43
 
17 - 28.12.12 - 10:56
(15) РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних (&дата, Дом = &Дом)

Имеющие убрать
   vladimirpetrov11
 
18 - 28.12.12 - 10:58
(11), (17) Без ИМЕЮЩИЕ ошибка: "Неверные параметры сумма  Сумма(<<?>>ркЗначения.....)"
   vladimirpetrov11
 
19 - 28.12.12 - 10:59
Вот тут объясняли по поводу секции ИМЕЮЩИЕ: v8: ИМЕЮЩИЕ (having) в запросе 1с
   vladimirpetrov11
 
20 - 28.12.12 - 11:00
Вот так все пашет:
"ВЫБРАТЬ
        |    Количество(ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение) как Значен,
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом
        |ИЗ
        |    РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних КАК ркЗначенияПериодическихСвойствОбъектовСрезПоследних
        |ГДЕ
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом = &Дом
        |    И ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение <> 0
        |
        |СГРУППИРОВАТЬ ПО
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом"
        ;


А если заменить просто Количество на СУММА-пипец
   hhhh
 
21 - 28.12.12 - 11:00
ВЫБРАТЬ
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение как Значен,
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом КАК Дом
        |ИЗ
        |    РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних(, Объект.Дом = &Дом) КАК ркЗначенияПериодическихСвойствОбъектовСрезПоследних
        
ИТОГИ 
    СУММА(Значен)
ПО
 
   Дом
   cw014
 
22 - 28.12.12 - 11:02
ВЫБРАТЬ
    Сумма(ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение) как Значен
    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом КАК Дом
ИЗ
    РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних(, Объект.Дом = &Дом) КАК ркЗначенияПериодическихСвойствОбъектовСрезПоследних
ГДЕ
    И ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение <> 0
СГРУППИРОВАТЬ ПО
    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом
   salvator
 
23 - 28.12.12 - 11:03
(20) У тебя поле "Значение" типа не "Число"?
   cw014
 
24 - 28.12.12 - 11:03
И вообпсче, строй запросы через конструктор - много нового узнаешь
   hhhh
 
25 - 28.12.12 - 11:03
(20) так дом у вас один всегда, зачем его выводить

ВЫБРАТЬ
        |    Сумма(ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение) как Значен
        |ИЗ
        |    РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних КАК ркЗначенияПериодическихСвойствОбъектовСрезПоследних
        |ГДЕ
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом = &Дом
        |  
 
       ;
   cw014
 
26 - 28.12.12 - 11:03
+(22) Запятую в конце второй строки поставь
   vladimirpetrov11
 
27 - 28.12.12 - 11:06
(25), (26) Точно такая же ошибка: Сумма(<<?>>Значен)"
   НЕА123
 
28 - 28.12.12 - 11:07
(27)
на (23) ответь.
   cw014
 
29 - 28.12.12 - 11:07
(27) тебе в (22),(26)
   vladimirpetrov11
 
30 - 28.12.12 - 11:12
(28) Тип: Характеристика.ркДополнительныеРеквизитыИСведения ))
   vladimirpetrov11
 
31 - 28.12.12 - 11:13
(29) Опять же проверил: с количеством работает((
   vladimirpetrov11
 
32 - 28.12.12 - 11:14
С этим типом данных работать не будет получается??
   salvator
 
33 - 28.12.12 - 11:18
(32) Как видишь.
 
 
   PiterPrg
 
34 - 28.12.12 - 11:18
Если с количеством работает, то попробуй

ВЫРАЗИТЬ(ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение КАК ЧИСЛО(12, 2))как Значен
   НЕА123
 
35 - 28.12.12 - 11:18
ВЫБРАТЬ
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение как Значен
        |ИЗ
        |    РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних КАК ркЗначенияПериодическихСвойствОбъектовСрезПоследних
        |ГДЕ
        |    ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом = &Дом
        |  
        ;
 

без сумма и количество. посмотри, что же такое значение.
   vladimirpetrov11
 
36 - 28.12.12 - 11:37
(34) Сейчас попробую, на обеде был...
   vladimirpetrov11
 
37 - 28.12.12 - 11:38
(35) Вот так делал: Все суммируется без проблем. Вроде как число...


    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    ОбщаяПлощадь=0;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        ОбщаяПлощадь=ОбщаяПлощадь+ВыборкаДетальныеЗаписи.Значение;
        Сообщить(ВыборкаДетальныеЗаписи.Значение);
       // Вставить обработку выборки ВыборкаДетальныеЗаписи
 
    КонецЦикла;
    Сообщить(ОбщаяПлощадь);
   vladimirpetrov11
 
38 - 28.12.12 - 11:41
(34) РАБОТАЕТ!!!!!!!! Спасибо!
   vladimirpetrov11
 
39 - 28.12.12 - 11:55
А теперь внимание, тупой вопрос))): Как получить значение из запроса без использования цикла? Какой метод использовать?
Результат.Выполнить();....??

PS: Я с этим ещё не сталкивался.)
   vladimirpetrov11
 
40 - 28.12.12 - 11:56
Запрос = Новый Запрос;
    Запрос.Текст = 
    
    "ВЫБРАТЬ
    |    ВЫРАЗИТЬ(ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Значение КАК ЧИСЛО(12, 2))как Значен,
    |    (ркЗначенияПериодическихСвойствОбъектовСрезПоследних.Объект.Дом) КАК Дом
    |ИЗ
    |    РегистрСведений.ркЗначенияПериодическихСвойствОбъектов.СрезПоследних(,Объект.Дом = &Дом) КАК ркЗначенияПериодическихСвойствОбъектовСрезПоследних
    
    |ИТОГИ 
    |   СУММА(Значен)
    |ПО
    |   Дом"
    ;
 
    Запрос.УстановитьПараметр("Дом", ЛицевойСчет.Дом);

    Результат = Запрос.Выполнить();


Вот так пока
   vladimirpetrov11
 
41 - 28.12.12 - 12:06
Сделал))): Только не знаю так нормально или можно лучше:


            Результат = Запрос.Выполнить();
            
            
            ВыборкаДетальныеЗаписи = Результат.Выбрать();
            
            ВыборкаДетальныеЗаписи.Следующий();
            
            ОбщаяПлощадь=ВыборкаДетальныеЗаписи.Значен;
            Сообщить(ОбщаяПлощадь);




Всем ОГРОМНОЕ СПАСИБО!!


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует