06.10.2021, 16:55 | #1 |
Участник
|
Уменьшение количества знаков после десятичной точки в складской единице измерения - последствия
Дано:
Есть складская единица измерения на всех номенклатурах - метры. Точность для метров - 4 знака после запятой. Недавно стали использовать в заказах на продажу ярды, но у ярдов точность - 2 знака после запятой, так получилось. Периодически вылезают ошибки, связанные с округлениями, типа "Physical on/hand Color="123" .... , Serial number = "W90564/4" 8888: 25,40 cannot be reserved because only 25,40 are available in stock". Или, скажем, при оформлении возврата заказа на продажу, после вызова Split в Item arrival журнале, вылезает ошибка "The quantity that you have entered exceeds the quantity that is possible to return." В SQL базе видны остатки с точностью до 4-х знаков, которые в Аксапте отображаются только с двумя. Клиент предлагает уменьшить количество знаков после запятой у метров с 4 до 2 и пересчитать остатки на складе для всех "проблемных" номенклатур, чтобы округлить до сантиметров. Утверждают, что проблемные сценарии начинают после такого отрабатывать. Вопросы: Какие косяки потенциально могут вылезти в результате снижения точности измерения в метрах? На вскидку, могут ли заартачиться уже созданные документы, например частично завершенные заказы, в которых есть accounting distributions, так-что их невозможно будет провести? Или всё-равно неизбежны ошибки округления тут и там, потому-что в метре 1,09361 ярдов? Может лучше наоборот увеличить точность ярдов до 4 знаков? Поделитесь размышлениями на эту тему, пожалуйста. |
|
06.10.2021, 17:41 | #2 |
Участник
|
Не совсем понятен сценарий приводящий к ошибке.
Само по себе использование разных единиц измерение на складе и в заказе это норма для системы. То что разные единицы измерения могут иметь разную точность - это тоже норма. Известная проблема, то что при выводе сообщения об ошибке происходит округление при преобразовании числа в строку. Функция strfmt округляет до двух знаков. Возможно доработка вывода сообщения об ошибке прояснит реальную ситуацию. Ещё на сколько я помню в заказах на продажу есть поле с количеством в складских единицах измерения. Возможно вам имеет смысл корректировать его в случае ошибки округления |
|
|
За это сообщение автора поблагодарили: Stitch_MS (5). |
06.10.2021, 18:12 | #3 |
Administrator
|
На мой взгляд - система штатно в нормальном режиме поддерживает только 2 знака после запятой. Если нужно больше - то нужно использовать параметр "Единица измерения цены" для того, чтобы задать допустим 123,12 рублей за 1000 метров вместо того, чтобы задавать 0,12312 рублей за 1 метр. Да, часто встречается, что система дорабатывается в части увеличения разрядности, но в конечном счете это где-нибудь вылезает боком.
Поэтому тут лучше исключить большее количество знаков после запятой. Количество все равно переводится деньги в конечном счете, а они имеют достаточно жесткое ограничение в 2 знака после запятой. Поэтому нет смысла учитывать количество с большим количеством знаков. А даже количество очень сложно подсчитать более детально, нежели с двумя знаками после запятой (например, ткань в погонных метрах никто не выверяет с точностью до миллиметра.)
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: Stitch_MS (5). |
06.10.2021, 18:37 | #4 |
Участник
|
Обратите внимание еще на методы (если они используются в последней версии аксапты)
\Classes\InventAdj\settleQtyDiff \Classes\InventAdj\settleQtyDec Может повлиять на закрытие склада. Но там точность с запасом. |
|
|
За это сообщение автора поблагодарили: Stitch_MS (5). |
Теги |
d365fo, единица измерения, точность |
|
|