|
20.02.2009, 09:39 | #1 |
Злыдни
|
Отсутствие корреспонденции при наличии округления
Версия DAX 4.0 Kernel: 4.0.2501.116 Application: 4.0.2501.122
При разноске закупки, по которой возникли округления (цены и стоимости тянутся в строки закупки из другого источника, а не вводятся вручную), с завидной постоянностью создаются неоткорреспондированные проводки. Счет учета округлений настроен в системных счетах. Самое простое решение - округлять значения при вставке в строки. Но может быть кто-нибудь подскажет, где искать кривой код или настройку.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
09.11.2009, 07:00 | #2 |
Читатель
|
Происходит это потому, что проводка округления создается только с суммой в основной валюте, в то время как валютная сумма равна нулю. Кривой код, как мне кажется, в LedgerBondServer_RU.addBondMSTDiff(). Непонятно, какой был смысл вложен в нулевую валютную сумму...
|
|
10.11.2009, 08:38 | #3 |
Сенбернар
|
Цитата:
И оно, похоже, правильное. Все, как в реальной жизни. Хотя - и тут возможны грабли, с частичными поставками - оплатами...
__________________
Best Regards, Roman |
|
10.11.2009, 12:57 | #4 |
Читатель
|
Цитата:
У нас в закупке смоделировалось чисто случайно: 10.0100 168338,75 10.0800 347,46 19.0600 30363,50 60.0101 -199049,70 |
|
10.11.2009, 14:08 | #5 |
Сенбернар
|
Цитата:
Я сказал, что даже если она и будет ненулевая - возможны ситуации, когда это не спасет. Если честно, не понял, что это... Чуть подробнее, с расшифровкой - кто есть who - можно?
__________________
Best Regards, Roman |
|
10.11.2009, 14:48 | #6 |
Читатель
|
Цитата:
Цитата:
Это проводки в ваучере по накладной. Сумма дебетовых больше кредитовой на одну копейку. Эта копейка и является ошибкой округления. извиняюсь, забыл указать проводку по расхождению Z000.40 -0,01 |
|
10.11.2009, 10:11 | #7 |
Участник
|
А можете ситуацию смоделировать?
Конкретные шаги для воспроизведения? |
|
10.11.2009, 14:24 | #8 |
Участник
|
тут либо валюты надо указать с курсами, либо не балансирует, либо я чего-то не понимаю
|
|
11.11.2009, 09:21 | #9 |
Злыдни
|
Я понимаю, что некоторые торгуют и покупают только штуками с круглой ценой. Но предположите ситуацию, когда есть плановая сумма закупки, которая рассчитывается от суммы продажи по обратной рентабельности, например, в 30%. А фактическая стоимость закупки фиксируется как плановая плюс отклонение факта от плана.
Системный EDT Amount имеет приличную размерность в десятичных знаках и отображает 12 из них, а вот EDT AmountCur может быть настроен, например, на отобржение только 2 знаков после запятой. Как повторить ошибку? Попробуйте с помощью SQL указать в LineAmount сумму с множеством знаков после запятой. Обработайте накладную. Думаю вы получите тот же результат, что и у меня. "Тупит" именно корреспонденция, т.к. при международной функциональности просто создается проводка по счету ошибок округления без поиска "второй" половины.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
11.11.2009, 09:26 | #10 |
Участник
|
Есть ли возможность воспроизвести ситуацию в рамках стандартного функционала?
|
|
11.11.2009, 09:46 | #11 |
Злыдни
|
Я думаю, что можно. Для этого придется у EDT AmountCur увеличить количество знаков после запятой. А вот порядок округления в валюте оставить прежним (общее округление и округление по покупке). Протестировать сейчас не могу.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
11.11.2009, 09:50 | #12 |
Участник
|
под стандартным функционалом я имею ввиду немодифицированное приложение
|
|
11.11.2009, 18:34 | #13 |
Злыдни
|
Цитата:
2. В округлениях для валюты в Аксапте установите общее округление и округление закупки до двух знаков. 3. Создайте закупку и в строке закупки для суммы установите сумму с четвертым знаком после запятой (для немодифицированного приложения для AmountCur установлено кол-во знаков Auto, т.ч. четыре знака должно быть доступно). 4. Проведите разноску. Думаю, что Вы отловите ошибку (проверить в офисе перечисленную последовательность не могу).
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
12.11.2009, 14:29 | #14 |
Сенбернар
|
Цитата:
Дайте живую последовательность действий, при которых ситуация гарантированно воспроизводится. До этого - вряд ли кто-нить этим подробно заниматься будет
__________________
Best Regards, Roman |
|
01.07.2010, 13:39 | #15 |
Читатель
|
А вот и последовательность
Наконец-то поймана
Есть закупка на 210 единиц некой номенклатуры по цене 19,57. Поставщик выписал накладную на сумму 4110,17. Закупка маркирована с продажами на количества 21 + 44,1 + 47 + 11 + 2,9 + 84. И аксапта при подсчете суммы по складским проводкам получает 4110,18 |
|
03.07.2010, 06:53 | #16 |
Читатель
|
На мой взгляд есть два пути решения: либо сломать проверку корреспонденции, чтобы она проверяла только на остаток в основной валюте (но тогда будут отклонения в валютных суммах), либо все таки писать валютную сумму в проводку с отклонением (что работает, и мне кажется правильным).
|
|
02.08.2010, 16:55 | #17 |
Участник
|
А можно все-таки получить список проводок до корреспонденции с параметрами:
- валюта проводки - основная валюта - вторичная валюта для каждой проводки: - счет - суммы в этих валютах и, как я понимаю, ошибка возникает при обработке накладной поставщика? |
|
03.08.2010, 06:37 | #18 |
Читатель
|
Список проводок
Цитата:
Валюта проводки и основная валюта - рубли. Вторичной нет. именно так UPD: на текущий момент мы выбрали второй вариант, т.е. указание валютной суммы в проводке с отклонением. Последний раз редактировалось b_nosoff; 03.08.2010 в 06:39. |
|
03.08.2010, 10:03 | #19 |
Участник
|
А если отключить корреспонденцию, такое разносится? По-моему тут проблема не в корреспонденции, а в том, что в валюте проводки суммы не балансируют - может, надо просто поправить алгорим распределения сумм при обработки маркировки, чтобы ошибка округления отнеслась на одну из проводок?
|
|
03.08.2010, 11:46 | #20 |
Читатель
|
разносится. Только потом и ручной корреспонденцией ничего не добиться - копейки так и мешают.
Цитата:
X++: this.parmCostAmountCur(Currency::amount(saveCostAmount * transQty / financial)); Не знаю даже, есть ли смысл тут пытаться сломать... UPD: похоже источнег зла - модификация интегратора... Последний раз редактировалось b_nosoff; 03.08.2010 в 11:53. |
|
Теги |
корреспонденция, округление |
|
|