AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.02.2009, 09:39   #1  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
! Отсутствие корреспонденции при наличии округления
Версия DAX 4.0 Kernel: 4.0.2501.116 Application: 4.0.2501.122
При разноске закупки, по которой возникли округления (цены и стоимости тянутся в строки закупки из другого источника, а не вводятся вручную), с завидной постоянностью создаются неоткорреспондированные проводки. Счет учета округлений настроен в системных счетах.
Самое простое решение - округлять значения при вставке в строки. Но может быть кто-нибудь подскажет, где искать кривой код или настройку.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 09.11.2009, 07:00   #2  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Происходит это потому, что проводка округления создается только с суммой в основной валюте, в то время как валютная сумма равна нулю. Кривой код, как мне кажется, в LedgerBondServer_RU.addBondMSTDiff(). Непонятно, какой был смысл вложен в нулевую валютную сумму...
Старый 10.11.2009, 08:38   #3  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
Происходит это потому, что проводка округления создается только с суммой в основной валюте, в то время как валютная сумма равна нулю. Кривой код, как мне кажется, в LedgerBondServer_RU.addBondMSTDiff(). Непонятно, какой был смысл вложен в нулевую валютную сумму...
Даже ненулевая сумма в валюте не всегда спасет. Пример: округление в валюте компании (рубль) = 0.0001 коп. Чему равно округление в долларах?

Цитата:
Сообщение от KiselevSA Посмотреть сообщение
Самое простое решение - округлять значения при вставке в строки. Но может быть кто-нибудь подскажет, где искать кривой код или настройку.
И оно, похоже, правильное. Все, как в реальной жизни. Хотя - и тут возможны грабли, с частичными поставками - оплатами...
__________________
Best Regards,
Roman
Старый 10.11.2009, 12:57   #4  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от RVS Посмотреть сообщение
Даже ненулевая сумма в валюте не всегда спасет. Пример: округление в валюте компании (рубль) = 0.0001 коп. Чему равно округление в долларах?
Я не говорил, что надо делать пересчет из одной валюты в другую. Я бы, например, брал непосредственно ошибку округления в валюте.

Цитата:
Сообщение от belugin Посмотреть сообщение
А можете ситуацию смоделировать?
Конкретные шаги для воспроизведения?
У нас в закупке смоделировалось чисто случайно:
10.0100 168338,75
10.0800 347,46
19.0600 30363,50
60.0101 -199049,70
Старый 10.11.2009, 14:08   #5  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от b_nosoff Посмотреть сообщение
Я не говорил, что надо делать пересчет из одной валюты в другую. Я бы, например, брал непосредственно ошибку округления в валюте.
Вы поругали Аксапту, сказав, что не понимаете, почему валютная сумма в проводке нулевая.
Я сказал, что даже если она и будет ненулевая - возможны ситуации, когда это не спасет.

Цитата:
Сообщение от b_nosoff Посмотреть сообщение
У нас в закупке смоделировалось чисто случайно:
10.0100 168338,75
10.0800 347,46
19.0600 30363,50
60.0101 -199049,70
Если честно, не понял, что это... Чуть подробнее, с расшифровкой - кто есть who - можно?
__________________
Best Regards,
Roman
Старый 10.11.2009, 14:48   #6  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от RVS Посмотреть сообщение
Вы поругали Аксапту, сказав, что не понимаете, почему валютная сумма в проводке нулевая.
Я, может быть из-за недостаточного своего опыта, считаю проводки с неуказанной валютной суммой неправильными. При текущей реализации механизма обработки расхождений других проводок не генерируется. Механизм корреспонденции рассчитан на совпадение обеих сумм (валютной и MST). И на мой взгляд есть два выхода - либо исправить механизм обработки расхождений, либо мириться с неполным ручным сопоставлением проводок.

