КАК поставить условие в вычисляемое поле?

1. arsen_botashev 24.01.19 09:57 Сейчас в теме
Здравствуйте, есть два поля количество и сумма, по ним надо рассчитать цену=сумма/количество. Добавил вычисляемое поле ЦЕНА, в выражении написал "Сумма/Количество". Проблема в том что есть товары количество которых = 0, поэтому выводится надпись Деление на 0.
Надо поставить условие в вычисляемое поле: "Если количество = 0 то Цена=0 Иначе Сумма/Количество".

ВЫБРАТЬ
	ХозрасчетныйОстатки.Субконто1,
	СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК Количество,
	СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК Сумма
	ИЗ
	РегистрБухгалтерии.Хозрасчетный.Остатки(
			,
			Счет = &счет4101,
			,
			Субконто1 = &Номенклатура
				ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
	ХозрасчетныйОстатки.Субконто1
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. PhoenixAOD 62 24.01.19 10:09 Сейчас в теме
(1)А что мешает все это дело поместить во временную таблицу, и уже в второй таблице добавить поле "ВЫБОР КОГДА Количество = 0 ТОГДА Цена = 0 ИНАЧЕ Сумма/Количество КОНЕЦ как Цена"?
5. arsen_botashev 24.01.19 10:18 Сейчас в теме
(4)Создал временную таблицу, добавил туда поле, поставил условие, пишет что эта таблица не найдена
6. dhurricane 24.01.19 10:20 Сейчас в теме
(5) Зачем временная таблица? Раз передумали использовать вычисляемые поля, то вот же, прямо в исходном запросе:
ВЫБОР
КОГДА СУММА(ХозрасчетныйОстатки.КоличествоОстаток) <> 0
ТОГДА СУММА(ХозрасчетныйОстатки.СуммаОстаток) / СУММА(ХозрасчетныйОстатки.КоличествоОстаток)
ИНАЧЕ 0
КОНЕЦ КАК Цена
SedovSU@mail.ru; +1 Ответить
8. PhoenixAOD 62 24.01.19 10:22 Сейчас в теме
(6)я бы изначально получил данные, а потом уже их бы обрабатывал
9. dhurricane 24.01.19 10:24 Сейчас в теме
(8) Я не согласен с Вами. ИМХО, зачем мучить файл временных таблиц ради такой простой операции? Лучше уж вернуться к вычисляемым полям.
7. PhoenixAOD 62 24.01.19 10:21 Сейчас в теме
(5)вот примерно создавал?
ВЫБРАТЬ
    ХозрасчетныйОстатки.Субконто1 как Субконто,
    СУММА(ХозрасчетныйОстатки.КоличествоОстаток) КАК Количество,
    СУММА(ХозрасчетныйОстатки.СуммаОстаток) КАК Сумма
Поместить Вт1
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(
            ,
            Счет = &счет4101,
            ,
            Субконто1 = &Номенклатура
                ИЛИ &Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1
Показать

;
/////
Выбрать
Вт1.Субконто1,
Вт1.Количество,
Вт1.Сумма,
ВЫБОР КОГДА Вт1.Количество = 0 ТОГДА Цена = 0 ИНАЧЕ Вт1.Сумма/Вт1.Количество КОНЕЦ
11. arsen_botashev 24.01.19 10:34 Сейчас в теме
(7)Спасибо, сделал так: поставил условие ц поле где выражение:"ВЫБОР КОГДА Количество=0 ТОГДА 0 ИНАЧЕ Сумма/Количество КОНЕЦ", получилось как надо.
2. dhurricane 24.01.19 10:04 Сейчас в теме
Также, как и в запросе:
ВЫБОР КОГДА Количество = 0 ТОГДА Цена = 0 ИНАЧЕ Сумма/Количество КОНЕЦ
10. arsen_botashev 24.01.19 10:26 Сейчас в теме
(2)Я пробовал так, пишет что поле цена не найдена
13. dhurricane 24.01.19 10:38 Сейчас в теме
(10) Опечатка. :) Нужно было просто 0.
15. arsen_botashev 24.01.19 15:47 Сейчас в теме
(13)да, надо было просто 0))))
12. arsen_botashev 24.01.19 10:35 Сейчас в теме
3. dhurricane 24.01.19 10:06 Сейчас в теме
Синтаксис языка выражений для СКД можно посмотреть в справке конфигуратора (не синтакс-помощнике) в разделе "Система компоновки данных / Язык выражений системы компоновки данных".
14. timeforlive 16 24.01.19 11:57 Сейчас в теме
Если вам не нужно отображать результат, у которых итоговое Количество принимает значение "0", то поставьте в условии:
ГДЕ
СУММА(Количество) > 0

Если результат все таки нужно выводить, а в колонке оставлять значение 0, то результат поместить во временную таблицу, где сгруппировать данные.
Затем в результате уже выполнить деление и проверку через ВЫБРАТЬ КОГДА ... ТОГДА ... КОНЕЦ
16. senshkr 13 25.01.19 09:31 Сейчас в теме
Для применения условий в выражениях используется следующий условный оператор:
Цена = ?(Количество = 0, 0, Сумма/Количество)
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот