Ez a cikk a Microsoft Dynamics NAV cseh (cz) területi beállítására vonatkozik.
Tünetek
Tegyük fel, hogy a Microsoft Dynamics NAV 2009 R2 cseh verziójában korrigált áfaösszeget alkalmazva ad fel egy külföldi pénznemben kiállított vételi számlát. Ezután más árfolyamon adja fel a kifizetést. Ebben az esetben, amikor a fizetést alkalmazza a beszerzési számlára, az eredeti áfa és a korrigált áfa közötti különbség a Kerekítés számlára kerül feladásra a Realizált nyereség/veszteség számla helyett.
Megoldás
Gyorsjavítással kapcsolatos információk
A Microsoft már elérhető egy támogatott gyorsjavítást kínál. Ez azonban csak a cikkben ismertetett probléma megoldására szolgál. Csak olyan rendszerekre alkalmazza, amelyek tapasztalják ezt a problémát. Előfordulhat, hogy a gyorsjavítás további tesztelésen eshet át. Ezért ha nem érinti súlyosan ez a probléma, azt javasoljuk, hogy várja meg a Microsoft Dynamics NAV 2009 következő szervizcsomagját, illetve a Microsoft Dynamics NAV következő olyan verzióját, amely tartalmazza ezt a gyorsjavítást.
Megjegyzés: Különleges esetekben a támogatási hívások szokásos díjai törölhetők, ha a Microsoft Dynamics és a kapcsolódó termékek terméktámogatási szakértője úgy ítéli meg, hogy egy adott frissítés megoldja a problémát. A szokásos támogatási költségek olyan további támogatási kérdések és problémák esetén merülnek fel, amelyek nem felelnek meg a kérdéses frissítés feltételeinek.
Telepítési információk
A Microsoft csak illusztrációs céllal kínál programozási példákat, kifejezett vagy vélelmezett garancia nélkül. Ez magában foglalja, de nem kizárólagosan a forgalmazhatóságra vagy az adott célra való alkalmasságra vonatkozó vélelmezett garanciát. Ez a cikk feltételezi, hogy ismeri a bemutatott programozási nyelvet, valamint az eljárások létrehozásához és hibakereséséhez használt eszközöket. A Microsoft támogatási szakemberei segíthetnek elmagyarázni egy adott eljárás működését. Azonban nem módosítják ezeket a példákat, hogy további funkciókat biztosítsanak, és nem építenek ki eljárásokat kifejezetten az Ön igényeire.
Megjegyzés: A gyorsjavítás telepítése előtt győződjön meg arról, hogy a Microsoft Dynamics NAV ügyfél összes felhasználója kijelentkezett a rendszerből. Ez magában foglalja a Microsoft Dynamics NAV Application Server (NAS) szolgáltatásokat is. A gyorsjavítás telepítésekor csak Ön lehet az, aki be van jelentkezve.
A gyorsjavítás implementálásához fejlesztői licenccel kell rendelkeznie.
Javasoljuk, hogy a Windows Bejelentkezések ablakában vagy az Adatbázis-bejelentkezések ablakban látható felhasználói fiókhoz rendelje a "SUPER" szerepkörazonosítót. Ha a felhasználói fiókhoz nem rendelhető a "SUPER" szerepkörazonosító, ellenőriznie kell, hogy a felhasználói fiók rendelkezik-e az alábbi engedélyekkel:
A módosítani kívánt objektum Módosítás engedélye.
Végrehajtási engedély az 5210-es rendszerazonosítójú objektumhoz és a 9015-ös rendszerobjektum-azonosítóhoz.
objektum.
Megjegyzés: Az adattárakhoz csak akkor kell jogokkal rendelkeznie, ha adatokat kell javítást végeznie.
Kódváltozások
Megjegyzés: Mindig ellenőrzött környezetben tesztelje a kódjavításokat, mielőtt telepítené őket az üzemi számítógépekre.
A probléma megoldásához hajtsa végre az alábbi lépéseket:
Módosítsa a kódot az InsertVAT függvényben a Gen. Jnl.-Post Line kódegység (12) az alábbiak szerint:
Meglévő kód... VATEntry."Customs Procedure Code" := "Customs Procedure Code"; VATEntry."Registration No." := "Registration No."; // Delete the following lines. IF "VAT Difference" = 0 THEN VATDifferenceLCY := 0 ELSE IF "Currency Code" = '' THEN VATDifferenceLCY := "VAT Difference" ELSE VATDifferenceLCY := ROUND( CurrExchRate.ExchangeAmtFCYToLCY( "Posting Date","Currency Code","VAT Difference", CurrExchRate.ExchangeRate("Posting Date","Currency Code"))); IF ("VAT Amount (LCY)" <> CalculatedVATAmountLCY) AND ("Currency Code" <> '') THEN VATDifferenceLCY := "VAT Amount (LCY)" - CalculatedVATAmountLCY; // End of the deleted lines. IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN ...Helyettesítő kód
... VATEntry."Customs Procedure Code" := "Customs Procedure Code"; VATEntry."Registration No." := "Registration No."; // Add the following line. VATDifferenceLCY := CalcVATDiffLCY; // End of the added line. IF "VAT Calculation Type" = "VAT Calculation Type"::"Sales Tax" THEN BEGIN ...Módosítsa a kódot a CalcCurrencyRealizedGainLoss függvényben a generációban. Jnl.-Post Line kódegység (12) az alábbiak szerint:
Létező kód... RealizedGainLossLCY := // Delete the following line. AppliedAmountLCY - ROUND(AppliedAmount / CVLedgEntryBuf."Adjusted Currency Factor"); // End of the deleted line. IF RealizedGainLossLCY <> 0 THEN BEGIN ...Helyettesítő kód
... RealizedGainLossLCY := // Add the following lines. AppliedAmountLCY - ROUND(AppliedAmount / CVLedgEntryBuf."Adjusted Currency Factor") + CalcVATDiffFromVATEntry(CVLedgEntryBuf); // End of the added lines. IF RealizedGainLossLCY <> 0 THEN BEGIN ...Hozzon létre két új függvényt a Gen. Jnl.-Post Line kódegység (12) az alábbiak szerint:
LOCAL PROCEDURE CalcVATDiffFromVATEntry@1220002(CVLedgEntryBuf@1220002 : Record 382) VATDiffAmt : Decimal; VAR CalcVATEntry@1220001 : Record 254; BEGIN IF NOT (CVLedgEntryBuf."Document Type" IN [CVLedgEntryBuf."Document Type"::Invoice,CVLedgEntryBuf."Document Type"::"Credit Memo"]) THEN EXIT; WITH CalcVATEntry DO BEGIN SETRANGE("Transaction No.",CVLedgEntryBuf."Transaction No."); IF FINDSET THEN REPEAT VATDiffAmt := VATDiffAmt + "VAT Difference"; UNTIL NEXT = 0; END; END; LOCAL PROCEDURE CalcVATDiffLCY@1220000() VATDifferenceLCY : Decimal; BEGIN WITH GenJnlLine DO BEGIN IF ("VAT Difference" = 0) AND ("VAT Difference (LCY)" = 0) THEN EXIT(0); IF ("VAT Amount (LCY)" <> CalculatedVATAmountLCY) AND ("Currency Code" <> '') THEN EXIT("VAT Amount (LCY)" - CalculatedVATAmountLCY); IF ("VAT Difference" = 0) AND ("VAT Difference (LCY)" <> 0) THEN VATDifferenceLCY := "VAT Difference (LCY)" ELSE IF "Currency Code" = '' THEN VATDifferenceLCY := "VAT Difference" ELSE VATDifferenceLCY := ROUND( CurrExchRate.ExchangeAmtFCYToLCY( "Posting Date","Currency Code","VAT Difference", CurrExchRate.ExchangeRate("Posting Date","Currency Code"))); END; END;Módosítsa a kódot a Sales-Post codeunit (80) OnRun függvényében a következők szerint:
Meglévő kód... GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference"; GenJnlLine."VAT Posting" := GenJnlLine."VAT Posting"::"Manual VAT Entry"; ...Helyettesítő kód
... GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference"; // Add the following line. GenJnlLine."VAT Difference (LCY)" := InvPostingBuffer[1]."VAT Difference (LCY)"; // End of the added line. GenJnlLine."VAT Posting" := GenJnlLine."VAT Posting"::"Manual VAT Entry"; ...Módosítsa a PowerShell-Postakódegység (90) OnRun függvényében szereplő kódot a következők szerint:
Meglévő kód... GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference"; TransferNonDedVAT(GenJnlLine,InvPostingBuffer[1]); ...Helyettesítő kód
... GenJnlLine."VAT Difference" := InvPostingBuffer[1]."VAT Difference"; // Add the following lines. GenJnlLine."VAT Difference (LCY)" := InvPostingBuffer[1]."VAT Difference (LCY)"; // End of the added line. TransferNonDedVAT(GenJnlLine,InvPostingBuffer[1]); ...
Előfeltételek
A gyorsjavítás alkalmazásához a Microsoft Dynamics NAV 2009 R2 cseh verziójának kell telepítve lennie.
Eltávolítással kapcsolatos információk
Ez a gyorsjavítás nem távolítható el.
Állapot
A Microsoft megerősítette, hogy ez egy olyan probléma a Microsoft-termékekben, amely az „Érintett szolgáltatás“ című szakaszban van felsorolva.
Megjegyzés: Ez egy "GYORS KÖZZÉTÉTELŰ" cikk, amelyet közvetlenül a Microsoft támogatási szervezete készített. A dokumentumban szereplő információkat adott formában bocsátjuk rendelkezésre, a felmerülő problémákra adott válaszként. A rendelkezésre bocsátás gyorsasága következtében az anyagok sajtóhibákat tartalmazhatnak, és bármikor, előzetes értesítés nélkül felülvizsgálhatók. További szempontokat a használati feltételekben talál.