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