Similar presentations:
1C:ERP: Управление предприятием. Решение проблемы округления количества
1.
1C:ERP Управление предприятиемРешение проблемы округления количества
2. Цели проекта
Проблема точности (паразитической дробной части).https://partners.v8.1c.ru/forum/t/1998287/m/1998287
Указываем 2 позиции продукции:
- Номенклатура А (единица хранения - "упак", штуки в системе зарегистрированы как упаковки, содержащие 1/6
упак (1 упак составляет 6 шт)), количество 420000 шт. При пересчёте получаем 70000,014 упак
- Номенклатура Б (единица хранения - "упак", штуки в системе зарегистрированы как упаковки , содержащие
1/12 упак (1 упак составляет 12шт)), количество 18000 шт. При пересчёте получаем 1499,999 упак
Проект предлагает решение этой проблемы на уровне запросов.
2
3. Цели проекта
34. Решение проблемы точности
Исходя из правил механизма балансировки точности выходит, что при операции деления разрядность, до которой небудет применяться балансировка точности, не должна превышать максимальную. Возникает такая система уравнений:
p1 = p2
d1 = d2
p1 = 2 * d1
p2 = 2 * d2
p3 = p1 + d2
Учитывая, что
p3 = 38
получаем
3 * d1 = 38
Где p1 – общая размерность делимого, d1 – размерность дробной части делимого, p2 – общая размерность делителя,
d2 – размерность дробной части делителя, p3 – общая размерность частного, d3 – размерность дробной части частного.
Отсюда следует, что оптимальную разрядность, которая не будет деградировать в результате платформенной
балансировки, можно разделить на три части, две из которых будут обозначать общую разрядность числа (p) и третья –
дробную часть (d):
38/3 = ~13
27 – целая, 11 – дробная
4
5. Проектное решение
56. Ограничения
В незакрытых цепочках в новых документах, основания которых были созданы при старойточности:
Могут появляться сообщения о превышении допустимой точности округления
Решение: увеличить допустимое отклонение отгрузки и приемки мерных товаров.
Может заполняться количество товара с паразитической дробной частью (420000,084).
Происходит и на текущей точности расчёта количества.
Решение: перещёлкнуть количество товара в строке документа-основания, чтобы в его движения
записалось целое количество упаковок.
6
software