Tento článek platí pro Microsoft Dynamics NAV pro všechna jazyková národní prostředí.
Příznaky
Předpokládejme, že nastavíte Další měnu vykazování v Nastavení hlavní knihy ve finanční správě v Microsoft Dynamics NAV. Po zaúčtování dodávky zpět si všimnete, že hodnoty v polích Částka nákladů (očekávaná) (ACY) a Částka nákladů (skutečná) (ACY) jsou nesprávné v položkách hodnoty zásob / Položky knihy zboží.
K tomuto problému dochází u následujících produktů:
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009
- Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
Řešení
Informace o opravě hotfix
Od Microsoftu je teď k dispozici podporovaná oprava hotfix. Účelem je však pouze vyřešení problému, který je popsán v tomto článku. Aplikujte ho jenom na systémy, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může projít dalším testováním. Pokud se vás tedy tento problém vážně netýká, doporučujeme počkat na další aktualizaci Service Pack pro produkt Microsoft Dynamics NAV 2009 nebo další verzi aplikace Microsoft Dynamics NAV, která tuto opravu hotfix obsahuje.
Poznámka: Ve zvláštních případech mohou být poplatky, které jsou obvykle účtovány za telefonická hovory podpory, zrušeny, pokud pracovník technické podpory pro řešení Microsoft Dynamics a související produkty zjistí, že konkrétní aktualizace vyřeší váš problém. Další dotazy a problémy týkající se podpory, které se netýkají této konkrétní opravy, podléhají běžným sazbám za podporu.
Informace o instalaci
Společnost Microsoft poskytuje příklady programování pouze pro ilustraci, bez záruky, ať už vyjádřené nebo předpokládané. To zahrnuje, ale není omezeno na, předpokládané záruky prodejnosti nebo vhodnosti pro konkrétní účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předváděn, a s nástroji, které se používají k vytváření a ladění procedur. Pracovníci technické podpory Microsoftu vám můžou pomoct vysvětlit funkčnost určitého postupu, ale nebudou tyto příklady upravovat za účelem poskytování dalších funkcí nebo konstrukce procedur, které by splňovaly vaše konkrétní požadavky.
Poznámka: Před instalací této opravy hotfix ověřte, zda jsou všichni uživatelé klienta Microsoft Navision odhlášeni ze systému. To zahrnuje i uživatele klienta Microsoft Navision Application Services (NAS). Měli byste být jediným klientským uživatelem, který je přihlášen při implementaci této opravy hotfix.
K implementaci této opravy hotfix musíte mít vývojářskou licenci.
Doporučujeme, aby uživatelské účtu v okně Windows Přihlášení nebo v okně Přihlášení k databázi bylo přiřazeno ID role "SUPER". Pokud nelze uživatelskému účtu přiřadit ID role "SUPER", je nutné ověřit, zda má uživatelský účet následující oprávnění:
- Oprávnění k úpravám objektu, který budete měnit.
- Oprávnění ke spuštění pro objekt s ID systémového objektu 5210 a pro objekt s ID systémového objektu 9015.
Poznámka: K úložištím dat nemusíte mít práva, ledaže byste museli provádět opravu dat.
Změny kódu
Poznámka: Před použitím oprav v produkčních počítačích vždy otestujte opravy kódu v kontrolovaném prostředí.
Chcete-li tento problém vyřešit, postupujte takto:
Poznámka: Vzhledem k tomu, že se kód liší pro celosvětovou verzi a severoamerickou verzi, jsou oba protokoly změn uvedeny pod konkrétním nadpisem celosvětové verze nebo severoamerické verze.
Změňte kód ve funkci InsertValueEntry v jednotce kódu řádku Item Jnl.-Post (22) následujícím způsobem:
Pro celosvětovou verzi Microsoft Dynamics NAV 5.0 SP1, Microsoft Dynamics NAV 2009, Microsoft Dynamics NAV 2009 SP1 a Microsoft Dynamics NAV 2009 R2
Existující kód... ELSE InvoicedQty := ValueEntry."Valued Quantity"; END ELSE InvoicedQty := ValueEntry."Invoiced Quantity"; CalcExpectedCost( ItemLedgEntry."Entry No.", InvoicedQty, ItemLedgEntry.Quantity, ValueEntry."Cost Amount (Expected)", ValueEntry."Cost Amount (Expected) (ACY)", ValueEntry."Sales Amount (Expected)", ValueEntry."Purchase Amount (Expected)", ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity"); // Delete the following lines. IF (InvdValueEntry."Cost Amount (Expected)" <>0) AND (ValueEntry."Cost Amount (Expected)" <> 0) THEN ValueEntry."Cost Amount (Expected)" := ValueEntry."Cost Amount (Expected)" - InvdValueEntry."Cost Amount (Expected)"; IF (InvdValueEntry."Cost Amount (Expected) (ACY)" <> 0) AND (ValueEntry."Cost Amount (Expected) (ACY)"<>0) THEN ValueEntry."Cost Amount (Expected) (ACY)" := ValueEntry."Cost Amount (Expected) (ACY)" - InvdValueEntry."Cost Amount (Expected) (ACY)"; // End of the deleted lines. END; IF ValueEntry.Inventoriable THEN PostInventoryToGL(ValueEntry); IF ItemLedgEntry."Job No." <> '' THEN BEGIN ...Náhradní kód
... ELSE InvoicedQty := ValueEntry."Valued Quantity"; END ELSE InvoicedQty := ValueEntry."Invoiced Quantity"; CalcExpectedCost( // Add the following line. ValueEntry, // End of the added line. ItemLedgEntry."Entry No.", InvoicedQty, ItemLedgEntry.Quantity, ValueEntry."Cost Amount (Expected)", ValueEntry."Cost Amount (Expected) (ACY)", ValueEntry."Sales Amount (Expected)", ValueEntry."Purchase Amount (Expected)", ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity"); END; IF ValueEntry.Inventoriable THEN PostInventoryToGL(ValueEntry); IF ItemLedgEntry."Job No." <> '' THEN BEGIN ...Pro severoamerickou verzi produktů Microsoft Dynamics NAV 5.0 SP1, Microsoft Dynamics NAV 2009, Microsoft Dynamics NAV 2009 SP1 a Microsoft Dynamics NAV 2009 R2
Existující kód... ELSE InvoicedQty := ValueEntry."Valued Quantity"; END ELSE InvoicedQty := ValueEntry."Invoiced Quantity"; IF NOT Kitting THEN BEGIN CalcExpectedCost( ItemLedgEntry."Entry No.", InvoicedQty, ItemLedgEntry.Quantity, ValueEntry."Cost Amount (Expected)", ValueEntry."Cost Amount (Expected) (ACY)", ValueEntry."Sales Amount (Expected)", ValueEntry."Purchase Amount (Expected)", ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity"); // Delete the following lines. IF (InvdValueEntry."Cost Amount (Expected)" <>0) AND (ValueEntry."Cost Amount (Expected)" <>0) THEN ValueEntry."Cost Amount (Expected)" := ValueEntry."Cost Amount (Expected)" - InvdValueEntry."Cost Amount (Expected)"; IF (InvdValueEntry."Cost Amount (Expected) (ACY)" <> 0) AND (ValueEntry."Cost Amount (Expected) (ACY)" <> 0) THEN ValueEntry."Cost Amount (Expected) (ACY)" := ValueEntry."Cost Amount (Expected) (ACY)" - InvdValueEntry."Cost Amount (Expected) (ACY)"; // End of the deleted lines. END; END; IF ValueEntry.Inventoriable THEN PostInventoryToGL(ValueEntry); IF ItemLedgEntry."Job No." <>'' THEN BEGIN ...Náhradní kód
... ELSE InvoicedQty := ValueEntry."Valued Quantity"; END ELSE InvoicedQty := ValueEntry."Invoiced Quantity"; IF NOT Kitting THEN BEGIN CalcExpectedCost( // Add the following line. ValueEntry, // End of the added line. ItemLedgEntry."Entry No.", InvoicedQty, ItemLedgEntry.Quantity, ValueEntry."Cost Amount (Expected)", ValueEntry."Cost Amount (Expected) (ACY)", ValueEntry."Sales Amount (Expected)", ValueEntry."Purchase Amount (Expected)", ItemLedgEntry.Quantity = ItemLedgEntry."Invoiced Quantity"); END; END; IF ValueEntry.Inventoriable THEN PostInventoryToGL(ValueEntry); IF ItemLedgEntry."Job No."<>'' THEN BEGIN ...Změňte kód ve funkci CalcExpectedCost v kódové jednotce řádku Item Jnl.-Post (22) následujícím způsobem:
Pro celosvětovou verzi a severoamerickou verzi pro Microsoft Dynamics NAV 5.0 SP1, Microsoft Dynamics NAV 2009, Microsoft Dynamics NAV 2009 SP1 a Microsoft Dynamics NAV 2009 R2
Existující kód 1... LOCAL PROCEDURE CalcExpectedCost@60(ItemLedgEntryNo@1003 : Integer;InvoicedQty@1006 : Decimal;Quantity@1005 : Decimal;VAR ExpectedCost@1001 : Decimal;VAR ExpectedCostACY@1002 : Decimal;VAR ExpectedSalesAmt@1007 : Decimal;VAR ExpectedPurchAmt@1008 : Decimal;CalcReminder@1004 : Boolean); ...Náhradní kód 1
... LOCAL PROCEDURE CalcExpectedCost@60(VAR InvdValueEntry@1009 : Record 5802;ItemLedgEntryNo@1003 : Integer;InvoicedQty@1006 : Decimal;Quantity@1005 : Decimal;VAR ExpectedCost@1001 : Decimal;VAR ExpectedCostACY@1002 : Decimal;VAR ExpectedSalesAmt@1007 : Decimal;VAR ExpectedPurchAmt@1008 : Decimal;CalcReminder@1004 : Boolean); ...Existující kód 2 pro Microsoft Dynamics NAV 5.0 SP1 a Microsoft Dynamics NAV 2009
... "Sales Amount (Expected)","Purchase Amount (Expected)"); ExpectedCost := -"Cost Amount (Expected)"; ExpectedCostACY := -"Cost Amount (Expected) (ACY)"; ExpectedSalesAmt := -"Sales Amount (Expected)"; ExpectedPurchAmt := -"Purchase Amount (Expected)"; END ELSE BEGIN REPEAT IF "Expected Cost" THEN BEGIN ExpectedCost := ExpectedCost + "Cost Amount (Expected)"; ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)" ...Náhradní kód 2 pro Microsoft Dynamics NAV 5.0 SP1 a Microsoft Dynamics NAV 2009
... "Sales Amount (Expected)","Purchase Amount (Expected)"); ExpectedCost := -"Cost Amount (Expected)"; ExpectedCostACY := -"Cost Amount (Expected) (ACY)"; ExpectedSalesAmt := -"Sales Amount (Expected)"; ExpectedPurchAmt := -"Purchase Amount (Expected)"; // Add the following lines. END ELSE IF InvdValueEntry.Adjustment AND (InvdValueEntry."Entry Type" = InvdValueEntry."Entry Type"::"Direct Cost") THEN BEGIN ExpectedCost := -InvdValueEntry."Cost Amount (Actual)"; ExpectedCostACY := -InvdValueEntry."Cost Amount (Actual) (ACY)"; IF NOT CalledFromAdjustment THEN BEGIN ExpectedSalesAmt := -InvdValueEntry."Sales Amount (Actual)"; ExpectedPurchAmt := -InvdValueEntry."Purchase Amount (Actual)"; END // End of the added lines. END ELSE BEGIN REPEAT IF "Expected Cost" THEN BEGIN ExpectedCost := ExpectedCost + "Cost Amount (Expected)"; ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)"; ...Existující kód 3 pro Microsoft Dynamics NAV 2009 SP1 a Microsoft Dynamics NAV 2009 R2
… IF FINDSET AND "Expected Cost" THEN IF CalcReminder THEN BEGIN CALCSUMS( "Cost Amount (Expected)","Cost Amount (Expected) (ACY)", "Sales Amount (Expected)","Purchase Amount (Expected)"); ExpectedCost := -"Cost Amount (Expected)"; ExpectedCostACY := -"Cost Amount (Expected) (ACY)"; IF NOT CalledFromAdjustment THEN BEGIN ExpectedSalesAmt := -"Sales Amount (Expected)"; ExpectedPurchAmt := -"Purchase Amount (Expected)"; END END ELSE BEGIN REPEAT IF "Expected Cost" THEN BEGIN ExpectedCost := ExpectedCost + "Cost Amount (Expected)"; ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)"; …Náhradní kód 3 pro Microsoft Dynamics NAV 2009 SP1 a Microsoft Dynamics NAV 2009 R2
… IF FINDSET AND "Expected Cost" THEN IF CalcReminder THEN BEGIN CALCSUMS( "Cost Amount (Expected)","Cost Amount (Expected) (ACY)", "Sales Amount (Expected)","Purchase Amount (Expected)"); ExpectedCost := -"Cost Amount (Expected)"; ExpectedCostACY := -"Cost Amount (Expected) (ACY)"; IF NOT CalledFromAdjustment THEN BEGIN ExpectedSalesAmt := -"Sales Amount (Expected)"; ExpectedPurchAmt := -"Purchase Amount (Expected)"; END // Add the following lines. END ELSE IF InvdValueEntry.Adjustment AND (InvdValueEntry."Entry Type" = InvdValueEntry."Entry Type"::"Direct Cost") THEN BEGIN ExpectedCost := -InvdValueEntry."Cost Amount (Actual)"; ExpectedCostACY := -InvdValueEntry."Cost Amount (Actual) (ACY)"; IF NOT CalledFromAdjustment THEN BEGIN ExpectedSalesAmt := -InvdValueEntry."Sales Amount (Actual)"; ExpectedPurchAmt := -InvdValueEntry."Purchase Amount (Actual)"; END // End of the added lines. END ELSE BEGIN REPEAT IF "Expected Cost" THEN BEGIN ExpectedCost := ExpectedCost + "Cost Amount (Expected)"; ExpectedCostACY := ExpectedCostACY + "Cost Amount (Expected) (ACY)"; …
Požadavky
Chcete-li nainstalovat tuto opravu hotfix, musíte mít nainstalovaný jeden z následujících produktů:
- Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
- Microsoft Dynamics NAV 2009 R2
- Microsoft Dynamics NAV 2009
- Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)
Informace o odebrání
Tuto opravu hotfix nelze odebrat.
Stav
Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.
Reference
VSTF DynamicsNAV SE: 266892
Poznámka: Toto je článek určený k rychlému zveřejnění, který byl vytvořen přímo v rámci organizace podpory společnosti Microsoft. Zde uvedené informace jsou poskytovány tak, jak jsou, jako reakce na nově vznikající potíže. Vzhledem k rychlosti, s jakou byl článek zpřístupněn, mohou příslušné materiály obsahovat typografické chyby a mohou být kdykoli bez předchozího upozornění revidovány. Další okolnosti viz Podmínky použití .