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

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

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


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

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

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

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


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

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

   Запрос.УстановитьПараметр("Дом", ЛицевойСчет.Дом);

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


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


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




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