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, 10:11 | #4 |
Участник
|
А можете ситуацию смоделировать?
Конкретные шаги для воспроизведения? |
|
10.11.2009, 12:57 | #5 |
Читатель
|
Цитата:
У нас в закупке смоделировалось чисто случайно: 10.0100 168338,75 10.0800 347,46 19.0600 30363,50 60.0101 -199049,70 |
|
10.11.2009, 14:08 | #6 |
Сенбернар
|
Цитата:
Я сказал, что даже если она и будет ненулевая - возможны ситуации, когда это не спасет. Если честно, не понял, что это... Чуть подробнее, с расшифровкой - кто есть who - можно?
__________________
Best Regards, Roman |
|
10.11.2009, 14:24 | #7 |
Участник
|
тут либо валюты надо указать с курсами, либо не балансирует, либо я чего-то не понимаю
|
|
10.11.2009, 14:48 | #8 |
Читатель
|
Цитата:
Цитата:
Это проводки в ваучере по накладной. Сумма дебетовых больше кредитовой на одну копейку. Эта копейка и является ошибкой округления. извиняюсь, забыл указать проводку по расхождению Z000.40 -0,01 |
|
10.11.2009, 16:36 | #9 |
Сенбернар
|
Цитата:
X++: this.AddTrans( ledgerVoucherTransObject::newVoucherTrans( this, LedgerPostingType::MSTDiff, accountNum, Dimension, companyInfo::standardCurrency(), transactionTxt.txt(), ledgerTrans.TransDate, 0, 0, -ledgerTrans.AmountMST, 0, NoYes::No, true), false); Цитата:
В связи с этим - вопрос к автору исходного сообщения: что Аксапта вам говорит, конкретно? И что такое вот это: Чем они (цены и стоимости) так сильно отличаются от рожденных в Аксапте?
__________________
Best Regards, Roman |
|
10.11.2009, 17:08 | #10 |
Злыдни
|
Цитата:
- в отдельном журнале фиксируются количества, цены и стоимость с точностью до 4 знаков; - строки копируются из данного журнала в заказ на покупку, в котором точность цен и сумм до 2 знаков. При отсутствии принудительного округления при вставке и последующей обработке накладной выскакивает окно с предупреждением, что возникла неполная корреспонденция.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
10.11.2009, 17:34 | #11 |
Участник
|
|
|
10.11.2009, 17:35 | #12 |
Сенбернар
|
Странно как-то...
Кол-во до 4-го - это золото, наверное. В граммах... Цена до 4-го - это на спички похоже. В штуках, что характерно Стоимость - это LineAmount? - до 4-го - тоже, наверное, спички. Не стеб ни разу, просто не понимаю, зачем оно все одновременно. А совет - все же приведите цены и прочее к привычной Axapta точности. === Вдогонку: а в параметрах ГК - Граница расхождений в основной валюте - сколько? И во вторичной?
__________________
Best Regards, Roman Последний раз редактировалось RVS; 10.11.2009 в 17:43. |
|
10.11.2009, 19:18 | #13 |
Читатель
|
Имелось в виду, что валютная сумма кредитовых проводок должна быть равна валютной сумме дебетовых проводок и так же должны быть равны суммы в основной валюте кредитовых и дебетовых проводок - это условие полного сопоставления. Или нет?
Кстати, у нас создалась такая ситуация в обычной закупке, просто несколько раз создали отгрузочные накладные и частично их сторнировали. Цены с точностью до 2 знаков. Граница расхождения - 1 копейка. Вроде все без криминала... Последний раз редактировалось b_nosoff; 10.11.2009 в 19:24. |
|
10.11.2009, 20:57 | #14 |
Сенбернар
|
Ох...
Цитата:
Цитата:
Цитата:
Цитата:
А заодно - приведите уже сообщение, как именно Аксапта ругается. Не могу воспроизвести, хоть сообщение поищу
__________________
Best Regards, Roman |
|
11.11.2009, 07:20 | #15 |
Читатель
|
Я тоже . Имелась в виду именно корреспонденция.
например метод checkBeforeBond класса LedgerBondServer_RU Последний раз редактировалось b_nosoff; 11.11.2009 в 07:27. |
|
11.11.2009, 09:21 | #16 |
Злыдни
|
Я понимаю, что некоторые торгуют и покупают только штуками с круглой ценой. Но предположите ситуацию, когда есть плановая сумма закупки, которая рассчитывается от суммы продажи по обратной рентабельности, например, в 30%. А фактическая стоимость закупки фиксируется как плановая плюс отклонение факта от плана.
Системный EDT Amount имеет приличную размерность в десятичных знаках и отображает 12 из них, а вот EDT AmountCur может быть настроен, например, на отобржение только 2 знаков после запятой. Как повторить ошибку? Попробуйте с помощью SQL указать в LineAmount сумму с множеством знаков после запятой. Обработайте накладную. Думаю вы получите тот же результат, что и у меня. "Тупит" именно корреспонденция, т.к. при международной функциональности просто создается проводка по счету ошибок округления без поиска "второй" половины.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
11.11.2009, 09:26 | #17 |
Участник
|
Есть ли возможность воспроизвести ситуацию в рамках стандартного функционала?
|
|
11.11.2009, 09:46 | #18 |
Злыдни
|
Я думаю, что можно. Для этого придется у EDT AmountCur увеличить количество знаков после запятой. А вот порядок округления в валюте оставить прежним (общее округление и округление по покупке). Протестировать сейчас не могу.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
11.11.2009, 09:50 | #19 |
Участник
|
под стандартным функционалом я имею ввиду немодифицированное приложение
|
|
11.11.2009, 18:34 | #20 |
Злыдни
|
Цитата:
2. В округлениях для валюты в Аксапте установите общее округление и округление закупки до двух знаков. 3. Создайте закупку и в строке закупки для суммы установите сумму с четвертым знаком после запятой (для немодифицированного приложения для AmountCur установлено кол-во знаков Auto, т.ч. четыре знака должно быть доступно). 4. Проведите разноску. Думаю, что Вы отловите ошибку (проверить в офисе перечисленную последовательность не могу).
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
Теги |
корреспонденция, округление |
|
|