И еще раз об округлении



Posted by Анатолий Анимица (194.177.32.69) on February 05, 2001 at 15:20:17:

In Reply to: Теория.. FIFO posted by Валентин, Донецк on February 05, 2001 at 11:47:20:

Будем считать, что мы разобрались с неоправданными затратами времени на пересчет состояния сервера. В своем предыдущем сообщении я уже рассказывал, что лучше потратить много времени на один шаг цикла, но число этих шагов ограничить, допустим, количеством субсчетов счета. Тогда вы получаете надежную верхнюю оценку потребного на пересчет времени.
Таеперь об округлении. Бухгалтерский учет в документах - это "столбики", сумма строк в которых точно равна сумме "Итого" - до сих пор, и это был единственный алгоритм проверки "мы не пропустили ни одной строки, когда считали на счетах" (плюс, конечно, такое же равенство в столбце "Итогов"). Контрольная сумма, как сказал бы Домарощинер. Но! Теперь это нужно только как дань традиции. Сумма списания с десятью знаками после запятой и точная строка "итого" - никогда не совпадут при сложении округленных значений. Поэтому я экспериментально ввел в счет-фактуры примечание следующего содержания: "цены без НДС и акцизов, суммы без НДС, НП и акцизов показаны округленно (справочно), итоговые суммы в столбцах X1..XN - точные, поэтому могут не совпадать при ручном контроле сумм". Пока никто не отказался. И Аркадий Водяник прав - не нужно округлять там, где не нужно. Единственное послабление - когда автоматически списываешь себестоимость, и сумма списания сильно дробная, ну можно округлить до копейки. ТОгда нужно всего-навсего при исчерпании проконтролировать остаток на "меньше полкопейки" и сунуть этот остаток в последнюю сумму списания, чтобы от нее на счете и духу не осталось. И тогда все красиво в "сальдо минус бульдо равно нулю".

Последнее замечание Валентину - и другим любителям применять алгоритмы не там и не так. Если я правильно помню, моя (а еще Володи Секретева и еще Сережи Васеленко и еще у многих есть аналоги) программка округления стоит в FIRST.RPT! Значит, ее не вызвать в файле-коэффициенте, и значит, некому будет жаловаться на затраты времени на округление в дополнение к прочим бедам. А затраты на выполнение форм - ими можно просто пренебречь, кроме форм, которые выполняются при вводе операций - их реактивность подчас важна не меньше, чем собственно, скорость пересчета сервером своего состояния.

Вот пока и все на сегодня.

AAA
P.S. Временно 2001R не существует в каталоге загрузки - есть еще необходимые переделки, немного подождите.


Пpишедшие ответы: