![]() |
#1 |
Участник
|
остатки товара по поставщику и уровню асс. классификатора
Есть отчет который считает остатки на дату в разрезе аналитки по складу и поставщику используя метод стандартного класса InventSumDatePhysicalDim:
![]() Но работает он с поставщиком почему то не-корректно, по всем поставщикам одна и та же сумма, вообщем что-то не так, из-за чего это может быть? Почему не работает с поставщиком? Пример кода: void initFromDateOnHand(TransDate _transdate, ItemId _itemId, InventLocationId _InventLocationId, VendAccount _vendAccount = '') { VendInvoiceTrans lastVendInvoiceTrans = VendInvoiceTrans::findLast(_itemId, _transDate, _vendAccount); RetailShopItem retailShopItem = RetailShopItem::find(InventLocation::find(_InventLocationId).InventLocationId, _itemId); InventDim inventDim; InventDimParm InventDimParm; InventTrans inventTrans; ; inventDim.InventLocationId = _InventLocationId; inventDim.VendAccount = _vendAccount; InventDimParm.VendAccountFlag = NoYes::Yes; InventDimParm.InventLocationIdFlag = NoYes::Yes; InventDimParm.ItemIdFlag = NoYes::Yes; this.ItemId = _itemId; this.ItemRangeId = InventTable::find(_itemId).ItemRangeId; this.Qty = InventSumDatePhysicalDim: ![]() if ( lastVendInvoiceTrans ) { this.Price = lastVendInvoiceTrans.costValue() / lastVendInvoiceTrans.Qty; this.CostAmount = this.Price * this.Qty; } else { if ( this.Qty ) { this.CostAmount = InventSumFinancial::newParameters(_transdate, _itemId, inventDim, InventDimParm).value(); this.Price = this.CostAmount / this.Qty; } } this.RetailPrice = retailShopItem.RetailPrice; this.RetailAmount = retailShopItem.RetailPrice * this.Qty; } |
|
![]() |
#2 |
Участник
|
В макрос который джойнит InventDim (#InventDimJoin) добавлен поставщик?
|
|
![]() |
#3 |
Участник
|
Должен быть добавлен, хотя надо уточнить
|
|
![]() |
#4 |
Участник
|
Что-то типа этого
(%2.VendAccount == %3.VendAccount || ! %4.VendAccountFlag) && |
|
![]() |
#5 |
Участник
|
Ну тады идей больше нет
![]() |
|
![]() |
#6 |
Участник
|
Может, в 3.0 или у Вас лично что-то и изменили, но вообще-то, у артикула есть еще конфигурация. Это должен быть 3 параметр после _itemId.
this.Qty = InventSumDatePhysicalDim:onHandQty(_transdate, _itemId, _configId, inventDim, InventDimParm); |
|
![]() |
#7 |
Участник
|
У нас стоит 3.0 сервис пак. Да что-то в Корусе дописали, а _configId за что отвечает?
|
|
![]() |
#8 |
Участник
|
Цитата:
Сообщение от angler
У нас стоит 3.0 сервис пак. Да что-то в Корусе дописали, а _configId за что отвечает?
Например, артикул "Ручка шариковая", но может иметь как синий, так и черный стержень. Артикул один, но состав (конфигурация) - разные. Обычно это используется в производстве (модуль "Спецификации"). Если конфигурация не используется, то можно явно указывать пустую строку (подряд две кавычки) this.Qty = InventSumDatePhysicalDim:onHandQty(_transdate, _itemId, "", inventDim, InventDimParm); Но, вообще-то, лучше посмотри сам статический метод onHandQty на предмет того, какие параметры ему требуются. Может, лично у Вас что-то "подправили". |
|