Округления цен
В системе для каждой валюты может быть задано несколько условий округления, которые могут быть выбраны для округления цен. Условия округления задаются на форме Цены - Справочники - Округления цен.
Наименование (валюта) - в поле нужно выбрать валюту, для которой будут действовать настроенные условия округления.
Условие округления - в таблице по кнопке Добавить создаются условия округления, которые можно использовать для округления цен в установленной валюте. Можно настраивать столько условий округления, сколько необходимо для работы. Для каждого условия округления создается строка, в которой указываются следующие параметры:
Наименование - понятное название условия округления, по которому его можно будет выбрать для использования в виде цен.
Делитель - нужно указать делитель, который будет использоваться для расчета округления.
Нижний порог - минимальное значение цены, от которого начнет рассчитываться округление.
Количество знаков после запятой - количество знаков в дробной части цены.
По умолчанию - в тех местах, где в явную не задается условие округления, будет использоваться округление до количества знаков после запятой, указанное для условия, для которого отмечен этот признак.
Диапазон цен - для каждого условия округления в этом блоке можно задавать диапазоны цен, для которых будут действовать свои параметры расчета округления. Для этого нужно указать:
Цена от - нижний порог диапазона цены.
Делитель - делитель, который используется для расчета округления в данном диапазоне. Если делитель не отличается от делителя, указанного для условия округления, то поле можно оставить пустым, система применит делитель из настроек условия округления.
Остаток до - верхняя граница остатка при делении входной цены на делитель.
Округленная цена интервала - часть цены, которая добавляется к разнице входной цены и остатка для получения результата округления (см. пример расчета).

Рис. 1 Форма Округление цен
Механизм округления работает следующим образом:
- Если входная цена меньше Нижнего порога, то к ней применяется только округление до заданного Количества знаков после запятой. Если количество знаков отрицательное, то округление идет до 10, 100 и так далее. При округлении до заданного **Количества знаков после запятой **применяется обычное математическое округление. Например, если установлено округление до 2 знаков после запятой, то 5,236 будет округлено до 5,24, а 5,234 до 5,23.
- Если входная цена больше либо равна Нижнему порогу, то
- Находится Диапазон цен, в который он попадает. Если диапазоны цен не настроены или ни один диапазон не подходит, то применяется округление до заданного **Количества знаков после запятой **(см выше).
- Берется остаток от деления входной цены на Делитель. Остаток определяется по формуле: входная цена - ((входная цена/делитель с округлением вниз до целого) * делитель)
- Отбираются все интервалы где цена выше Цены от и остаток от деления на делитель меньше Остатка до (они подсвечиваются желтым на форме). Для расчета используется последний введенный в таблицу интервал из отобранных.
- Рассчитывается цена с округлением по формуле: входная цена - остаток + Округленная цена интервала.
Пример расчета округления рис. 1:
При входной цене 55,48 используется последний подходящий интервал со значениями: Делитель=1, Остаток до <=1, Округленная цена интервала = 0,99
55.48/1 с округлением вниз до целого = 55
Остаток= 55,48 - 55*1 = 0,48
Цена с округлением = 55,48-0,48+0,99=55,99
Тестовая форма
Для того, чтобы проверить, правильно ли настроены правила расчета округлений, можно использовать тестовую форму: в поле Введите число для примера нужно ввести входную цену, а в поле Результат отобразится, как цена будет округлена.