Имя: Пароль:
1C
1С v8
Запрос. Сумма документа. Как организовать?
0 Галахад
 
гуру
28.01.13
14:48
Написал так:
Если параметр "Сделка" не является основанием реализации,
то возвращается Null
Как сделать, чтобы возвращался либо пустой запрос либо сумма?

ВЫБРАТЬ
   СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка.Сделка = &Сделка
1 Maxus43
 
28.01.13
14:50
что значит >>Если параметр "Сделка" не является основанием реализации?
2 Галахад
 
гуру
28.01.13
14:52
(1) Сделка документ "Заказ поставщику".
Он новый, свежезаписанный у него нет подчиненных документов.
3 Maxus43
 
28.01.13
14:57
Выбрать
СУММА(Табл.Сумма)
ИЗ
(ВЫБРАТЬ
   СУММА(РеализацияТоваровУслугТовары.Сумма) КАК Сумма
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Ссылка.Сделка = &Сделка
ОБЪЕДЕНИТЬ ВСЁ

ВЫБРАТЬ
0) как Табл

?)
4 Ymryn
 
28.01.13
14:57
Если вы особо не мучали конфигурацию то Документ.РеализацияТоваровУслуг.СуммаДокумента должен давать тоже значение, что и суммирование табличной части. А так, что передается в параметр Сделка и что желаете увидеть?
5 Галахад
 
гуру
28.01.13
15:04
(3) Фига себе, я думал как-то попроще все будет...

(4) Спасибо,  конечно. Запрос составлен для примера, т.к. такие таблицы есть у всех.
В моем случае есть самописный документ с реквизитами табличной части "Сумма1", "Сумма2".
6 Maxus43
 
28.01.13
15:06
хотя не, как в (3) - вернёт всегда не ПУстой запрос
7 acsent
 
28.01.13
15:07
ЕстьNULL(СУММА(РеализацияТоваровУслугТовары.Сумма), 0)
8 halconel
 
28.01.13
15:08
(0) ВЫБРАТЬ
   СУММА(ЕСТЬNULL(РеализацияТоваровУслугТовары.Сумма, 0)) КАК Сумма
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
ГДЕ
   РеализацияТоваровУслугТовары.Сделка = &Сделка

ИМЕЮЩИЕ Сумма > 0
9 halconel
 
28.01.13
15:09
1. РеализацияТоваровУслугТовары.Ссылка.Сделка надо заменить на РеализацияТоваровУслугТовары.Сделка

2. Если хочешь получить пустой запрос, использую ИМЕЮЩИЕ

3. Если хочешь получить ноль, используй ЕСТЬNULL
10 Галахад
 
гуру
28.01.13
15:18
(7) Гм. Не знал, что так можно. Спасибо.

(8) Конструктор ругается на такой запрос.

(9) 1. В табличной части нет реквизита "сделка"
2. Можно пример.
3. Понятно.
11 France
 
28.01.13
15:21
Вот это "3. Если хочешь получить ноль, используй ЕСТЬNULL
" - 3,14ж и провокация.. не нужно людей в заблуждение вводить (ну, либо мысль не уловил)

а чо надо то автору??
12 Maxus43
 
28.01.13
15:25
этот запрос вобще не должен возвернуть NULL, пустой запрос елси сделка не равно &Сделка
13 halconel
 
28.01.13
15:33
(10)

ВЫБРАТЬ
   СУММА(КурсыВалют.Курс) КАК Курс
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют

ИМЕЮЩИЕ
   СУММА(КурсыВалют.Курс) > 900000


Выборка будет пуста. Если сравнивать не с 90000, а с 0 - будет сумма курсов.
14 halconel
 
28.01.13
15:34
(11)
ты не уловил. см. (13)
15 ssh2006
 
28.01.13
15:40
ВЫБРАТЬ
   СУММА(КурсыВалют.Курс) КАК Курс
ИЗ
   РегистрСведений.КурсыВалют КАК КурсыВалют

ИМЕЮЩИЕ
   НЕ СУММА(КурсыВалют.Курс) ЕСТЬ NULL
16 France
 
28.01.13
15:44
интересно, зачем может понадобится сумма курсов?)) в указанном запросе))
17 halconel
 
28.01.13
15:44
(15)
Да. В его случае так. Верно глаголишь.
18 halconel
 
28.01.13
15:44
(16) Просто для примера
19 France
 
28.01.13
15:46
мне бы понять, чего автор хочет... а то ему насоветовали всего, но что нужно автор пока не признался.
20 halconel
 
28.01.13
15:47
Да все понятно вроде. Что тебя смущает?
21 Галахад
 
гуру
28.01.13
15:50
(19) Все просто. Я не хотел получать Null из запроса.
Потом подумал. Ну и фиг с ним с Null-ом.
22 halconel
 
28.01.13
15:57
(21) Ну, дядька. Если больше ничего не надо. Все получилось. Ты так и скажи.
23 Галахад
 
гуру
28.01.13
16:00
(22) Хм. Прошу прощения. Я думал, что после (10)
пошли чисто теоретические изыскания.

Всем спасибо. Большое.