![]() |
#1 |
Участник
|
![]()
Axapta 4.0 SP2 EE
система 4.0.25.01.121 проблема в CustVendSettle.postExchRateLedgerTrans История вопроса. Разработан функционал по переброске с контрагента на поставщика и наоборот через сложную проводку в ГК. Не через транзитный счёт ГК. Допустим, выполнена переброска с клиента на поставщика. Поставщик и клиент имеют разные аналитики, например, аналитику Контрагент. В итоге по клиенту была насчитана нереализованная курсовая разница. В ГК проводка по переброске состоит из двух частей: первая клиентская с постингом "Сальдо по Клиенту", вторая - "Сальдо по поставщику", аналитики у частей разные, соответствуют клиенту и поставщику соответственно. Выполняется сопоставление. Нереализованная курсовая реверсируется. И вот тут баг. Аналитика для проводки-реверса выбирается из той части проводки-переброски, которая по постингу не равна "Сальдо клиента", получаем часть "Сальдо поставщика". В итоге в проводке реверса нереализованной КР аналитика выбрана из поставщика. В этом косяк. X++: if (_custVendTrans.TableId == tablenum(CustTrans)) { balancePosting = LedgerPostingType::CustBalance; } else { balancePosting = LedgerPostingType::VendBalance; } // ........ // некоторый код //......... while select * from ledgerTrans where ledgerTrans.Voucher == _custVendTrans.Voucher && ledgerTrans.TransDate == _custVendTrans.TransDate && ledgerTrans.Posting != balancePosting { calcAmountPerDimension(ledgerTrans); } |
|
|
За это сообщение автора поблагодарили: kornix (2). |
![]() |
#2 |
Сенбернар
|
Цитата:
Цитата:
[QUOTE=_AxDevel_;267585]В итоге по клиенту была насчитана нереализованная курсовая разница. В ГК проводка по переброске состоит из двух частей: первая клиентская с постингом "Сальдо по Клиенту", вторая - "Сальдо по поставщику", аналитики у частей разные, соответствуют клиенту и поставщику соответственно. Выполняется сопоставление. Нереализованная курсовая реверсируется.[QUOTE] мдя... Цитата:
Сообщение от _AxDevel_
![]() И вот тут баг.
Аналитика для проводки-реверса выбирается из той части проводки-переброски, которая по постингу не равна "Сальдо клиента", получаем часть "Сальдо поставщика". В итоге в проводке реверса нереализованной КР аналитика выбрана из поставщика. В этом косяк. X++: if (_custVendTrans.TableId == tablenum(CustTrans)) { balancePosting = LedgerPostingType::CustBalance; } else { balancePosting = LedgerPostingType::VendBalance; } // ........ // некоторый код //......... while select * from ledgerTrans where ledgerTrans.Voucher == _custVendTrans.Voucher && ledgerTrans.TransDate == _custVendTrans.TransDate && ledgerTrans.Posting != balancePosting { calcAmountPerDimension(ledgerTrans); } На систему, в которой вы сейчас пытаетесь что-то улучшить - затрачено примерно 10^3 человеко-лет. Причем - не худших человеков, насколько мне, например, видно. Оно работает. Если вы что-то там допилили - эт ваша ровно ответственность. Так, нет? Вы полезли... в непонятное ... вам ... удачи ![]() Я бы - не лез.
__________________
Best Regards, Roman Последний раз редактировалось RVS; 12.02.2012 в 00:55. |
|
![]() |
#3 |
Участник
|
замечательно, ни одного слова по существу вопроса. Хотелось услышать ответ хотя бы на 1-й вопрос.
|
|
![]() |
#4 |
Участник
|
up
|
|
![]() |
#5 |
MCP
|
Цитата:
Выполняется сопоставление. Нереализованная курсовая реверсируется. И вот тут баг. Аналитика для проводки-реверса выбирается из той части проводки-переброски, которая по постингу не равна "Сальдо клиента", получаем часть "Сальдо поставщика".
Поделитесь, пожалуйста, как вы решили проблему? |
|