Показать сообщение отдельно
Старый 02.04.2023, 22:31   #1  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,429 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Оборотно-сальдовая ведомость по складу. Физические и финансовые обороты
Доброго времени суток!

Подскажите, пожалуйста, пользуется ли кто-нибудь стандартным ОСВ по складу?

AX2012: (RUS) Generate the inventory balance turnover report
D365FO: Inventory reports

При первом знакомстве с данным творением возникло недопонимание в логике отображения физических оборотов.
Правильно ли я понимаю что поведение отчёта следующее:

- Если проводка разнесена физически, то отчёт добавляет её в физические обороты
- Если проводка разнесена финансово, то отчёт добавляет её в финансовые обороты, и при этом "реверсирует" её из физических! (И вроде бы это логично. Иначе сальдо не сойдётся)

Вопрос у меня в том как понимать то, что реверс физической разноски в отчёте отображается не по той стороне по которой было движение, а по противоположной.
Т.е. если финансово разносится, например, приходная проводка по закупке, то в отчёт она попадает в колонку с финансовым приходом и в колонку с физическим расходом. Увеличивая тем самым обороты. А если ещё отчёт строить без опции раздельного отображения физических и финансовых оборотов, то разобраться в отображаемом результате вообще невозможно.

У меня такое поведение отчёта наблюдается на версии AX 2012 R3 CU10. В версии D365FO не проверял. Оговорюсь, что речь не идёт о каких-либо сторно или корректировках, только самые обычные прямые движения по складу.

По коду не нашёл никаких намёков на то что такое поведение можно поменять какими-то параметрами или настройками.
Класс: InventSumDateFinancialCalc_RU
Метод: calcTransFinancial
X++:
        ...
        if (addTransPhysicalReverseAll)
        {
            this.addTrans(_itemId,
                          inventTransOrigin.ReferenceCategory,
                          inventTransDirection.Direction == InventDirection::Issue ? InventDirection::Receipt : InventDirection::Issue, // <<-- Вот здесь зачем-то переворачивается проводка
                          true,
                          stornoPhysicalAddTrans,
                          this.getDimId(inventDim, postingPhysical.DefaultDimension, postingPhysical.LedgerDimension, stornoPhysical, postingPhysical.IsPosted),
                          -inventTrans.Qty,
                          -inventTrans.CostAmountPhysical,
                          _prevTrans,
                          _newTrans);
        }
        ...
Видимо я что-то недопонимаю в логике работы с физическим складом. Если кто-то разобрался с этим буду благодарен за объяснения