Страница 1 из 1

Для числовых кастомных полей сделать дополнительные текстовые поля "Вычислители"

Добавлено: 24.12.2015 14:09
Михаил Храпунов
Цифры обычно приходят в виде последовательности операций, например:
Отгружено 5 машин х 10 палетт в каждой х 200 коробов на палете х 2000 штук в коробе и + еще 5 штук= 20 000 005 штук. Значение 20 000 005 мы храним в числовом поле.

Хотелось бы иметь для числовых полей специальное поле "вычислитель" в которое в текстовом виде можно было бы занести всю эту полную информацию, например так:
5х10*200х2т+5

При изменениях этого текстового поля производить пересчет цифрового значения, хранящегося в этом числовом поле. Иметь возможность, например, при наведении на числовое значение курсора видеть эту текстовую цепочку.

При вычислениях переводить текстовые символы в соответствующие им операции: * x X — это умножить, + - — соответственно, также обрабатывать и скобки.

Очень удобно было бы хранить числовые значения с полным пониманием что и как происходило. В противном случае приходится отписывать эту информацию дополнительно в другом месте.

Добавлено спустя 2 минуты 17 секунд:
Пробелы и другие текстовые символы, не относящиеся к знакам математических операций и числовым значениям можно было бы просто убирать перед вычислениями.

Добавлено спустя 5 минут 50 секунд:
Еще пример: стоимость в рублях, но пересчитанных из долларов по курсу на день оплаты: 65,8547 х 20 USD.
Для расчета убираем все лишние текстовые символы, остается 65,8547х20 в числовое поле заносим 1317,094.
Т.е. дальше везде участвует значение 1317,094, но если нам хочется посмотреть откуда оно взялось мы наводим на него курсор и если был задан текстовый вычислитель, то видим его: 65,8547 х 20 USD и сразу понимаем, что стоимость пересчитывалась из долларов, по курсу 65,8547.
По моему очень удобно.
 

Добавлено спустя 4 минуты 31 секунду:
Возможно реализовать по другому: для текстового поля при создании указать что это поле-вычислитель и указать для какого числового поля этот вычислитель. Т.е. понятно и кто того вычисляет и какую подсказку показывать для числового поля.

Ресурсов все это требовать не будет, потому что в расчетах везде будет участвовать цифровое поле, меняться будет только при редактировании текста Вычислителя. Если Текста-Вычислителя нету, то просто спокойно заносим число в числовое поле.

Добавлено: 29.12.2015 09:15
Халфин Тимур Маликович
поддерживаю предложение

Добавлено: 30.12.2015 14:59
Михаил Храпунов
Букву т после цифры заменять перед вычислением на последовательность *1000. Млн после цифры заменять на *1000000.

Добавлено: 31.08.2016 13:27
Михаил Храпунов
Кто еще поддержит?

Добавлено: 27.09.2016 14:56
Герасимов Андрей Владимирович
Поддерживаю

Добавлено: 30.09.2016 10:32
Sunford
Поддерживаю (Дмитрий, и чем это не голосовалка с возможностью комментариев? )

Добавлено: 01.10.2016 12:21
Dmitry Goncharenko
Это вариация на тему вычисляемых полей, к реализации которых мы сейчас приближаемся. Думаю, когда они появятся, то закроют и данный кейс тоже.

Добавлено: 07.04.2017 11:58
Светлолобов Илья Михайлович
Поддерживаю! Вычисляемые поля просто необходимы!

Добавлено: 07.04.2017 12:06
Петр Петренко
Вычисляемые поля также очень нужны и в сценариях.

Добавлено: 02.06.2017 12:05
Сергей Гребенщиков
Вычисляемые поля КРАЙНЕ необходимы, особенно для принятия решений на лету, например когда в ходе планерки выясняется что параметры части задач резко изменились, нужно перераспределить ресурсы...
Поддерживаю! Пора от вариаций на тему переходить к самой фуге. Зрители замерли в ожидании аж начиная с 2015 года...

Добавлено: 02.06.2017 12:15
Михаил Храпунов
+

Re: Для числовых кастомных полей сделать дополнительные текстовые поля "Вычислители"

Добавлено: 15.10.2019 16:09
Михаил Храпунов
Вот эта хотелка крайне близка к реализации:
появилась функция в сценариях — вычислить значение поля.

1) Мне не хватает только одного (точнее двух, см. ниже): функции по тексту выражения вычислить значение.
Т.е. аналог функции EVAL из MS ACCESS
https://support.office.com/ru-ru/articl ... 90da4d4166

