Имя: Пароль:
1C
 
Вычисляемое поле на компоновке данных БП 3.0
0 1cv78
 
29.10.17
15:50
Добрый день! Компоновку только осваиваю, просьба сильно не ругаться...
Создаю простой отчет на компоновке в БП 3.0. Из "Движения с субконто" вытаскиваю данные по продажам, т.е. кредитовый оборот по 90.01.1. В запросе сразу разделяю поля по продажам и возвратам (Когда сумма больше или меньше нуля). Группирую по Номенклатуре (Субконто кредит 3) и по покупателям (Регистратор.Контрагент). С этим всё ок.
Теперь добавляю вычисляемое поле "Процент возврата". Если пишешь выражение СуммаВозврата/СуммаПродаж*100, выдает деление на ноль именно в тех группировках, где есть возврат, если используешь "Выбор Когда СуммаПродаж > 0", выдает в везде пустоту. В качестве знаменателя использовал и более простые поля типа Кредитовый оборот без всяких условий - та же фигня. Я что-то делаю не так?
Спасибо.
1 Cyberhawk
 
29.10.17
15:51
Выбор Когда [СуммаПродаж] > 0
2 1cv78
 
29.10.17
15:55
Т.е. в квадратные скобки что ли? Я ж так и делал, только без скобок)
3 Franchiser
 
гуру
29.10.17
15:59
ЕстьNull тебя спасет
4 Cyberhawk
 
29.10.17
18:04
(2) Ну попробуй, вдруг прокатит
5 1cv78
 
30.10.17
00:22
(4) Сорри, чот не выходит каменный цветок. Это пробовал - не прокатило, тот же результат.
ВЫБОР КОГДА [СуммаПродаж] > 0 ТОГДА СуммаВозвратов / СуммаПродаж * 100 Иначе 0 Конец

(3) Проштудировал матчасть, хотя не понял, в каком месте использовать. В результате везде включил, в запросе:
ЕСТЬNULL(ХозрасчетныйДвиженияССубконто.Сумма, 0)
Также крутил и в вычисляемом выражении:
ВЫБОР КОГДА СуммаПродаж Есть Null ТОГДА 0 Иначе СуммаВозвратов / СуммаПродаж * 100 Конец
Так работает, если бы условия не было, т.е. выдает деление на ноль.
А если так, то ничего не выдает, как всегда, даже если есть возвраты:
ВЫБОР КОГДА СуммаПродаж = 0 ТОГДА 0 Иначе СуммаВозвратов / СуммаПродаж * 100 Конец
6 1cv78
 
30.10.17
00:39
Может, речь идет об этом выражении в вычисляемом значении:
ЕстьNull(СуммаВозвратов / СуммаПродаж * 100, 0)

Так оно выдает деление на ноль.
7 1cv78
 
30.10.17
01:00
В общем, результат такой: оба значения видит, когда вытаскиваешь их непосредственно в выражении или, например складываешь или вычитаешь, но как только одно на другое делишь, то выдает деление на ноль именно в тех группировках, где значение положительное.
8 1cv78
 
30.10.17
01:34
Ой, сорри! Простите дурака, что мозги вынес, выражение надо было в ресурсах еще писать... РТФМ, едрен батон...
9 1cv78
 
30.10.17
01:35
И спасибо еще раз)
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший