Šis straipsnis taikomas "„Microsoft“ Dynamics NAV", skirtai lenkų (pl) kalbos lokalei.
Požymiai
Tarkime, kad registruojate pardavimo grąžinimo pažymą, kurioje yra atidėtas pridėtinės vertės mokestis (PVM) lenkų kalba "„Microsoft“ Dynamics NAV 2009 R2". Kai bandote apskaičiuoti PVM PVM taikymo darbalapio dialogo lange, gaunate tokį klaidos pranešimą:
Pastaba
Čia negalima tvarkyti atidėto pardavimo grąžinimo pažymos PVM.
Sprendimas
Karštųjų pataisų informacija
Dabar palaikomas karštąsias pataisas galima gauti iš "„Microsoft“". Tačiau juo siekiama tik išspręsti šiame straipsnyje aprašytą problemą. Taikyti ją tik sistemoms, kuriose kilo ši konkreti problema. Ši karštoji pataisa gali būti papildomai patikrinta. Todėl, jei ši problema jūsų rimtai nepaveikė, rekomenduojame palaukti kito "„Microsoft“ Dynamics NAV 2009" pakeitimų paketo arba kitos "„Microsoft“ Dynamics NAV" versijos, kurioje yra ši karštoji pataisa.
Pastaba Ypatingais atvejais mokesčiai, kurie paprastai taikomi už palaikymo skambučius, gali būti atšaukti, jei "„Microsoft“ Dynamics" ir susijusių produktų techninio palaikymo specialistas nustato, kad konkretus naujinimas išspręs jūsų problemą. Įprastos palaikymo išlaidos bus taikomos papildomiems palaikymo klausimams ir problemoms, kurios neatitinka atitinkamo konkretaus naujinimo reikalavimų.
Diegimo informacija
"„Microsoft“" pateikia programavimo pavyzdžių tik iliustracijai, be išreikštų ar numanomų garantijų. Tai apima, bet neapsiriboja, numanomas tinkamumo parduoti arba tinkamumo konkrečiam tikslui garantijas. Straipsnyje laikomasi nuomonės, kad esate susipažinę su demonstruojama programavimo kalba ir įrankiais, naudojamais kuriant ir derinant procedūras. "„Microsoft“" palaikymo inžinieriai gali padėti paaiškinti konkrečios procedūros funkcionalumą, bet jie nemodifikuos šių pavyzdžių, kad suteiktų papildomų funkcinių galimybių, ir nesukurs procedūrų, atitinkančių jūsų konkrečius reikalavimus.
Pastaba Prieš diegdami šią karštąją pataisą patikrinkite, ar visi "„Microsoft“ Navision" kliento vartotojai yra atsijungę nuo sistemos. Tai apima "„Microsoft“ Navision" programų tarnybų (NAS) kliento vartotojus. Turite būti vienintelis kliento vartotojas, kuris yra prisijungęs, kai įdiegiate šią karštąją pataisą.
Norėdami įdiegti šią karštąją pataisą, privalote turėti kūrėjo licenciją.
Rekomenduojame vartotojo paskyrai "Windows" prisijungimų lange arba duomenų bazės prisijungimų lange priskirti "SUPER" vaidmens ID. Jei vartotojo paskyrai negalima priskirti "SUPER" vaidmens ID, turite patikrinti, ar vartotojo paskyra turi šias teises:
- Objekto, kurį keisite, modifikavimo teisė.
- Sistemos objekto ID 5210 ir sistemos objekto ID 9015 objekto vykdymo teisės.
Pastaba: neturite turėti teisių į duomenų saugyklas, nebent turite atlikti duomenų taisymą.
Kodo keitimai
Pastaba Visada išbandykite kodo pataisas kontroliuojamoje aplinkoje prieš taikydami jas gamybos kompiuteriuose.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:
Naikinti šiuos parametrus funkcijoje RealizePostponedVAT lauke Gen. Jnl.-Post Line kodo vienetas (12):
- Operacijos Nr
- VATEntryNo
- VAR TempJnlLineDim2
Įtraukite naują parametrą į funkciją RealizePostponedVAT, esančią Gener. Jnl.-Post Line kodinis vienetas (12), tada nurodykite parametrą taip:
- Pavadinimas: VATEntry
- Duomenų tipas: įrašas
- Potipis: PVM įrašas (254)
Pakeiskite kodą funkcijoje RealizePostponedVAT lauke Gen. Jnl.-Post Line kodo vienetas (12) taip:
Esamas kodas 1... GenJnlLine.COPY(GenJnlLine2); // Delete the following lines. TempJnlLineDim.RESET; TempJnlLineDim.DELETEALL; DimMgt.CopyJnlLineDimToJnlLineDim(TempJnlLineDim2,TempJnlLineDim); // End of the lines. GLSetup.GET; SourceCodeSetup.GET; ...Pakeitimo kodas 1
... GenJnlLine.COPY(GenJnlLine2); // Add the following line. PreparePostponedVATDim(VATEntry,TempJnlLineDim); GLSetup.GET; SourceCodeSetup.GET; ...Esamas kodas 2
... InitCodeUnit; // Delete the following lines. VATEntryNoToRealize := VATEntryNo; IF GenJnlLine."Account Type" = GenJnlLine."Account Type"::Customer THEN BEGIN CustLedgEntry."Transaction No." := TransactionNo; // End of the lines. CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount) END ELSE BEGIN ...Pakeitimo kodas 2
... InitCodeUnit; // Add the following lines. VATEntryNoToRealize := VATEntry."Entry No."; IF GenJnlLine."Account Type" = GenJnlLine."Account Type"::Customer THEN BEGIN CustLedgEntry."Transaction No." := VATEntry."Transaction No."; //End of the lines. CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount) END ELSE BEGIN ...Esamas kodas 3
... CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount) END ELSE BEGIN // Delete the following line. VendLedgEntry."Transaction No." := TransactionNo; VendUnrealizedVAT(VendLedgEntry,GenJnlLine.Amount); END; VATEntryNoToRealize := 0; ...3 pakeitimo kodas
... CustUnrealizedVAT(CustLedgEntry,GenJnlLine.Amount) END ELSE BEGIN // Add the following line. VendLedgEntry."Transaction No." := VATEntry."Transaction No."; VendUnrealizedVAT(VendLedgEntry,GenJnlLine.Amount); END; VATEntryNoToRealize := 0; ...Naikinti šiuos parametrus funkcijoje ReversePostponedVAT Gen. Jnl.-Post Line kodo vienetas (12):
- Operacijos Nr
- VATEntryNo
- VAR TempJnlLineDim2
Įtraukite naują parametrą į funkciją ReversePostponedVAT Gen. Jnl.-Post Line kodinis vienetas (12), tada nurodykite parametrą taip:
- Pavadinimas: PostponedVATEntry
- Duomenų tipas: įrašas
- Potipis: PVM įrašas (254)
Pakeiskite kodą funkcijoje ReversePostponedVAT lauke Gen. Jnl.-Post Line kodo vienetas (12) taip:
Esamas kodas 1... GenJnlLine.COPY(GenJnlLine2); // Delete the following lines. TempJnlLineDim.RESET; TempJnlLineDim.DELETEALL; DimMgt.CopyJnlLineDimToJnlLineDim(TempJnlLineDim2,TempJnlLineDim); // End of the lines. SourceCodeSetup.GET; GenJnlLine."Source Code" := SourceCodeSetup.Reversal; ...Pakeitimo kodas 1
... GenJnlLine.COPY(GenJnlLine2); // Add the following lines. PreparePostponedVATDim(PostponedVATEntry,TempJnlLineDim); //End of the lines. SourceCodeSetup.GET; GenJnlLine."Source Code" := SourceCodeSetup.Reversal; ...Esamas kodas 2
... VATEntry.LOCKTABLE; UnrealVATEntry.SETCURRENTKEY("Transaction No."); // Delete the following lines. IF VATEntryNo <> 0 THEN UnrealVATEntry.SETRANGE("Entry No.",VATEntryNo) ELSE UnrealVATEntry.SETRANGE("Transaction No.",TransactionNo); // End of the lines. IF UnrealVATEntry.FINDSET(TRUE) THEN REPEAT VATEntry.SETCURRENTKEY("Unrealized VAT Entry No."); ...Pakeitimo kodas 2
... VATEntry.LOCKTABLE; UnrealVATEntry.SETCURRENTKEY("Transaction No."); // Add the following lines. IF PostponedVATEntry."Entry No." <> 0 THEN UnrealVATEntry.SETRANGE("Entry No.",PostponedVATEntry."Entry No.") ELSE UnrealVATEntry.SETRANGE("Transaction No.",PostponedVATEntry."Transaction No."); //End of the lines. IF UnrealVATEntry.FINDSET(TRUE) THEN REPEAT VATEntry.SETCURRENTKEY("Unrealized VAT Entry No."); ...Sukurkite naują funkciją PreparePostponedVATDim gener. Jnl.-Post Line kodo vienetas (12) taip:
LOCAL PROCEDURE PreparePostponedVATDim@1170010(VATEntry@1170003 : Record 254;VAR TempJnlLineDim@1170000 : Record 356); VAR GLEntryVATEntryLink@1170002 : Record 253; LedgEntryDim@1170001 : Record 355; BEGIN TempJnlLineDim.RESET; TempJnlLineDim.DELETEALL; IF VATEntry.GetCVLedgEntryNo(TempJnlLineDim) = 0 THEN BEGIN GLEntryVATEntryLink.SETRANGE("VAT Entry No.",VATEntry."Entry No."); IF GLEntryVATEntryLink.FINDFIRST THEN BEGIN LedgEntryDim.SETRANGE("Table ID",DATABASE::"G/L Entry"); LedgEntryDim.SETRANGE("Entry No.",GLEntryVATEntryLink."G/L Entry No."); DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim); END; END; END;Pakeiskite funkcijos PostponeVATEntry kodą, esantį PVM administravimo vienete (12376), tokiu būdu:
Esamas kodas... VATEntry.TESTFIELD("Postponed VAT",FALSE); VATEntry.TESTFIELD("Unrealized VAT Entry No.",0); IF NOT AllowSalesCrMemo AND // Delete the following lines. (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo") // End of the lines. THEN ERROR(Text010); UNTIL VATEntry.NEXT = 0 ...Pakeitimo kodas
... VATEntry.TESTFIELD("Postponed VAT",FALSE); VATEntry.TESTFIELD("Unrealized VAT Entry No.",0); IF NOT AllowSalesCrMemo AND // Add the following line. IsPostponedSalesCrMemoVAT(VATEntry) AND HasPostedCrMemo(VATEntry."Document No.") THEN ERROR(Text010); UNTIL VATEntry.NEXT = 0 ...Pakeiskite funkcijos RealizeVATEntry kodą, esantį PVM mokėtojo kodo vienete (12376), tokiu būdu:
Esamas kodas... VATEntry.TESTFIELD("Postponed VAT",TRUE); VATEntry.TESTFIELD("Unrealized VAT Entry No.",0); IF NOT AllowSalesCrMemo AND // Delete the following lines. (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo") // End of the lines. THEN ERROR(Text010); UNTIL VATEntry.NEXT = 0 ...Pakeitimo kodas
... VATEntry.TESTFIELD("Postponed VAT",TRUE); VATEntry.TESTFIELD("Unrealized VAT Entry No.",0); IF NOT AllowSalesCrMemo AND // Add the following line. IsPostponedSalesCrMemoVAT(VATEntry) AND HasPostedCrMemo(VATEntry."Document No.") THEN ERROR(Text010); UNTIL VATEntry.NEXT = 0 ...Panaikinkite šiuos vietinius kintamuosius funkcijoje PostUnrealVAT PVM PVM kodo vienete (12376):
- TempJnlLineDim
- Įrašo Nr.
Pakeiskite funkcijos PostUnrealVAT kodą, esantį PVM administravimo vienete (12376), tokiu būdu:
Esamas kodas... ERROR(Text011, VATEntry.FIELDCAPTION("Posting Date"),VATEntry."Posting Date", VATEntry.FIELDCAPTION("Entry No."),VATEntry."Entry No."); // Delete the following lines. EntryNo := VATEntry.GetCVLedgEntryNo(TempJnlLineDim); IF EntryNo <> 0 THEN BEGIN GenJnlLine."Document Type" := VATEntry."Document Type"; GenJnlLine."Document No." := VATEntry."Document No."; GenJnlLine."Postponed VAT" := TRUE; GenJnlLine."VAT Date" := VATDate; GenJnlLine."Posting Date" := VATDate; IF VATEntry."Postponed VAT" THEN GenJnlLine.Description := Text008 ELSE GenJnlLine.Description := Text009; GenJnlLine.Description := COPYSTR( STRSUBSTNO(GenJnlLine.Description,VATEntry."Document Type",VATEntry."Document No."), 1,MAXSTRLEN(GenJnlLine.Description)); GenJnlLine."System-Created Entry" := TRUE; CASE VATEntry.Type OF VATEntry.Type::Sale: GenJnlLine."Account Type" := GenJnlLine."Account Type"::Customer; VATEntry.Type::Purchase: GenJnlLine."Account Type" := GenJnlLine."Account Type"::Vendor; END; IF Type = Type::Realize THEN PostGenJnlLine.RealizePostponedVAT(GenJnlLine,VATEntry."Transaction No.",VATEntry."Entry No.",TempJnlLineDim) ELSE // Reverse PostGenJnlLine.ReversePostponedVAT(GenJnlLine,VATEntry."Transaction No.",VATEntry."Entry No.",TempJnlLineDim); END; // End of the lines. ...Pakeitimo kodas
... ERROR(Text011, VATEntry.FIELDCAPTION("Posting Date"),VATEntry."Posting Date", VATEntry.FIELDCAPTION("Entry No."),VATEntry."Entry No."); // Add the following lines. GenJnlLine."Document Type" := VATEntry."Document Type"; GenJnlLine."Document No." := VATEntry."Document No."; GenJnlLine."Postponed VAT" := TRUE; GenJnlLine."VAT Date" := VATDate; GenJnlLine."Posting Date" := VATDate; IF VATEntry."Postponed VAT" THEN GenJnlLine.Description := Text008 ELSE GenJnlLine.Description := Text009; GenJnlLine.Description := COPYSTR( STRSUBSTNO(GenJnlLine.Description,VATEntry."Document Type",VATEntry."Document No."), 1,MAXSTRLEN(GenJnlLine.Description)); GenJnlLine."System-Created Entry" := TRUE; CASE VATEntry.Type OF VATEntry.Type::Sale: GenJnlLine."Account Type" := GenJnlLine."Account Type"::Customer; VATEntry.Type::Purchase: GenJnlLine."Account Type" := GenJnlLine."Account Type"::Vendor; END; IF Type = Type::Realize THEN PostGenJnlLine.RealizePostponedVAT(GenJnlLine,VATEntry) ELSE // Reverse PostGenJnlLine.ReversePostponedVAT(GenJnlLine,VATEntry); //End of the lines. ...Sukurkite naują funkciją HasPostedCrMemo VATManagement kodo vienete (12376) tokiu būdu:
LOCAL PROCEDURE HasPostedCrMemo@1170007(DocumentNo@1170000 : Code[20]) : Boolean; VAR SalesCrMemoHeader@1170001 : Record 114; BEGIN EXIT(SalesCrMemoHeader.GET(DocumentNo)); END;Sukurkite naują funkciją IsPostponedSalesCrMemoVAT PVM mokėtojo kodo vienete (12376) taip:
LOCAL PROCEDURE IsPostponedSalesCrMemoVAT@1170008(VATEntry@1170000 : Record 254) : Boolean; BEGIN EXIT( (VATEntry."Unrealized Base" <> 0) AND (VATEntry.Type = VATEntry.Type::Sale) AND (VATEntry."Document Type" = VATEntry."Document Type"::"Credit Memo")); END;
Būtinosios sąlygos
Norėdami taikyti šią karštąją pataisą, turite įdiegti "„Microsoft“ Dynamics NAV 2009 R2" versiją lenkų kalba.
Pašalinimo informacija
Šios karštosios pataisos pašalinti negalite.
Būsena
„„Microsoft““ patvirtino, kad tai yra „„Microsoft““ produktų, išvardytų dalyje „Taikoma“, problema.
Pastaba: tai "SPARČIOJO PUBLIKAVIMO" straipsnis, sukurtas tiesiogiai iš "„Microsoft“" palaikymo organizacijos. Čia pateikta informacija pateikiama tokia, kokia yra, reaguojant į kylančias problemas. Dėl greito jos pateikimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrėta bet kuriuo metu be išankstinio įspėjimo. Dėl kitų aplinkybių žr. Naudojimo sąlygas .