Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 июл 2024, 11:36

Размер наценки в зависимости от закупочной цены (КА 2)

Автор Дмитрий Опалев, 21 авг 2020, 17:04

0 Пользователей и 1 гость просматривают эту тему.

Дмитрий Опалев

Здравствуйте!
Пытаюсь реализовать наценку в зависимости от цены закупочной. Не получается использовать условные операторы.
Пример отсюда не работает, как и любые другие, найденные в интернете.
Это:
Если (ИСТИНА) Тогда [Закупочная]*2
Если ИСТИНА Тогда [Закупочная]*2
Тоже не работает, хотя это уже простейший пример, дальше некуда.
Выдает:
ЦитироватьВ формуле обнаружены ошибки. Проверьте формулу. Формулы должны составляться по правилам написания выражений на встроенном языке 1С:Предприятия.
Больше никакой дополнительной информации. В чем я ошибаюсь?

alexandr_ll

Цитата: Дмитрий Опалев от 21 авг 2020, 17:04
Здравствуйте!
Пытаюсь реализовать наценку в зависимости от цены закупочной. Не получается использовать условные операторы.
Пример отсюда не работает, как и любые другие, найденные в интернете.
Это:
Если (ИСТИНА) Тогда [Закупочная]*2
Если ИСТИНА Тогда [Закупочная]*2
Тоже не работает, хотя это уже простейший пример, дальше некуда.
Выдает:
ЦитироватьВ формуле обнаружены ошибки. Проверьте формулу. Формулы должны составляться по правилам написания выражений на встроенном языке 1С:Предприятия.
Больше никакой дополнительной информации. В чем я ошибаюсь?
А что есть ИСТИНА в приведенной формуле? Задайте переменную и проверяйте ее на истина/ложь.
Если Переменная=ИСТИНА Тогда ЗначениеЦены=Закупочная*2 КонецЕсли;

Дмитрий Опалев

Здравствуйте, alexandr_ll!
ЦитироватьА что есть ИСТИНА
Очень философский вопрос!)
На самом деле истина это булево значение 1. аналогично проверке 1=1, 1>0, они также возвращают ИСТИНУ.

Решение проблемы:
Как оказалось, в данном поле можно заводить только расчетное выражение. Потому я использовал следующий прием:
([Закупочная]<500)*[Закупочная]*1.3+
(([Закупочная] >= 500) И ([Закупочная]<1500))*[Закупочная]*1.2+
(([Закупочная] >= 1500))*[Закупочная]*1.1

Суть следующая: первым идет логическое выражение, которое возвращает 0 или 1 в зависимости от того, попадает цена в нужный диапазон или нет.
Если вернется 1, умножаем на закупочную цену и на коэффициент.
Все остальные случаи вернут ноль, что приплюсуется к конечному варианту и ничего не изменит.


Похожие темы (5)

Рейтинг@Mail.ru

Поиск