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