Цели проекта
Цели проекта
Решение проблемы точности
Проектное решение
Ограничения

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. Цели проекта

3

4. Решение проблемы точности

Исходя из правил механизма балансировки точности выходит, что при операции деления разрядность, до которой не
будет применяться балансировка точности, не должна превышать максимальную. Возникает такая система уравнений:
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. Проектное решение

5

6. Ограничения

В незакрытых цепочках в новых документах, основания которых были созданы при старой
точности:
Могут появляться сообщения о превышении допустимой точности округления
Решение: увеличить допустимое отклонение отгрузки и приемки мерных товаров.
Может заполняться количество товара с паразитической дробной частью (420000,084).
Происходит и на текущей точности расчёта количества.
Решение: перещёлкнуть количество товара в строке документа-основания, чтобы в его движения
записалось целое количество упаковок.
6
English     Русский Правила