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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2011, 11:09   #21  
Bega is offline
Bega
Участник
Аватар для Bega
 
382 / 444 (15) +++++++
Регистрация: 18.08.2005
Адрес: Москва
ПРОБЛЕМА 6. При расчете по средневзвешенной проводки не всегда сопоставляются, стоимость расхода из-за этого неверная.

У нас в течение периода ГП часто движется без стоимости, потому что калькуляция производственных заказов происходит позже, чем выпуск.

В феврале при создании виртуального переноса для средневзвешенной цены , поскольку на момент создания этого переноса у сопоставляемых проводок была нулевая стоимость, создались складские проводки «Средневзвешенное закрытие запасов» (InventTransType = SummedUp) с нулевой финансовой суммой (CostAmountPosted = 0). Далее на следующих шагах закрытия февраля, средневзвешенная была скорректирована (сумма CostAmountAdjustment), значение CostAmountPosted так и осталось нулевым, это все вполне корректно. На конец февраля мы имеем остаток по номенклатуре и единственную складскую открытую проводку «Куплено» с типом «Средневзвешенное закрытие запасов».

В марте в методе InventCostItemDim::updateModelAverage происходит сопоставление приходов и расходов в соответствии со средневзвешенной моделью себестоимости.
В этом куске кода происходит поиск подходящих приходов для сопоставления:
X++:
while (tmpreceiptScan.RecId&&tmpreceiptScan.TransDate<=endDate)
{
receiptScan = this.tmpReceipt2Trans(tmpreceiptScan);
            // <GEEU>
            if (receiptScan.TransType != InventTransType::SummedUp || this.currencyTransfer_RU(receiptScan))
            { 
            // </GEEU>
вызывается метод this.currencyTransfer_RU(), в котором проверяется только CostAmountPosted, а она у нас равна нулю.
X++:
protected boolean currencyTransfer_RU(InventTrans _inventTrans)
{
    return _inventTrans.CostAmountPosted != 0;
}
таким образом, наша открытая проводка «Средневзвешенное закрытие запасов» будет исключена из сопоставления и мартовская расходная проводка не будет сопоставлена и ее стоимость будет неверной.

РЕШЕНИЕ

Я закрыл слад вот с такой модификацией и проблема была решена:
X++:
//+ DPL InventClosingFix_OK 11.04.2011 OK
            //if (receiptScan.TransType != InventTransType::SummedUp || this.currencyTransfer_RU(receiptScan))
            if (   receiptScan.TransType != InventTransType::SummedUp || receiptScan.costValue() != 0)
            //- DPL InventClosingFix_OK 11.04.2011 OK
Можно бы было доделать currencyTransfer_RU(), чтобы он анализировал и CostAmountAdjustment но он используется ниже в других местах и такая модификация потребует еще тестирования, проверю отдельно и напишу.
За это сообщение автора поблагодарили: EVGL (20), zelibobis (1).
Теги
баг, закрытие склада, ошибка, ошибка при закрытии склада, себестоимость

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Завышенная себестоимость по расходам после закрытия склада в DAX2009 Bega DAX: Функционал 13 14.02.2011 12:55
Не хватает фин. аналитик при пересчете и закрытии склада Geo DAX: Функционал 7 23.10.2010 00:24
Проблема с журналом спецификаций при закрытии склада CDR DAX: Функционал 2 24.05.2010 10:50
Denis Fedotenko: Себестоимость и закрытие склада Blog bot DAX: База знаний и проекты 44 29.03.2010 14:54
Финансовые проблемы при Закрытии склада Владимир Ю. DAX: Функционал 6 28.06.2005 20:00

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

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

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