|
17.05.2013, 00:58 | #1 |
Участник
|
Округление до 5 позиций в ед.изм
На осн ед. изм товара можно указать количество цифр после запятой.
Мы собираемся во всю использовать этот функционал (нужно округлять до 5 знаков) На сколько он надежно работает? На первый взгляд пока проблем не замечено, но Оч боюсь, что где-нибудь потом обнаружится баг, что в где-нибудь в стандартных пересчетах результаты случайно до 2 позиций округляются, и тогда округление до 5 в других местах потеряет смысл. AX2009 |
|
17.05.2013, 01:44 | #2 |
Участник
|
с количеством сложностей вроде нет
сложности начинаются, если ваши дробные единицы имеют стоимость/цену меньше копейки. в финансах начинаются "необъяснимые" для бухгалтерии явления. прежде вего в СФ и накладной. |
|
17.05.2013, 10:58 | #3 |
Участник
|
Цитата:
|
|
|
За это сообщение автора поблагодарили: Daiver (1), ikopyl (2). |
17.05.2013, 11:50 | #4 |
Участник
|
Присоединюсь, проблем будет много. Причем "в одном месте" это так просто не поправишь.
__________________
Ivanhoe as is.. |
|
17.05.2013, 12:34 | #5 |
Участник
|
Бизнес построен таким образом. что большинство товара состоит из упаковок, которые состоят из коробок поменьше. Поэтому по каждой номенклатуре указывается сколько коробок у упаковке.
Например, если упаковка Товара1 состоит из 6 коробок и продали 1 упаковку и 2 коробки, то пользователь должен вводить 1.2 , а не 1.33. Сейчас это так и реализовано . что когда пользовватель вводит 1.2, то это кол-во пересчитывается в кол-во упаковок и получается 1.33(3), кот попадает в стд поле аксапты Qty(например, на в строках заказа). Ест-но возникают тут же проблемы с округлением, кот решено нивелировать количеством знаков после запятой. В текущей системе(кот до аксы была) использовалось округление до 5 и "работало хорошо". Меня последствия беспокоят. Не думаю, что требование такое уж редкое, поэтому, если есть проверенные практикой варианты реализации, расскажите. |
|
17.05.2013, 12:53 | #6 |
Участник
|
Цитата:
По сути проблемы: А нельзя в качестве складской еденицы измерения выбрать коробки, а не упаковки? Последний раз редактировалось S.Kuskov; 17.05.2013 в 13:11. |
|
|
За это сообщение автора поблагодарили: lev (3). |
17.05.2013, 16:17 | #7 |
Участник
|
Цитата:
Причем, 6 - это только один из примеров. Тут в ходу также упаковки по 12 коробок внутри , по 60, по 15 и тд. Теперь продать если: 15 упаковок(по 12) и 7 коробок превратятся превратятся в 187. Последний раз редактировалось IKA; 17.05.2013 в 16:24. |
|
17.05.2013, 16:22 | #8 |
Участник
|
Цитата:
Если продали 15 упаковок и 2 коробки, заведите две строки. Не подходит? Последний раз редактировалось S.Kuskov; 17.05.2013 в 16:25. |
|
|
За это сообщение автора поблагодарили: ikopyl (4). |
20.05.2013, 10:00 | #9 |
Гость
|
Цитата:
При этом система упорно не различает 1.2 и 1.20. Нехорошая, негодная система. Хотя, если подумать и вводить число в строковое поле, а потом разбирать, то можно отличить 1.2 и 1.20. Шутка удалась лишь наполовину ( Последний раз редактировалось Кирилл; 20.05.2013 в 10:07. |
|
20.05.2013, 11:40 | #10 |
Administrator
|
А в InventSum у вас что хранится? 1.33? Или всё же есть отдельные поля для упаковок и коробок?
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
21.05.2013, 18:02 | #11 |
Участник
|
На данный момент 1.33(3).
Точней, 1.33333, тк на Unit большинства номенклатур установлено округление до 5 знаков + поле(display method), кот переводит это в Упаковки/Коробки . Метод основан на том, что при определенной точности округления , зная возможный максимум коробок в упаковке(например, товаров с больше 100 коробок в упаковке не бывает), можно из получаемого real установить точное целое количество упаковок и коробок. т.е по сути: если наше число x, то это результат округления до 5 любого числа в диапазоне от x-0.000005 до x+ 0.000005.(отбросим целую часть, тк с ней все ясно, это целое кол-во упаковок) Соответственно, нужно, чтобы неравенству: x-0.000005 <= y/(количество корВУпак) < x+ 0.000005 не могло удовлетворять два целых y. То есть 1<(0.00001)*(количество корВУпак). Отсюда уже выводим сколько нужно знаков после запятой(в примере выше было 5) при заданном количестве корВУпак. Проблема только в том. что из-за многочисленных пересчетов могут накапливаться погрешности, что также на данный момент неплохо нивелируется большой точностью. Именно поэтому важно, чтобы стандартный функционал поддержки округления, установленный для Unit, работал, т.е нигде "случайно" не обрезались данные. И именно поэтому я создала этот топик. Мне кажется. что добавлять везде в системе дополнительно 2 поля чревато. То есть просто для сохранения историч данных это хорошо, но полагаться на их значения невозможно, тк можно легко упустить инициализацию поля в ком-нить стд куске кода, что скажется потом и на InventSum в том числе.. |
|
21.05.2013, 18:47 | #12 |
Участник
|
|
|
17.05.2013, 13:59 | #13 |
Участник
|
IKA, а разве можно в накладной писать 1.2 - это не соответствует единице измерения "Коробка", это будет "1 коробка 2 штуки". Например, на услуги пишут 1.5 часа, а не 1.30.
Последний раз редактировалось mnt_dx; 17.05.2013 в 14:05. |
|
17.05.2013, 16:14 | #14 |
Участник
|
Именно так тут в накладной и пишут. Есть две колонки : упаковки и коробки.
В данном случае будет: продано: 1 упаковка и 2 коробки, а не 1.33333(3) упаковки |
|
18.05.2013, 14:25 | #15 |
Участник
|
Мне кажется, что тут не стоит смешивать единицы измерения продажи и складской учет.
Например, в поставках фармацевтики есть как первичные упаковки, так и заводские упаковки, так и цеховые упаковки. Но покупателям всегда выставляются документы в первичных упаковках. От поставщиков всегда приходят заводские упаковки. А вот для подбора на складе используются все эти сущности для оптимизации подбора в зависимости о количества заказов клиента. |
|
18.05.2013, 20:44 | #16 |
Участник
|
ИМХО, проще в какой-нибудь форме типа "Создание строк заказа" сделать две колонки - "Коробки" и "Упаковки", а далее пусть система сама создаст ДВЕ строки: первая - на коробки, вторая - на упаковки.
|
|
|
За это сообщение автора поблагодарили: IKA (1), mnt_dx (2). |
21.05.2013, 18:27 | #17 |
Administrator
|
Ок. Тогда представьте следующую ситуацию.
Допустим, в упаковке у вас 10 коробок. Предположим, что было два прихода: первый из 1 упаковки и 3 коробок, а второй из 1 упаковки и 8 коробок. Тогда в InventSum у вас будет храниться 3.1, то есть 3 упаковки и 1 коробка, что, очевидно, не соответствует реальному количеству на складе, которое равно 2 упаковкам и 11 коробкам. Кстати, заметьте относительно вашего примера про футы и дюймы, что в системах длина обычно хранится именно как 42 дюйма и лишь для отображения переводится в 3'7".
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
|
За это сообщение автора поблагодарили: S.Kuskov (1). |
21.05.2013, 18:40 | #18 |
Участник
|
Количество коробок в упаковке не меняется у товара.
Если товар по-другому расфасован, то считается другим товаром. |
|
22.05.2013, 09:23 | #19 |
Участник
|
Цитата:
И не факт, что это не правильно. Возможно у вас никогда не вскрывают следующую коробку до того пока не израсходуется предыдущая. И тогда не имеет смысла "Наличие товара" в в разрезе единиц измерения |
|
|
За это сообщение автора поблагодарили: IKA (1). |
22.05.2013, 12:14 | #20 |
Administrator
|
Вы, наверное, ещё собираетесь написать, что закупаете товар только упаковками, а не отдельными коробками. Но задумайтесь о том, что приход - это не только закупка. Приходом также является и возврат из заказа, и излишки при инвентаризации.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|