Тогда в выражении:
5х10*200х2т+5
знаки, т, млн и т.п. заменяем единообразно при помощи функции ПОДСТАВИТЬ (SUBSTITUTE)
и потом вычисляем выражение при помощи необходимой функции EVAL и записываем его в новое поле.

2) И еще одна текстовая функция нужна: ОЧИСТИТЬ СТРОКУ ОТ ТЕКСТА, оставить только цифры, операции над цифрами, десятичные разделители.
Это чтобы обрабатывать подобное: 5 машин х 10 палетт в каждой х 200 коробов на палете х 2000 штук в коробе и + еще 5 штук.

Т.е.
исходное:
5 машин х 10 палетт в каждой х 200 коробов на палете х 2000 штук в коробе и + еще 5 штук.

Преобразования:
1) очищаем строку от постороннего текста:
5х10х200х2000+5
2) заменяем разнообразные знаки операций на единообразные:
5*10*200*2000+5
3) Вычисляем значение строки и заносим куда нам надо.

Ну и добавить функцию вычислить поле не только в задачи, но и в аналитики и в справочники.

Re: Для числовых кастомных полей сделать дополнительные текстовые поля "Вычислители"

Добавлено: 14.04.2021 10:52
Илья Федоров
Михаил Храпунов писал(а):
24.12.2015 14:09
Хотелось бы иметь для числовых полей специальное поле "вычислитель" в которое в текстовом виде можно было бы занести всю эту полную информацию, например так:
5х10*200х2т+5
Теперь есть действие Вычислить значение поля в котором можно вычислять:
- поля типа Число;
- поля типа Строка или Текст;
- поля типа Дата и Дата и время.

Re: Для числовых кастомных полей сделать дополнительные текстовые поля "Вычислители"

Добавлено: 14.04.2021 12:10
Михаил Храпунов
Илья Федоров писал(а):
14.04.2021 10:52
Теперь есть действие Вычислить значение поля в котором можно вычислять:
И есть возможность по произвольной, меняющейся строке с формулой, хранящейся в поле, вычислить число?
Никак не могу найти описание, можно ссылку?

Re: Для числовых кастомных полей сделать дополнительные текстовые поля "Вычислители"

Добавлено: 14.04.2021 20:28
Илья Федоров
Михаил Храпунов писал(а):
14.04.2021 12:10
Илья Федоров писал(а):
14.04.2021 10:52
Теперь есть действие Вычислить значение поля в котором можно вычислять:
И есть возможность по произвольной, меняющейся строке с формулой, хранящейся в поле, вычислить число?
Никак не могу найти описание, можно ссылку?
Михаил что значит "меняющейся строке с формулой", тут либо
писать несколько сценариев с разными формулами используя в формуле поля задач, контактов, в том числе поля вида {{Задача.ПолеТипаЗаписьСправочника.ПолеСправочникаТипаЧисло}}
Либо использовать в формуле функцию Если например
Если({{Задача.Поле1}}>0;{{Задача.Поле1}}*{{Задача.ПолеКоличество}};{{Задача.Поле2}}*{{Задача.ПолеКоличество}})

Re: Для числовых кастомных полей сделать дополнительные текстовые поля "Вычислители"

Добавлено: 15.04.2021 10:09
Михаил Храпунов
Илья Федоров писал(а):
14.04.2021 20:28
Михаил что значит "меняющейся строке с формулой", тут либо
писать несколько сценариев с разными формулами используя в формуле поля задач, контактов, в том числе поля вида {{Задача.ПолеТипаЗаписьСправочника.ПолеСправочникаТипаЧисло}}
Либо использовать в формуле функцию Если например
Если({{Задача.Поле1}}>0;{{Задача.Поле1}}*{{Задача.ПолеКоличество}};{{Задача.Поле2}}*{{Задача.ПолеКоличество}})
Выше кейс описан: в текстовом поле задачи (или аналитики, лучше и там и там) находится выражение, значение которого надо вычислить и занести в другое поле, типа число.
Т.е. в каждом поле новой задачи — новая формула, сам пользователь пишет "формулу" в текстовое поле (сделать аналог функции EVAL из Visual Basic), при изменении текстового поля производить пересчет числового поля. Операции пока что предлагаю простейшие реализовать, как выше написано (грубо говоря арифметические действия). Дополнительные поля и сценарии на все случаи жизни для каждого вида формулы не создать, их множество.

Что мы получим: пользователь видит не только результат — число, но и как он получен — саму формулу и значения над которыми производились действия.

Еще пример: в Excel мы видим в ячейке значение, но если поместим в нее курсор, то увидим и формулу как оно получилось. И в каждой ячейке формула может быть своя. Иногда важно не только само значение, но и как оно посчитано. Примеры из своих кейсов я выше привел.