Добрый день!
Есть ли возможность с помощью формул в бизнес-процессах преобразовать значения из целых в дробные?

Нравится

1 комментарий

Вера, добрый день,

 

В БП в формулах можно использовать C# выражения. Посмотрите в сторону класса Convert. Например Convert.ToSingle(), Convert.ToInt32 и т.п.

Показать все комментарии

В числовых полях, для которых назначено округление (и для которых оно не назначено тоже) в Creatio, и которые не заполнены (например, пользователь импортирует из excel свои данные заполняя карточку какую-нибудь, и там не все ячейки заполнены), отображается ЦИФРА, а не пустое поле. Сейчас обратила внимание на данную проблему, есть ли какое-либо решение?
 

Нравится

4 комментария
Лучший ответ

Это не проблема. Так работает система, так как для всех числовых полей системы на уровне ядра прямо в БД установлено значение по умолчанию - 0. Это происходит потому что в СУБД нет для числовых колонок такого понятия, как пустое значение. Если число, то обязательно 0. Так же если логическое, то FALSE.

Это не проблема. Так работает система, так как для всех числовых полей системы на уровне ядра прямо в БД установлено значение по умолчанию - 0. Это происходит потому что в СУБД нет для числовых колонок такого понятия, как пустое значение. Если число, то обязательно 0. Так же если логическое, то FALSE.

Владислав Литвинчук,

Спасибо! Для меня это стало проблемой, когда пользователь проводит расчеты, и видит 0 вместо пустой ячейки, как он вводил в excel. Сделать поля другого формата не получится, потому как позже это поле где-то используется как для математических операций

Добрый день!

Описанное Вами поведение не является ошибкой и соответствует базовой логике, которая присуща всем полям.
Если поле имеет тип - Число или Дробное число, то значение 0 или 0,00 - это пустое значение, то есть поле не заполнено.

Также, когда Вы пытаетесь сохранить карточку с 0,00 в числовом поле со свойством обязательности заполнения, система выдает сообщение, что в поле необходимо указать значение.

Значения 0 или 0,00 является пустым значением, они отображаются в пустых полях для того, чтобы визуально пользователи понимали формат поля.

 

В качестве обходного решения, можем предложить заменить данное числовое поле на текстовое. Но хотим заметить, что при данном типе поля не будет возможности, например, сравнивать значение данного поля с определенной константой (например, для построения фильтров) или выполнять арифметические операции. 

Жмурко Сергей,

Спасибо за объяснения) к сожалению, да, заменить на текстовое поле не получится..

Показать все комментарии

Коллеги, здравствуйте!
Хочу поменять цену в продукте и сумму в договоре с денежного на дробное (0,0001). Веду разработку в своём пакете. Поменял тип данных в кофигураторе, сохранил и скомпилировал, перекэшировал. 
Но к сожалению, две числа после запятых по умолчанию всё так же  отображаются.

Как мне можно поменять этот тип данных? Причем не во всех колонках, а в отдельных могут быть задействованы три числа после запятой.

Нравится

1 комментарий

Возможно, банально, не очищен Redis.

Также стоит проверить, везде ли изменилось: в объекте, в схеме страницы, в таблице базы. А ещё, если объект унаследован от другого или в других пакетах остался старый тип, и в результате учитывается именно он. Не уверен, что при переопределении схемы можно безбоязненно менять тип в объекте.

Показать все комментарии

Добрый день!

Создал печатную форму, в нее добавил поля с дробными числами.

В bpm разделитель целой и дробной части является запятая.

Как сделать так, чтобы в печатной форме разделитель целой и дробной части была точка, а в самой системе оставалась запятая? 

Нравится

4 комментария

Александр, здравствуйте!

Так есть же базовый макрос [#NumberDigit#] (https://academy.terrasoft.ru/documents/technic-sdk/7-11/bazovye-makrosy…), который решит Вашу задачу. 

Если нужны дополнительные манипуляции, то только через создание своего макроса - https://academy.terrasoft.ru/documents/technic-sdk/7-11/kak-sozdat-makr…

Вильшанский Дмитрий,

Cпасибо! 

Чакур Александр

Александр, добрый день!

Я Вам ошибочно предоставил ответ не на тот вопрос.  Данный макрос разделаем "тысячные", но дробную часть не затрагивает. 

Базового макроса нет для решения вашей задачи.

День добрый. Вот пример моего решения. Использую 2 представления одних данных.

Amount[#NumberRU|Cent#].«Amount[#NumberRU|Cent#]»

Показать все комментарии

День добрый, коллеги!

Возникла следующая проблема - при использовании быстрого фильтра по дробному числу в поле ввода значения некоторые пользователи не могут ввести число, больше 8-ми символов, хотя размер числа установлен 15 и точность 4, а некоторые могут. А в фильтрах Workspace-а уже все пользователи могут ввести только 11 символов.

Может кто сталкивался с данной проблемой?
Заранее спасибо.

Нравится

3 комментария

Какая используется версия бинарников?

Александр, добрый день.
Там, где работает, бинарники 3.3.2.210
А где нет - 3.3.2.43

Как я понимаю, всё дело в этом?

Денис,

да, исправления были внесены в новую версию бинарных файлов.

Вам необходимо обновить бинарные файлы.

По запросу в техническую поддержку (support@terrasoft.ru) мы можем предоставить Вам самую актуальную версию (на данный момент - 3.3.2.311).

Показать все комментарии

Доброго времени суток!

Хочу поделиться своими наработками.
Функция преобразования дробей в запись прописью, например:
1,012 - Одна целая двенадцать тысячных
13/156 - Тринадцать сто пятьдесят шестых

Ограничения: десятичная дробь - максимум 3 знака после запятой
обыкновенная дробь - наименьший знаменатель = 1000

Также может переводить и целые числа.

Вызывать функцию NumValueToString(NumValue)

Сервис прилагаю.

Кто найдет баги пишите!

Нравится

Поделиться

1 комментарий

"Беляков Дмитрий" написал:Кто найдет баги пишите!

NumValueToString('0/0')
Ноль ноль

Показать все комментарии

Недавно возникла задача изменить формат отображения дробных чисел в отчете MS Word. В текущей реализации, если дробное число не имеет десятых и сотых, оно преобразуется в целое. Например, число 10,00 будет выведены как 10.
Чтобы в отчете MS Word цифры отображались с двумя нулями после запятой (например, 10,00) необходимо следующим образом модифицировать базовый функционал:
1. Открыть сервис scr_UserReportCommon.
2. Найти функцию function GetDataFieldValueByFieldType(DataField). Изменить ее следующим образом:

function GetDataFieldValueByFieldType(DataField) {  
         var Result = '';
         var IsFinal = false;
         switch (DataField.FieldType) {
                   case dftInteger:
                            Result = DataField.ValAsInt;
                   break;
                   case dftFloat:
                            Result = DataField.ValAsFloat;                          
                            Result = Result.toString();
                            if (Result.indexOf (".") == -1){
                            Result = Result + ".00";                            
                            }  
                   break;
                   case dftEnum:
                            Result = DataField.DisplayValue;
                   break;
                   default:
                            Result = DataField.Value;
                   break;
         }
         return Result;
}

Нравится

Поделиться

0 комментариев
Показать все комментарии