Меняем точность округления цены в 1С-Битрикс

, Михаил

Цена/Количество в 1С-Битрикс может округляться до 4 знака. Но что делать, если нам нужна точность до 10 знаков?

Устанавливаем константу /php_interface/init.php define("SALE_VALUE_PRECISION", 10);

В настройках модуля "Интернет-магазин" ставим
Знаков после запятой при выводе количественного значения: Авто

В свойствах таблицы b_sale_basket меняем все длины полей, что содержат 18,4 на 18,10

ALTER TABLE `b_sale_basket` MODIFY `PRICE` decimal(18,10) NOT NULL ;
ALTER TABLE `b_sale_basket` MODIFY `BASE_PRICE` decimal(18,10) NULL DEFAULT NULL  ;
ALTER TABLE `b_sale_basket` MODIFY `QUANTITY` decimal(18,10) NOT NULL DEFAULT "0.0000000000000" ;

Если заказ создаётся через API, а не через админку - то всё хорошо. Если через админку будем менять цену за единицу товара - то всё хорошо, но если "сохранить" без изменений... точность сбросится до 4го знака.