Можно по-разному использовать формулы. Их можно делать большими и сложными, при этом используя минимум полей. А можно создавать маленькие и простые формулы, но используя при этом дополнительные поля, для хранения промежуточных вычислений. Дополнительные поля не обязательно показывать на карточке.
Простые формулы
Возьмем для примера следующую карточку продажи.
![](https://supasoft.ru/wp-content/uploads/2022/02/33265408.png)
На ней имеются три поля с формулами. Формулы достаточно просты, чтобы в случае ошибки легко найти ее.
Сложные формулы
Вам может показаться, что поле Стоимость на карточке лишнее и вы захотите его убрать. И тут у вас два варианта:
- Просто убрать поле с карточки. При этом функции все равно будут работать, ведь для этого не обязательно иметь все поля с формулами на карточке.
- Удалить поле объекта и изменить формулу для поля Стоимость со скидкой.
Рассмотрим второй вариант. Удалим поле Стоимость с карточки и из объекта:
![](https://supasoft.ru/wp-content/uploads/2022/02/25012451.png)
Формула для поля Стоимость со скидкой будет теперь следующая:
![](https://supasoft.ru/wp-content/uploads/2022/02/48584364.png)
Как видите, вместо поля Стоимость (оно использовалось в формуле два раза) теперь дополнительное вычисление Цена * Количество. Формула стала заметно сложнее и искать ошибку в ней станет труднее.
Много полей или сложные формулы
Для принятия решения о том, нужны ли промежуточные поля и стоит ли усложнять формулы имейте ввиду следующее:
- Простые формулы проще отлаживать.
- Промежуточные поля округляют значения. Иногда это нужно, а иногда нет.
- Промежуточные поля не обязательно показывать на карточке.
- Удалить промежуточные поля всегда можно, но если их добавить позже, то в старых данных промежуточные поля будут пустые.
- Некоторые поля добавлять очень даже рекомендуется. Например, поле Цена, в которое копируется цена из справочника продуктов. Если вы не добавите это поле в объект продажи, то не узнаете какая цена была в данной продаже. Кроме того, при изменении количества или скидки данная карточка пересчитается по текущей цене.