Цитата:
Сообщение от RVS Посмотреть сообщение
Я сказал, что даже если она и будет ненулевая - возможны ситуации, когда это не спасет.
Лично к вам у меня претензий не было. Извините, что заставил вас оправдываться. И абсолютно с вами согласен, что возможно всё.

Цитата:
Сообщение от RVS Посмотреть сообщение
Если честно, не понял, что это...
Это проводки в ваучере по накладной. Сумма дебетовых больше кредитовой на одну копейку. Эта копейка и является ошибкой округления.

Цитата:
Сообщение от belugin Посмотреть сообщение
тут либо валюты надо указать с курсами, либо не балансирует, либо я чего-то не понимаю
извиняюсь, забыл указать проводку по расхождению Z000.40 -0,01
Старый 10.11.2009, 10:11   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
А можете ситуацию смоделировать?
Конкретные шаги для воспроизведения?
Старый 10.11.2009, 14:24   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
тут либо валюты надо указать с курсами, либо не балансирует, либо я чего-то не понимаю
Старый 11.11.2009, 09:21   #9  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Я понимаю, что некоторые торгуют и покупают только штуками с круглой ценой. Но предположите ситуацию, когда есть плановая сумма закупки, которая рассчитывается от суммы продажи по обратной рентабельности, например, в 30%. А фактическая стоимость закупки фиксируется как плановая плюс отклонение факта от плана.
Системный EDT Amount имеет приличную размерность в десятичных знаках и отображает 12 из них, а вот EDT AmountCur может быть настроен, например, на отобржение только 2 знаков после запятой.
Как повторить ошибку? Попробуйте с помощью SQL указать в LineAmount сумму с множеством знаков после запятой. Обработайте накладную. Думаю вы получите тот же результат, что и у меня. "Тупит" именно корреспонденция, т.к. при международной функциональности просто создается проводка по счету ошибок округления без поиска "второй" половины.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 11.11.2009, 09:26   #10  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Есть ли возможность воспроизвести ситуацию в рамках стандартного функционала?
Старый 11.11.2009, 09:46   #11  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
Есть ли возможность воспроизвести ситуацию в рамках стандартного функционала?
Я думаю, что можно. Для этого придется у EDT AmountCur увеличить количество знаков после запятой. А вот порядок округления в валюте оставить прежним (общее округление и округление по покупке). Протестировать сейчас не могу.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 11.11.2009, 09:50   #12  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
под стандартным функционалом я имею ввиду немодифицированное приложение
Старый 11.11.2009, 18:34   #13  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Цитата:
Сообщение от belugin Посмотреть сообщение
под стандартным функционалом я имею ввиду немодифицированное приложение
1. В региональных настройках компьютера установить для чисел четыре знака после запятой;
2. В округлениях для валюты в Аксапте установите общее округление и округление закупки до двух знаков.
3. Создайте закупку и в строке закупки для суммы установите сумму с четвертым знаком после запятой (для немодифицированного приложения для AmountCur установлено кол-во знаков Auto, т.ч. четыре знака должно быть доступно).
4. Проведите разноску.
Думаю, что Вы отловите ошибку (проверить в офисе перечисленную последовательность не могу).
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.
Старый 12.11.2009, 14:29   #14  
RVS is offline
RVS
Сенбернар
Аватар для RVS
Злыдни
 
696 / 130 (6) +++++
Регистрация: 27.02.2003
Адрес: Королев МО
Цитата:
Сообщение от KiselevSA Посмотреть сообщение
Думаю, что Вы отловите ошибку (проверить в офисе перечисленную последовательность не могу).
Извините. Но это вы - думаете...

Дайте живую последовательность действий, при которых ситуация гарантированно воспроизводится.

До этого - вряд ли кто-нить этим подробно заниматься будет
__________________
Best Regards,
Roman
Старый 01.07.2010, 13:39   #15  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
;) А вот и последовательность
Наконец-то поймана

