Požymiai
Bazės ir sumos grupuojamos neteisingai patį PVM procentas ir laikotarpio 340 deklaracijoje su PVM pinigų dalyvauja ispanų kalba ir Microsoft Dynamics NAV 2009.kodo pasikeitimus skyriuje išspręsti šią problemą. Ši problema iškyla faile šiems produktams:
Tą patį scenarijų su įprastą PVM taip, kaip tikimasi, atskirti kiekvienos sąskaitos faktūros, neatsižvelgiant į tai, ar jie pat PVM dalimi. Atlikite veiksmus,-
Ispanų kalba ir Microsoft Dynamics NAV 2009 R2
-
Ispanų kalba ir Microsoft Dynamics NAV 2009 SP1
Sprendimas
Karštųjų pataisų informacija
Palaikomą naujausią pataisą dabar yra Microsoft. Tačiau jos skirtos tik šiame straipsnyje aprašytai problemai spręsti. Taikyti ją tik sistemoms, kuriose kyla ši konkreti problema. Šios karštosios pataisos gali būti papildomai išbandoma. Todėl, jei jums nelabai trukdo Ši problema, rekomenduojame palaukti kito "Microsoft Dynamics NAV 2009" pakeitimų paketo arba kitą versiją Microsoft Dynamics NAV, kuriame bus šios karštosios pataisos.
Pastaba. Konkrečiais atvejais už palaikymo skambučius gali būti atšaukti, jei techninės pagalbos specialistas Microsoft Dynamics ir susijusių produktų taikomi įprasti mokesčiai nustato, kad jūsų problemą galima išspręsti naudojant konkretų naujinimą. Į įprastos kainos už palaikymą taikomos papildomos palaikymo klausimams ir problemoms, kurių negalima išspręsti naudojant minėtą naujinimą.Diegimo informacija
Microsoft pateikia programavimo pavyzdžius tik, tačiau nesuteikia jokių aiškių arba numanomų garantijų. Tai apima, bet neapsiribojant, numanomas garantijas dėl perkamumo ir tinkamumo konkrečiam tikslui. Šis straipsnis parašytas galvojant, kad esate susipažinę su pateikta programavimo kalba ir įrankiais, kurie yra naudojami procedūroms kurti ir derinti. "Microsoft" palaikymo inžinieriai gali padėti paaiškindami konkrečios procedūros funkcines galimybes. Tačiau jie nekeis šių pavyzdžių, kad numatytų papildomą funkcinę galimybę arba sukurtų konkrečius jūsų reikalavimus atitinkančias procedūras.
Pastaba. Prieš diegdami šias karštąsias pataisas, patikrinkite, kad visi Microsoft Dynamics NAV kliento vartotojai išsiregistravę sistema. Tai apima Microsoft Dynamics NAV programų serverio (NAS) paslaugas. Jums turėtų būti tik kliento vartotojo, kuris yra prisijungęs, kai atliekate šias karštąsias pataisas. Norint pritaikyti šią karštąją pataisą, turite programų kūrėjo licencijos. Rekomenduojame, kad vartotojo abonemento Windows registravimosi lange arba duomenų bazės prisijungimų langas priskirti "SUPER" vaidmenį ID. Jei vartotojo abonementas negali būti priskirta "SUPER" ID., turi patikrinti, kad vartotojo abonementas turi šias teises:-
Keisti teisės objektas, kuris bus pakeisti.
-
Teisės vykdyti sistemos objekto ID 5210 objekto ir sistemos objekto ID 9015
objekto.
Pastaba. Jūs neturite turėti teisių į duomenų parduotuvių, nebent jūs turite atlikti duomenų atkūrimo.
Pastaba.
Pastaba. Visada bandymas kodas nustato kontroliuojamoje aplinkoje prieš taikydami nustato savo gamybos kompiuteriams.
Norėdami išspręsti šią problemą, atlikite šiuos veiksmus:-
Pakeisti padaryti 340 deklaracijos ataskaitoje (10743) taip:
Esamas kodas 1... END;
END; // Delete the following line. OnAfterGetRecord=BEGIN // End of the deleted line. OperationCode := GetOperationCode(VATEntry2); VATBuffer."VAT %" := "VAT %"; ...Atsarginis kodas 1
... END;
END; // Add the following lines. OnAfterGetRecord=VAR VendLedgEntryAppl@1100000 : Record 25; NewEntry@1100001 : Boolean; BEGIN // End of the added lines. OperationCode := GetOperationCode(VATEntry2); VATBuffer."VAT %" := "VAT %"; ...Esamas kodas 2
... VATBuffer.Amount := Amount;
END; VATBuffer.INSERT; // Delete the following lines. IF Type = VATEntry.Type::Purchase THEN BEGIN VATEntryTemporary := VATEntry2; VATEntryTemporary.INSERT; END; END; // End of the deleted lines. END; TotalFields=Base,Amount; ...Atsarginis kodas 2
...VATBuffer.Amount := Amount;
END; VATBuffer.INSERT; // Add the following lines. END; IF Type = VATEntry.Type::Purchase THEN IF HasBeenRealized("Entry No.") OR ("Unrealized VAT Entry No." <> 0) THEN BEGIN NewEntry := CheckVLEApplication(VATEntry2); VATEntryTemporary.SETRANGE("Posting Date","Posting Date"); VATEntryTemporary.SETRANGE("Document No.","Document No."); VATEntryTemporary.SETRANGE("Document Type","Document Type"); VATEntryTemporary.SETRANGE(Type,Type); VATEntryTemporary.SETRANGE("VAT %","VAT %"); VATEntryTemporary.SETRANGE("Transaction No.","Transaction No."); IF VATEntryTemporary.FINDFIRST AND NOT NewEntry THEN BEGIN VATEntryTemporary.Base += Base; VATEntryTemporary.Amount += Amount; VATEntryTemporary.MODIFY; END ELSE BEGIN VATEntryTemporary := VATEntry2; VATEntryTemporary.INSERT; END; END ELSE BEGIN VATEntryTemporary := VATEntry2; VATEntryTemporary.INSERT; END; // End of the added lines. END; TotalFields=Base,Amount; ...Esamas kodas 3
... DataItemVarName=<Integer2>;
OnPreDataItem=BEGIN VATBuffer.FIND('-'); VATEntryTemporary.SETCURRENTKEY("VAT %","EC %"); IF VATEntryTemporary.FINDFIRST THEN; CurrReport.CREATETOTALS(VATBuffer2.Base,VATBuffer2.Amount); Fin := FALSE; ...Pakeitimo kodas 3
... DataItemVarName=<Integer2>;
OnPreDataItem=BEGIN VATBuffer.FIND('-'); // Delete the following line. VATEntryTemporary.SETCURRENTKEY("VAT %","EC %"); // End of the deleted line. IF VATEntryTemporary.FINDFIRST THEN; CurrReport.CREATETOTALS(VATBuffer2.Base,VATBuffer2.Amount); Fin := FALSE; ...Esamas kodas 4
...IF VATEntry.Type = VATEntry.Type::Purchase THEN BEGIN
VATEntryTemporary.Amount := VATBuffer.Amount; VATDeductAmt := CheckDeductibleVAT(VATEntryTemporary); // Delete the following lines. VATEntryTemporary.NEXT; RecordTypePurchase(VATEntry2); // End of the deleted lines. END; Fin := VATBuffer.NEXT = 0; END; ...Pakeitimo kodekso 4
... IF VATEntry.Type = VATEntry.Type::Purchase THEN BEGIN
VATEntryTemporary.Amount := VATBuffer.Amount; VATDeductAmt := CheckDeductibleVAT(VATEntryTemporary); // Add the following lines. VATEntryTemporary.SETCURRENTKEY("VAT %","EC %"); VATEntryTemporary.SETRANGE("VAT %",VATBuffer."VAT %"); VATEntryTemporary.SETRANGE("EC %",VATBuffer."EC %"); VATEntryTemporary.FINDSET; REPEAT RecordTypePurchase(VATEntryTemporary); UNTIL VATEntryTemporary.NEXT = 0; // End of the added lines. END; Fin := VATBuffer.NEXT = 0; END; ... -
Keisti kodo visuotinio kintamieji padaryti 340 deklaracijos ataskaitoje (10743) taip:
Esamas kodas...VATEntryTemporary@1100078 : TEMPORARY Record 254;
TempDeclarationLines@1100149 : TEMPORARY Record 10744; TempVATEntry@1100007 : TEMPORARY Record 254; CommonDialogMgt@1100015 : Codeunit 412; OutFile@1100016 : File; DeclarationNum@1100017 : Text[4]; ...Pastaba.
... VATEntryTemporary@1100078 : TEMPORARY Record 254;
TempDeclarationLines@1100149 : TEMPORARY Record 10744; TempVATEntry@1100007 : TEMPORARY Record 254; // Add the following line. TempDtldVendLedgerEntry@1100115 : TEMPORARY Record 380; // End of the added line. CommonDialogMgt@1100015 : Codeunit 412; OutFile@1100016 : File; DeclarationNum@1100017 : Text[4]; ... -
Pakeisti RecordTypePurchase funkcija padaryti 340 deklaracijos ataskaitoje (10743) taip:
Esamas kodas... END ELSE
OperationDateText := FormatDate(VATEntryRec."Posting Date"); // Delete the following lines. IF VATEntryRec."Document Type" IN [VATEntryRec."Document Type"::Payment,VATEntryRec."Document Type"::Refund] THEN BEGIN UnrealizedVATEntryNo := VATEntryRec."Unrealized VAT Entry No."; DocumentDate := VATEntryRec."Posting Date"; IF UnrealizedVATEntryNo <> 0 THEN BEGIN UnrealizedVATEntry.GET(UnrealizedVATEntryNo); OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date"); DocumentDate := UnrealizedVATEntry."Document Date"; // End of the deleted lines. END; END ELSE UnrealizedVATEntryNo := 0; ...Pastaba.
... END ELSE
OperationDateText := FormatDate(VATEntryRec."Posting Date"); // Add the following lines. VATBuffer2.Base := VATBuffer.Base; VATBuffer2.Amount := VATBuffer.Amount; IF VATEntryRec."Document Type" IN [VATEntryRec."Document Type"::Payment,VATEntryRec."Document Type"::Refund] THEN BEGIN UnrealizedVATEntryNo := VATEntryTemporary."Unrealized VAT Entry No."; DocumentDate := VATEntryTemporary."Posting Date"; IF UnrealizedVATEntryNo <> 0 THEN BEGIN UnrealizedVATEntry.GET(UnrealizedVATEntryNo); OperationDateText := FormatDate(UnrealizedVATEntry."Posting Date"); DocumentDate := UnrealizedVATEntry."Document Date"; IF FindPmtOrderBillGrBankAcc(VATEntry.Type,VATEntry."Document No.") = '' THEN BEGIN VendorDocumentNo := UnrealizedVATEntry."External Document No."; VATBuffer2.Base := VATEntryTemporary.Base; VATBuffer2.Amount := VATEntryTemporary.Amount; END; // End of the added lines. END; END ELSE UnrealizedVATEntryNo := 0; ... -
Pakeisti CheckVLEApplication funkcija padaryti 340 deklaracijos ataskaitoje (10743) taip:
Esamas kodas... PrevDeclarationNumEnable := ReplaceDeclaration;
END; BEGIN END. } ...Pastaba.
...PrevDeclarationNumEnable := ReplaceDeclaration;
END; // Add the following lines. LOCAL PROCEDURE CheckVLEApplication@1100074(VATEntry@1100000 : Record 254) : Boolean; VAR VendorLedgerEntry@1100001 : Record 25; DtldVendLedgEntry@1100002 : Record 380; CheckVendLedgEntry@1100003 : Record 25; UnrealizedVendLedgEntry@1100004 : Integer; BEGIN FilterVendLedgerEntryByVATEntry(VendorLedgerEntry,VATEntry); UnrealizedVendLedgEntry := GetUnrealizedInvoiceVLENo(VATEntry."Unrealized VAT Entry No."); IF VendorLedgerEntry.FINDSET THEN REPEAT DtldVendLedgEntry.RESET; DtldVendLedgEntry.SETRANGE(Unapplied,FALSE); DtldVendLedgEntry.SETRANGE("Entry Type",DtldVendLedgEntry."Entry Type"::Application); DtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.",VendorLedgerEntry."Entry No."); IF UnrealizedVendLedgEntry <> 0 THEN DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",UnrealizedVendLedgEntry); IF DtldVendLedgEntry.FINDSET THEN REPEAT IF (DtldVendLedgEntry."Vendor Ledger Entry No." <> DtldVendLedgEntry."Applied Vend. Ledger Entry No.") AND CheckVendLedgEntry.GET(DtldVendLedgEntry."Vendor Ledger Entry No.") THEN BEGIN IF ExistDtldVLE(DtldVendLedgEntry."Vendor Ledger Entry No.",DtldVendLedgEntry."Applied Vend. Ledger Entry No.") THEN EXIT(FALSE); InsertTempDtldVLE(DtldVendLedgEntry."Vendor Ledger Entry No.",DtldVendLedgEntry."Applied Vend. Ledger Entry No."); EXIT(TRUE); END; UNTIL DtldVendLedgEntry.NEXT = 0 ELSE BEGIN DtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No."); DtldVendLedgEntry.SETRANGE("Vendor Ledger Entry No.",VendorLedgerEntry."Entry No."); IF UnrealizedVendLedgEntry <> 0 THEN DtldVendLedgEntry.SETRANGE("Applied Vend. Ledger Entry No.",UnrealizedVendLedgEntry); IF DtldVendLedgEntry.FINDSET THEN REPEAT IF CheckVendLedgEntry.GET(DtldVendLedgEntry."Applied Vend. Ledger Entry No.") THEN BEGIN IF ExistDtldVLE(DtldVendLedgEntry."Applied Vend. Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No.") THEN EXIT(FALSE); InsertTempDtldVLE(DtldVendLedgEntry."Applied Vend. Ledger Entry No.",DtldVendLedgEntry."Vendor Ledger Entry No."); EXIT(TRUE); END; UNTIL DtldVendLedgEntry.NEXT = 0; END; UNTIL VendorLedgerEntry.NEXT = 0; EXIT(TRUE); END; LOCAL PROCEDURE GetUnrealizedInvoiceVLENo@1100075(VATEntryNo@1100000 : Integer) : Integer; VAR VATEntry@1100002 : Record 254; VendLedgEntry@1100001 : Record 25; BEGIN IF NOT VATEntry.GET(VATEntryNo) THEN EXIT(0); FilterVendLedgerEntryByVATEntry(VendLedgEntry,VATEntry); IF VendLedgEntry.FINDFIRST THEN EXIT(VendLedgEntry."Entry No."); EXIT(0); END; LOCAL PROCEDURE FilterVendLedgerEntryByVATEntry@1100087(VAR VendLedgEntry@1100001 : Record 25;VATEntry@1100000 : Record 254); BEGIN VendLedgEntry.SETRANGE("Vendor No.",VATEntry."Bill-to/Pay-to No."); VendLedgEntry.SETRANGE("Posting Date",VATEntry."Posting Date"); VendLedgEntry.SETRANGE("Document Type",VATEntry."Document Type"); VendLedgEntry.SETRANGE("Document No.",VATEntry."Document No."); VendLedgEntry.SETRANGE("Transaction No.",VATEntry."Transaction No."); END; LOCAL PROCEDURE HasBeenRealized@1100064(VATEntryNo@1100000 : Integer) : Boolean; VAR UnrealizedVATEntry@1100001 : Record 254; BEGIN UnrealizedVATEntry.SETRANGE("Unrealized VAT Entry No.",VATEntryNo); EXIT(NOT UnrealizedVATEntry.ISEMPTY); END; LOCAL PROCEDURE ExistDtldVLE@1100195(VLENo@1100001 : Integer;AppliedVLENo@1100000 : Integer) : Boolean; BEGIN TempDtldVendLedgerEntry.SETRANGE("Vendor Ledger Entry No.",VLENo); TempDtldVendLedgerEntry.SETRANGE("Applied Vend. Ledger Entry No.",AppliedVLENo); EXIT(NOT TempDtldVendLedgerEntry.ISEMPTY); END; LOCAL PROCEDURE InsertTempDtldVLE@1100191(VLENo@1100000 : Integer;AppliedVLENo@1100001 : Integer); BEGIN TempDtldVendLedgerEntry.INIT; IF TempDtldVendLedgerEntry.FINDLAST THEN; TempDtldVendLedgerEntry."Entry No." += 1; TempDtldVendLedgerEntry."Vendor Ledger Entry No." := VLENo; TempDtldVendLedgerEntry."Applied Vend. Ledger Entry No." := AppliedVLENo; TempDtldVendLedgerEntry.INSERT; END; // End of the added lines. BEGIN END. } ...
Būtinosios sąlygos
Turi būti viena iš toliau nurodytų produktų, norint taikyti šias karštąsias pataisas:
-
Ispanų kalba ir Microsoft Dynamics NAV 2009 R2
-
Ispanų kalba ir Microsoft Dynamics NAV 2009 SP1
Pašalinimo informacija
Jūs negalite pašalinti šias karštąsias pataisas.
Būsena
„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.
Pastaba. Tai yra "GREITAI PUBLIKUOJAMAS" straipsnis, sukurtas tiesiogiai Microsoft palaikymo tarnybos. Čia pateikta informacija yra atsakas į kylančius klausimus. Dėl greito publikavimo medžiagoje gali būti spausdinimo klaidų ir ji gali būti peržiūrima bet kuriuo metu be įspėjimo. Naudojimoieškokite kitų priežasčių.