СКД Произведение в вычисляемом поле #698699


#0 by MaiorovYury
Есть отчет в СКД- один набор данных - объект. Пытаюсь в вычисляемом поле посчитать произведение двух полей из набора данных, оба поля числовые, и получаю ошибку Вот выражение в ВП ЕСТЬNULL(ОстатокОтпусков,0)*ЕСТЬNULL(СреднийДневнойЗаработок,0) Вот сама ошибка Ошибка в выражении по причине: Что не так?
#1 by MaiorovYury
1С:Предприятие 8.2 (8.2.19.80)
#2 by Maxus43
зачем естьnull в вычисляемом? в заросе это делай, в ВП просто а*б
#3 by Wobland
объект выбор когда?
#4 by MaiorovYury
у меня эти 2 поля получаются не в запросе, а из общих модулей
#5 by Maxus43
хорошо, а каким макаром в общих модулях там возможно Null? Оно там реально есть?
#6 by Wobland
я верю в криворукость авторов
#7 by MaiorovYury
то есть ВЫБОР КОГДА ЕСТЬNULL(ОстатокОтпусков,0)=0 ИЛИ ЕСТЬNULL(СреднийДневнойЗаработок,0)=0 ТОГДА 0 ИНАЧЕ ОстатокОтпусков = СреднийДневнойЗаработок КОНЕЦ Это действительно лучше чем ЕСТЬNULL(ОстатокОтпусков,0)*ЕСТЬNULL(СреднийДневнойЗаработок,0)
#8 by MaiorovYury
и вообще ЕСТЬNULL - это перестраховаться Когда вывожу отчет без ВП, то ОстатокОтпусков для некоторых сотрудников ничего не показывает - так что это перестраховка
#9 by Wobland
чего там иначе?
#10 by Maxus43
я тебе просто намекаю что это естьnull и мешает тебе в ВП, ибо А*Б просто работает
#11 by Maxus43
Не путайте язык запросов и выражения в вычисляемых полях ещё
#12 by MaiorovYury
Проверил, NULL там все-таки нет - там 0 А*Б не работает это меня и смутило!
#13 by Maxus43
чудес не бывает... тип точно число? не составной какой?
#14 by Wobland
белая клеточка в отчёте - это не работает или работает?
#15 by MaiorovYury
Проверил еще раз - все число! На самом деле первый раз работаю с набором данных объектом, и переопределяю процедуру ПриКомпоновкеРезультата Может что-то в ней не хватает. Посмотрите пожалуйста! Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
#16 by Feunoir
Сильно подозреваю, что проблема в группировках. На каком-то из уровней оно просто не может рассчитаться правильно. Не могу сейчас найти отчёт в котором у меня была такая-же проблема.
#17 by MaiorovYury
убрал группировки - все равно не работает :(
#18 by Wobland
>Может что-то в ней не хватает оно умеет жаловаться текстом ошибки
#19 by MaiorovYury
вот весь текст ошибки Ошибка исполнения отчета по причине: Ошибка при выполнении обработчика - 'ПриКомпоновкеРезультата' по причине: {ВнешнийОтчет.ОтчетРезервОтпусков.МодульОбъекта}: Ошибка при вызове метода контекста (Следующий) по причине: Ошибка компоновки данных по причине: Ошибка получения данных по причине: Ошибка в выражении по причине:
#20 by Maxus43
нафига цикл там? ПроцессорВывода.Вывести(параметры в СП гляди);
#21 by MaiorovYury
Все, я понял. Я ставил тип Число в СКД в Наборе данных и думал что СКД преобразует значения к числу. А сейчас увидел, что в ТЗ, которую я передаю в этот набор данных СреднийДневнойЗаработок - это строка Думаю вопрос решен
#22 by Mitriy
а ты уверен, что ругается именно на это место?
#23 by Wobland
"а чо так мало?"
#24 by Maxus43
вот не зря я про тип спрашивал...
#25 by MaiorovYury
Да уж. Но я был уверен, что раз я указал в СКД в наборе данных тип для этих полей, то они будут именно этого типа. Странно - зачем тогда этот функционал, зачем указывать тип значений для полей?
#26 by Wobland
думал, оно тебе "адын" в 1 превратит?
#27 by Maxus43
типы в Источнике надо смотреть всегда... типы в СКД емнип только если надо из составного типа выделить один, или даже хз, не помню. Надо читать описание СКД
#28 by MaiorovYury
ну или по крайней мере выдаст ошибку, что типы не сходятся так а зачем тогда возможность указать тип значений?
#29 by MaiorovYury
В общем всем спасибо!
#30 by Wobland
в конструкторе запросов вон типы для полей ВТ указываются исключительно для удобства пользования этим же конструктором
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С