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

Логические поля в формулах

Добавлено: 05 сен 2016, 10:18
nikorn
Почему-то в формулах можно использовать только числовые поля, хотя условный оператор IF работает исправно.

Нет никакой возможности задействовать в формулах также логические поля?

Например, сейчас можно написать IF([12]>34,[56],[78]), где [12], [56] и [78] - числовые поля
Но нельзя IF([12]=true,[56],[78]) или вообще IF([12],[56],[78]), где [12] - логическое поле, а [56] и [78] - числовые поля...

Re: Логические поля в формулах

Добавлено: 05 сен 2016, 12:26
nikorn
Между прочим, есть замечательная недокументированная возможность использования формул. 8-)

В формулах можно использовать только числовые поля, но не обязательно писать в них числа. Если в числовое поле занести, например, значение "Да", то в формуле можно использовать логическое условие типа IF([12]='Да',[34],[56])

Re: Логические поля в формулах

Добавлено: 05 сен 2016, 13:15
support
Доработаю в 1.8

Re: Логические поля в формулах

Добавлено: 05 сен 2016, 14:04
nikorn
Можно было бы расширить список используемых в формулах типов полей также за счет поля типа "дата", которое по сути тоже является числом. Тогда функции определения минимального и максимального значений приобрели бы новые возможности (например, поиск последней по времени записи во вложенной сущности) :)

Re: Логические поля в формулах

Добавлено: 14 ноя 2016, 15:23
tax
Я таки не понял, недокументированная возможность
формуле можно использовать логическое условие типа IF([12]='Да',[34],[56])
работает в версии 1.7.2 ?
Попробовал сделать... Поле формула

Код: Выделить всё

IF([452]=0,[310],[310])
Поле 452 логическое со значениями 1 и 0
Поле 310 - числовое
в результате ошибка
Ошибка рассчета формулы: IF([452]="1",[310],[310])

Re: Логические поля в формулах

Добавлено: 14 ноя 2016, 15:41
nikorn
Насколько я понимаю, пока поле [452] может быть только числовым. По крайней мере в версии 1.7.2

У меня используется (работает) формула if([344]>'',[321],0), где [344] и [321] - числовые поля. Формула выбирает из предложений поставщиков актуальное (любая непустая строка в числовом поле [344]). Это своего рода замена логическому полю. :-)

Re: Логические поля в формулах

Добавлено: 15 ноя 2016, 11:53
tax
Таки да, оно работает )
Задача была рассчитывать стоимость заказа, с НДС или без НДС с учётом количества заказа и курса валют, если начальная цена в другой валюте.
Моё решение.
Поля:
- Количество [313] (Числовое поле)
- Цена предварительная [310] (Числовое поле)
- Курс валют [312] (Числовое поле)
- Налог [454] (Переключатели)
* с НДС [58]
* без НДС [59]
- К оплате [311] (Формула)

К оплате [311] (Формула) IF([454]=58,((IF([313]="",1,[313]))*[310]*[312])+(((IF([313]="",1,[313]))*[310])*[312])/100*20,((IF([313]="",1,[313]))*[310])*[312] )

В формуле добавлена проверка поля "количество", если поле пустое, то подставляется значение = 1
IF([313]="",1,[313])

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

Re: Логические поля в формулах

Добавлено: 15 ноя 2016, 12:02
nikorn
Я тоже считаю стоимость по заказу: для вложенной сущности количество*цена и потом сумма по всем позициям. Видимо, это достаточно общая задача

Re: Логические поля в формулах

Добавлено: 12 янв 2017, 09:54
support
Расширил поля для формулы и в 1.8 будет возможность использовать логические поля и даты в формулах.

Напомните мне после выхода 1.8 чтоб я добавил документацию как это делать:)

Re: Логические поля в формулах

Добавлено: 12 янв 2017, 09:59
nikorn
Поставил напоминалку в календаре Google на февраль. К сожалению, в Руководителе пока этой функции нет. :-)