Надеюсь выбрал правильный раздел. Если нет - модераторов прошу перенести (ну или потереть )
Ситуация такая:
Стандартная задача: надо вести учет перемещений и остатков товаров на складах.
Каждый товар может иметь несколько ед.измерений, каждое со своей кратностью относительно одного, "базового".
For example:
Код: Выделить всё
Товар.
шт - коэфф 1. - базовая ед.
упаковка - коэфф 5. (в упак 5 штук)
В регистрах учет ведется в базовых единицах.
В документах фиксирующих перемещения записи делаются в любых ед.изм. товара, при фиксации в регистры все переводится в базовые.
Все пока было хорошо, но... пользователь хочет ввести еще одну единицу, назовем ее "штучка" - которая есть одна треть штуки.
Соотв. в таблице ед.изм. пишем "штучка, коэфф. 0.333" (разрядность коэффициента - 3 знака после запятой).
Соответственно при записи в регистр будут происходить ошибки округления (продано три "штучки", по регистрам прошло 0.999 шт вместо 1 шт и т.д.)
После долгих размышлений придумалась схема такая:
Код: Выделить всё
хранение всех учетных значений в регистрах в виде простых дробей
храниить числитель и знаменатель (если ед.изм. часть базовой).
Т.е. в регистре вместо одного числа, будет 2: кол-во и делитель.
Для базовой и кратных ей ед.изм. делитель равен 1.
Для дробных ед.изм. делитель равен коэфф. деления.
Собственно вопрос наконец.
Имеет ли такая схема право на жизнь? Нигде в литературе и в инете, и в программных решениях такое не встречал. Может там есть какие подводные камни?