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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.11.2008, 10:54   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
К чему в результате дошёл

1) \Classes\InventSumOpenTransact\add
Закидываем в буфер costAmountPosted

2) (S) \Classes\InventSumOpenTransact\setTransAdjustNow - line 4
Инициализируем суммы корректировки нулями

3)(S) \Classes\InventSumOpenTransact\setAdjustment - line 49
Может получиться что расчитанная сумма корректировки нам не подходит,
тогда корректировка = this.transValue(x)+this.transAdjustNow(x)
Фактически это this.transValue(x) т.к. transAdjustNow(x) = 0

4) (S) \Classes\InventTransAdjust\updateNow - line 35
inventTrans.updateSplit(inventTrans.financialOpenQty());
Делим на две проводки (старая+новая)
И все суммы и количества пропорционально распределяем, кроме суммы по корректировке.
Корректировку оставляем на изначальной проводке. Т.к. в InventSettlement связь не только по лоту но и по recId.
После этой процедуры место старого inventTrans в памяти уже другой.
Вот это я исправил, так как это не правильно.
Поставил в верху метода
X++:
    RefRecId         origRecId;
А место
X++:
            if (inventTrans.financialOpenQty() != inventTrans.qty)
                inventTrans.updateSplit(inventTrans.financialOpenQty());
изменённый код
X++:
            if (inventTrans.financialOpenQty() != inventTrans.qty)
            {
                origRecId = inventTrans.RecId;
                inventTrans.updateSplit(inventTrans.financialOpenQty());
                if(inventTrans.RecId != origRecId)
                    inventTrans = InventTrans::findRecId(origRecId, true);
            }
Вопрос: Интересно, а зачем здесь вообще updatesplit()?
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Старый 12.11.2008, 19:27   #2  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 438 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Есть подозрения, что сделал не правильно.
Завтра ещё буду юзать.
Но неужели не у кого нет мыслей зачем там updatesplit().
Буду благодарен за любые догадки, даже неправильные.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему.
Теги
логистика, переоценка

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
сопоставление оплат клиента, переносов сальдо-поле накладная в общем журнале? Aquarius DAX: Функционал 3 28.01.2009 12:51
InventTransIdReturn и Закрытие склада DenisS DAX: Программирование 15 03.12.2008 09:02
Denis Fedotenko: Новые поля в складских проводках Blog bot DAX: База знаний и проекты 10 24.05.2007 11:57
Как правильно достучаться из InventTrans до даты накладыной NJD DAX: Программирование 6 22.07.2005 20:52
Связь таблиц InventTrans и PurchLine Pustik DAX: Программирование 2 25.11.2004 12:23
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

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

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

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