CORRECTSUM

Материал из GB wiki
Версия от 11:12, 27 марта 2010; Bars (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Deprecated.png Морально устарело!
Эта функция сохранена только из соображений совместимости.
Вместо нее настоятельно рекомендуется использовать датасет GoodiesAndCertificates, который содержит разбивку документа по сериям, и все суммы в нем бьются

Вычисляет коррекцию для числового поля, в связи с потерями при округлении сумм. Была реализована для решения конкретной проблемы: при создании товарного документа (до разбивки по сериям) рассчитываются цены и суммы по строчке таким образом, чтобы получить круглую цену без НДС и сумму НДС. Если потом печатать форму с разбивкой по сериям, то может возникнуть ошибка округления, в результате чего сумма по строкам не будет совпадать с суммой документа.

Синтаксис

CORRECTSUM (Имя поля,Текущее значение,Итоговая сумма)

Аргументы

Имя поля
Строка, являющаяся именем поля, значение в котором требуется скорректировать.
Текущее значение
действительное число, текущее значение поля.
Итоговая сумма
действительное число, итоговая сумма.

Тип результата

Действительное число.

Примеры

SAmount=Amount(Quantity*FPrice,1)
Goodies.FNDSSum=IIF(ISNULL(?BaseOneTaxAmt2),0,?BaseOneTaxAmt2)+
IIF(ISNULL(?BaseOneTaxAmt3),0,?BaseOneTaxAmt3)
SNDSSum=Amount(SAmount*FNdsPercents/100+CorrectSum("SNdsSum", SAmount*FNdsPercents/100,Goodies.FNDSSum),1)
При этом значение CORRECTSUM во всех строках, кроме последней, будет равно 0, а в последней - недостающему числу.