Есть закупка на 210 единиц некой номенклатуры по цене 19,57.
Поставщик выписал накладную на сумму 4110,17.
Закупка маркирована с продажами на количества 21 + 44,1 + 47 + 11 + 2,9 + 84.
И аксапта при подсчете суммы по складским проводкам получает 4110,18
__________________
Axapta non erubescit
Старый 03.07.2010, 06:53   #16  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
На мой взгляд есть два пути решения: либо сломать проверку корреспонденции, чтобы она проверяла только на остаток в основной валюте (но тогда будут отклонения в валютных суммах), либо все таки писать валютную сумму в проводку с отклонением (что работает, и мне кажется правильным).
__________________
Axapta non erubescit
Старый 02.08.2010, 16:55   #17  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
А можно все-таки получить список проводок до корреспонденции с параметрами:
- валюта проводки
- основная валюта
- вторичная валюта

для каждой проводки:
- счет
- суммы в этих валютах

и, как я понимаю, ошибка возникает при обработке накладной поставщика?
Старый 03.08.2010, 06:37   #18  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Список проводок
Цитата:
Сообщение от belugin Посмотреть сообщение
А можно все-таки получить список проводок до корреспонденции с параметрами:
- валюта проводки
- основная валюта
- вторичная валюта

для каждой проводки:
- счет
- суммы в этих валютах
Нажмите на изображение для увеличения
Название: неоткорреспондированные.jpg
Просмотров: 228
Размер:	23.6 Кб
ID:	5992

Валюта проводки и основная валюта - рубли. Вторичной нет.

Цитата:
Сообщение от belugin Посмотреть сообщение
и, как я понимаю, ошибка возникает при обработке накладной поставщика?
именно так

UPD: на текущий момент мы выбрали второй вариант, т.е. указание валютной суммы в проводке с отклонением.
__________________
Axapta non erubescit

Последний раз редактировалось b_nosoff; 03.08.2010 в 06:39.
Старый 03.08.2010, 10:03   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
А если отключить корреспонденцию, такое разносится? По-моему тут проблема не в корреспонденции, а в том, что в валюте проводки суммы не балансируют - может, надо просто поправить алгорим распределения сумм при обработки маркировки, чтобы ошибка округления отнеслась на одну из проводок?
Старый 03.08.2010, 11:46   #20  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Цитата:
Сообщение от belugin Посмотреть сообщение
А если отключить корреспонденцию, такое разносится?
разносится. Только потом и ручной корреспонденцией ничего не добиться - копейки так и мешают.

Цитата:
Сообщение от belugin Посмотреть сообщение
По-моему тут проблема не в корреспонденции, а в том, что в валюте проводки суммы не балансируют - может, надо просто поправить алгорим распределения сумм при обработки маркировки, чтобы ошибка округления отнеслась на одну из проводок?
Я даже могу указать на источник зла это вычисление суммы по проводке в методе UpdateNow класса InventUpd_Financial
X++:
this.parmCostAmountCur(Currency::amount(saveCostAmount * transQty / financial));
тут-то он и наворачивает копейки по округлению на товарный счет.

Не знаю даже, есть ли смысл тут пытаться сломать...

UPD: похоже источнег зла - модификация интегратора...
__________________
Axapta non erubescit

Последний раз редактировалось b_nosoff; 03.08.2010 в 11:53.
Теги
корреспонденция, округление

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Расщепление InventSplitTrans_Remain и коррекция в наличии Logger DAX: Программирование 4 03.03.2009 13:58
Отсутствие корреспонденции andrewK DAX: Функционал 8 23.09.2008 19:01
Округления корректировки себестоимости Morpheus DAX: Функционал 0 22.08.2007 17:25
Отрицательное значение "В наличии" после складского перемещения Yars DAX: Функционал 1 26.05.2005 15:59
Номнклатура без запасов в запросе "В наличии" Van DAX: Функционал 2 03.03.2004 14:26

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:25.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.