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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 08.12.2010, 17:12   #1  
online
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Разница InventSplitTrans и InventSplitTrans_Remain
Добрый день.

Коллеги, недавно столкнулся с очень интересным поведением аксапты.
Ситуация :
Есть заказ в закрытом периоде. Расходная складская проводка по заказу закрыта. Необходимо оформить частичный возврат. Если мы оформляем частичный возврат при помощи функции создание кредит-ноты, то все в порядке. Расходная закрытая проводка расщепляется и в неё прописывается лот возврата. (Работает метод InventTrans.insertTransIdReturn() и расщепление происходит вызовом класса InventSplitTrans)

Если же пытаемся сделать возврат через немедленное получение, то закрытая проводка не расщепляется - выдает ошибку. (Работает метод inventTrans.updateSplit() и попытка расщепления происходит вызовом класса InventSplitTrans_Remain)

В связи с этим вопрос, почему для возврата по немедленному получению используется InventSplitTrans_Remain и когда какой класс лучше использовать ?
За это сообщение автора поблагодарили: gl00mie (5).
Старый 08.12.2010, 17:55   #2  
pitersky is offline
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,509 / 432 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Возможно, причина в том, что немедленное получение - это скорее функционал исправления ошибок разноски. Т.е. разработчики сочли так - если случайно отгрузили больше, чем надо, то корректировка делается через немедленное получение. Если же клиет выставил, к примеру, рекламацию, то надо создать полноценный документ возврата. И если первый механизм - оперативный, то второй ретроспективный. Соответственно - первый и не должен работать с уже закрытыми периодами, в то время как для второго это нужно иметь обязательно.

Повторюсь, сие есть 100% ИМХО.
__________________
С уважением,
Вячеслав
За это сообщение автора поблагодарили: Logger (2), Ievgenii (2).
Старый 09.12.2010, 12:31   #3  
online
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Понятно.

Как-то это странно. Из того что я знаю - пока не вижу противопоказаний чтобы всегда разрешать расщепление.

Собственно потому и тему открыл.
Старый 09.12.2010, 16:58   #4  
Ievgenii is offline
Ievgenii
Участник
Аватар для Ievgenii
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
 
111 / 113 (4) +++++
Регистрация: 21.09.2008
Адрес: Copenhagen, Denmark
Цитата:
Повторюсь, сие есть 100% ИМХО.
Good question!

Плюс минус так оно и есть (ибо более точно его создатели тоже ответить не могут, а классы эти уже лет 5-7 не менялись ).

Рекомендация – использовать InventSplitTrans_Remain который используться по определению из InventTrans.updateSplit() метода. Этого должно хватать в 80% случаев.

В 20% случаев когда необходимо по сплитить финансово закрытые проводки используеться InventSplitTrans класс.

Возможно дизайн и названия классов не совсем отвечают тому что они делают (опять таки очень старый код) – постараемся исправить (but no promisses of course )
__________________
Thx,
Ievgenii Korovin| Dynamics Ax SCM| Microsoft Corp| http://blogs.msdn.com/DynamicsAxSCM/
За это сообщение автора поблагодарили: Logger (5).
Старый 06.10.2015, 17:34   #5  
online
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,941 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от Ievgenii Посмотреть сообщение
Good question!
Плюс минус так оно и есть (ибо более точно его создатели тоже ответить не могут, а классы эти уже лет 5-7 не менялись ).
Рекомендация – использовать InventSplitTrans_Remain который используться по определению из InventTrans.updateSplit() метода. Этого должно хватать в 80% случаев.
В 20% случаев когда необходимо по сплитить финансово закрытые проводки используеться InventSplitTrans класс.
Возможно дизайн и названия классов не совсем отвечают тому что они делают (опять таки очень старый код) – постараемся исправить (but no promisses of course)
Поковырял еще код.
Есть ощущение что InventSplitTrans_Remain был сделан исключительно для использования при коррекции остатка в наличии. В остальных случаях лучше использовать InventSplitTrans. По идее не должно быть проблем. (Но детально все последствия не проверял)

P.S.
Интересно что в 2012-й код принципиально не изменился. Все осталось как было + добавилась фича не имеющая отношения к обсуждаемому вопросу.
Старый 08.10.2015, 15:32   #6  
SRF is offline
SRF
Участник
MCBMSS
Axapta Retail User
 
375 / 562 (19) +++++++
Регистрация: 08.08.2007
Записей в блоге: 1
Если используете вторичную себестоимость, то будьте внимательны в этом функционале (когда делается частичный возврат через кредит-ноту по заказу на продажу из закрытого периода) есть баг расчета себестоимости во вторичной валюте при расщеплении складских проводок, причем он не исправлен даже в ax2012 (InventSplitTrans\setSplitSettledAmount)

X++:
    if (_transFrom.CostAmountSettledSecCur_RU != 0)
    {
        // SN
        //costValueSecCur_RU = _transFrom.costValue();
        costValueSecCur_RU = _transFrom.costValueSecCur_RU();
        // SN
        if (abs(costValueSecCur_RU) < abs(_transFrom.CostAmountSettledSecCur_RU))
        {
            _transTo.CostAmountSettledSecCur_RU     -= costValueSecCur_RU - _transFrom.CostAmountSettledSecCur_RU;
            _transFrom.CostAmountSettledSecCur_RU    = costValueSecCur_RU;
        }
    }
    // </GEERU>
__________________
Sergey Nefedov
За это сообщение автора поблагодарили: Logger (5), pedrozzz (3).
Теги
creditnote, inventsplittrans, inventsplittrans_remain, баг, немедленное получение, расщепление проводок, ax2012

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Нереализованная курсовая разница по закрытой операции LEO DAX: Функционал 4 06.07.2010 13:12
Расщепление InventSplitTrans_Remain и коррекция в наличии Logger DAX: Программирование 4 03.03.2009 13:58
daxmy: Transfer Orders - "Receive Remain" show weird value after multiple shipments and received (2) Blog bot DAX Blogs 0 13.09.2007 00:22
daxmy: Transfer Orders - "Receive Remain" show weird value after multiple shipments and received Blog bot DAX Blogs 0 06.09.2007 20:41
InventSplitTrans_Remain и InventSplitTrans Logger DAX: Программирование 0 28.02.2007 18:58

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:18.