|
Определение правильной формулы расчета вычисляемого поля в СКД | ☑ | ||
---|---|---|---|---|
0
Tolstiy Beremenniy
24.09.18
✎
13:55
|
Необходим правильный расчет вычисляемого поля в СКД.
Пока, написал вот такую формулу. ВЫБОР // ТУТ ОПРЕДЕЛЕНИЕ ЗАПОЛНЕНА ЛИ ЯЧЕЙКА 11*, ТАК КАК В ПОЛЕ 11* // ПО ЭТОМУ УСЛОВИЮ ВЫВОДИТСЯ 0, ТО ЕСТЬ ЕСЛИ НЕ ЗАПОЛНЕНА ТО КОГДА ДатаСнятияПравНаОбъектНедвижимости = ДАТАВРЕМЯ(1,1,1) ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗначениеК, 0) = 0 ТОГДА СуммаНалога ИНАЧЕ СуммаНалога * ЕСТЬNULL(ЗначениеК, 1) КОНЕЦ ИНАЧЕ // ТУТ ОПРЕДЕЛЕНИЕ УСЛОВИЯ ЕСЛИ 11* ЗАПОЛНЕНА, АНАЛОГ УСЛОВИЯ // ПРЕДЫДУЩЕЙ ВЕТКИ, УМНОЖЕННЫЙ НА КОЛОНКИ (11*/11) ВЫБОР КОГДА ЕСТЬNULL(ЗначениеК, 0) = 0 ТОГДА СуммаНалога * (КоличествоМесяцевВладения - (МЕСЯЦ(ПериодСнятияСУчета) - МЕСЯЦ(ДатаСнятияПравНаОбъектНедвижимости))/КоличествоМесяцевВладения) ИНАЧЕ СуммаНалога * ЕСТЬNULL(ЗначениеК, 1) * (КоличествоМесяцевВладения - (МЕСЯЦ(ПериодСнятияСУчета) - МЕСЯЦ(ДатаСнятияПравНаОбъектНедвижимости))/КоличествоМесяцевВладения) КОНЕЦ КОНЕЦ Может ли она корректно отработать? Пока вижу что значение не то в ячейке. http://joxi.ru/DmBQD6LTw5LgBr |
|||
1
Tolstiy Beremenniy
24.09.18
✎
14:12
|
Общая схема выражения такая, -
ЕСЛИ КОЛОНКА 11* НЕ ЗАПОЛНЕНА (которая сама вычисляется в вычисляемом поле), то Если заполнена колонка 6*, то результат колонка 15 * колонка 6*. Если не заполнена колонка 6*, то результат колонка 15. ЕСЛИ КОЛОНКА 11* ЗАПОЛНЕНА, ТО Если заполнена колонка 6*, то результат колонка 15 * колонка 6* * (колонка 11*/11). Если не заполнена колонка 6*, то результат колонка 15 * (колонка 11*/11). |
|||
2
Tolstiy Beremenniy
24.09.18
✎
14:33
|
Вообще я хотел узнать адекватное ли условие, что представлено в (0)?
|
|||
3
Tolstiy Beremenniy
24.09.18
✎
15:03
|
Выяснил, да вот это контрольный пример http://joxi.ru/DmBQD6LTw5LgBr .
В колонке 15* должно быть 9. У меня почему то условие из 0 выдает 63. Дкмаю что не так. Буду рад любым подсказкам. |
|||
4
Lexandr
24.09.18
✎
15:14
|
Использовать ЕСТЬNULL в вычисляемом поле на мой взгляд не есть хорошая идея. Для поля ЗначениеК в наборе данных тип значения определен?
|
|||
5
Tolstiy Beremenniy
24.09.18
✎
15:31
|
(4) Это число, 15.2 из регистра сведений.
Тут вопрос в том почему не пересчиталось на значение 9, как показывает калькулятор. А выдало 63! |
|||
6
Lexandr
24.09.18
✎
16:17
|
У тебя 27*7/3 = 63. Откуда у тебя там 7 получается. Ну могу предположить, что (МЕСЯЦ(ПериодСнятияСУчета) - МЕСЯЦ(ДатаСнятияПравНаОбъектНедвижимости) = - 4. И таки да, использовать ЕСТЬNULL в условии, а потом использовать в формуле неправильно, когда тебе по сути уже известен результат.
|
|||
7
Tolstiy Beremenniy
24.09.18
✎
16:29
|
(6) (27*1)*(1/3) = 9
Там же вот такая формула!!!! От куда 27*7/3 ? |
|||
8
breezee
24.09.18
✎
18:52
|
(7) Сделайте еще одну ВТ только для расчетов. Для вас не долго, для системы почти не вредно(кроме разрастания темпДБ) и для поддержки решения читать легче. Заодно, может и косяк свой найдете. Я косяк не искал, извините
|
|||
9
Tolstiy Beremenniy
25.09.18
✎
03:58
|
(8) Каким образом?
Тут 2 набора данных. Нужная формула в вычисляемом поле, в котором используются данные из первого и из второго набора. Потому формула и рассчитывается в вычисляемом поле. Нужно её исправить просто если в неё ошибка. Что я и делаю сейчас, проверяю. Посмотрел вроде все с ней нормально. Но ошибки не нашел. |
|||
10
Tolstiy Beremenniy
25.09.18
✎
04:02
|
Делаю первую проверку.
Нужно определить, правильно ли считается что поле 11* заполнено или нет?!!! ВЫБОР КОГДА ДатаСнятияПравНаОбъектНедвижимости = ДАТАВРЕМЯ(1,1,1) ТОГДА 55 ИНАЧЕ 77 КОНЕЦ http://joxi.ru/MAjylWoT4E58R2 Получается что, определение, заполнена ли колонка 11* или нет выполняется правильно! |
|||
11
Tolstiy Beremenniy
25.09.18
✎
04:27
|
Попробовал вот так. Если без /3 то в поле выводится 1.
Как и в 11* то есть все верно. Но когда добавил /3 то в поле ничего ен вывелось. Есть подозрение что строка делится на 3. Так ли? Если так то можно ли в вычисляемом поле операнд преобразовать к числу? |
|||
12
Tolstiy Beremenniy
25.09.18
✎
04:28
|
(11+)
ИНАЧЕ (КоличествоМесяцевВладения - (МЕСЯЦ(ПериодСнятияСУчета) - МЕСЯЦ(ДатаСнятияПравНаОбъектНедвижимости))) / 3 КОНЕЦ |
|||
13
Tolstiy Beremenniy
25.09.18
✎
04:35
|
Попробовал вот так,
ВЫБОР КОГДА ДатаСнятияПравНаОбъектНедвижимости = ДАТАВРЕМЯ(1,1,1) ТОГДА 55 ИНАЧЕ 1 / 3 КОНЕЦ Но опять же в поле пусто. Почему? Там такое число должно быть 0,3333333333333333 Как показал калькулятор |
|||
14
Tolstiy Beremenniy
25.09.18
✎
04:39
|
Поставил, вот так, вывелось 4, то есть с числом все нормально. Почему на деление выводится пусто?
ВЫБОР КОГДА ДатаСнятияПравНаОбъектНедвижимости = ДАТАВРЕМЯ(1,1,1) ТОГДА 55 ИНАЧЕ 1 + 3 КОНЕЦ |
|||
15
Tolstiy Beremenniy
25.09.18
✎
04:48
|
Итак вопрос, почему в ячейке не выводится 1/3 = 0,3333333333333333.
Сложение (14) вывелось = 4. |
|||
16
Tolstiy Beremenniy
25.09.18
✎
05:00
|
(15) Этот вопрос, снят!!!!! Там был формат задан в настройках потому что. Без дробной части!!!!
|
|||
17
Tolstiy Beremenniy
25.09.18
✎
05:44
|
Решено:
ВЫБОР КОГДА ДатаСнятияПравНаОбъектНедвижимости = ДАТАВРЕМЯ(1,1,1) ТОГДА ВЫБОР КОГДА ЕСТЬNULL(ЗначениеК, 0) = 0 ТОГДА СуммаНалога ИНАЧЕ СуммаНалога * ЕСТЬNULL(ЗначениеК, 1) КОНЕЦ ИНАЧЕ ВЫБОР КОГДА ЕСТЬNULL(ЗначениеК, 0) = 0 ТОГДА СуммаНалога * ((КоличествоМесяцевВладения - ( МЕСЯЦ(ПериодСнятияСУчета) - МЕСЯЦ(ДатаСнятияПравНаОбъектНедвижимости)))/КоличествоМесяцевВладения) ИНАЧЕ (СуммаНалога * ЕСТЬNULL(ЗначениеК, 1)) * ((КоличествоМесяцевВладения - ( МЕСЯЦ(ПериодСнятияСУчета) - МЕСЯЦ(ДатаСнятияПравНаОбъектНедвижимости)))/КоличествоМесяцевВладения) КОНЕЦ КОНЕЦ |
|||
18
dmt
25.09.18
✎
08:23
|
Проверь, что будет, если ПериодСнятияСУчета = 01.01.хх, а ДатаСнятияПравНаОбъектНедвижимости = 01.12.уу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |