Ta članek velja za Microsoft Dynamics NAV za špansko regijo (es).
Znaki
Predpostavimo, da knjižite več računov za nakup ali prodajo v španski različici storitve Microsoft Dynamics NAV. Ko zaženete poročilo Izjava 347 (10707), ki uporablja obseg datuma dokumenta knjiženih računov, sistem nepravilno ustvari podatke v datoteki Deklaracija 347. Poleg tega sistem ne ustvari ničesar v datoteki Deklaracija 347, ko zaženete poročilo Izjava 347, ki uporablja obseg datuma knjiženja knjiženih računov. Vendar pa mora sistem uporabiti datum knjiženja namesto datuma dokumenta, ko zaženete poročilo Izjava izdelave 347 za račune.
Ta težava se pojavi v teh izdelkih:
- Španska različica programa Microsoft Dynamics NAV 2009 R2
- Španska različica servisnega paketa SP1 za Microsoft Dynamics NAV 2009
- Španska različica servisnega paketa SP1 za Microsoft Dynamics NAV 5.0
Rešitev
Informacije o sprotnem popravku
Podprt sprotni popravek je zdaj na voljo pri Microsoftu. Vendar pa je namenjen le odpravljanju težave, ki je opisana v tem članku. Uporabite ga samo za sisteme, ki imajo to težavo. Ta sprotni popravek bo morda dodatno preučen. Če vas ta težava ne prizadene, priporočamo, da počakate na naslednji servisni paket za Microsoft Dynamics NAV 2009 ali naslednjo različico storitve Microsoft Dynamics NAV, ki vsebuje ta sprotni popravek.
Opomba V posebnih primerih se lahko stroški, ki običajno nastanejo za klice podpore, prekličejo, če strokovnjak za tehnično podporo za Microsoft Dynamics in sorodne izdelke ugotovi, da bo določena posodobitev odpravila vašo težavo. Običajni stroški podpore bodo veljali za dodatna vprašanja o podpori in težave, ki ne izpolnjujejo pogojev za določeno zadevno posodobitev.
Informacije o namestitvi
Microsoft ponuja primere programiranja samo za ponazoritev, brez izrecnega ali implicitnega jamstva. To vključuje, vendar ni omejeno na, implicitna jamstva primernosti za prodajo ali primernost za določen namen. V tem članku je predvideno, da ste seznanjeni s programskim jezikom, ki je prikazan, in z orodji, ki se uporabljajo za ustvarjanje in odpravljanje napak v postopkih. Microsoftovi inženirji za podporo vam lahko pomagajo razložiti funkcionalnost določenega postopka, vendar teh primerov ne bodo spremenili, da bi zagotovili dodano funkcionalnost ali ustvarili postopke, ki ustrezajo vašim posebnim zahtevam.
Opomba Preden namestite ta sprotni popravek, preverite, ali so vsi uporabniki odjemalca Microsoft Navision odjavljeni iz sistema. To vključuje uporabnike odjemalcev Microsoft Navision Application Services (NAS). Pri uvedbi tega sprotnega popravka bi morali biti edini uporabnik odjemalca, ki je prijavljen.
Če želite izvesti ta sprotni popravek, morate imeti licenco za razvijalce.
Priporočamo, da se uporabniškemu računu v oknu »Prijave v sistem Windows« ali v oknu »Prijave v zbirko podatkov« dodeli ID vloge »SUPER«. Če uporabniškemu računu ni mogoče dodeliti ID-ja vloge »SUPER«, morate preveriti, ali ima uporabniški račun ta dovoljenja:
- Dovoljenje »Spremeni« za predmet, ki ga boste spremenili.
- Dovoljenje za izvajanje za predmet ID sistemskega objekta 5210 in za predmet ID sistemskega objekta 9015.
Opomba Ni vam treba imeti pravic do shramb podatkov, razen če morate opraviti popravilo podatkov.
Spremembe kode
Opomba Popravke kode vedno preskusite v nadzorovanem okolju, preden jih uporabite v proizvodnih računalnikih.
Če želite odpraviti težavo, sledite tem korakom:
Spremenite kodo v podatkovni postavki številka 3 v poročilu Deklaracija znamke 347 (10707) na naslednji način:
Obstoječa koda 1... VATEntry.RESET; VATEntry.SETCURRENTKEY(Type,"Posting Date","Document Type","Document No.","Bill-to/Pay-to No."); VATEntry.SETRANGE(Type,VATEntry.Type::Sale); VATEntry.SETRANGE("Document No.","Document No."); // Delete the following line. VATEntry.SETRANGE("Document Date","Document Date"); VATEntry.SETRANGE("Document Type","Document Type"); VATEntry.SETRANGE("Country/Region Code",CountryCode); IF NOT VATEntry.FINDFIRST THEN BEGIN CASE "Document Type" OF ...Nadomestna koda 1
... VATEntry.RESET; VATEntry.SETCURRENTKEY(Type,"Posting Date","Document Type","Document No.","Bill-to/Pay-to No."); VATEntry.SETRANGE(Type,VATEntry.Type::Sale); VATEntry.SETRANGE("Document No.","Document No."); // Add the following lines. VATEntry.SETRANGE("Document Date","Document Date"); VATEntry.SETRANGE("Posting Date","Posting Date"); // End of the lines. VATEntry.SETRANGE("Document Type","Document Type"); VATEntry.SETRANGE("Country/Region Code",CountryCode); IF NOT VATEntry.FINDFIRST THEN BEGIN CASE "Document Type" OF ...Obstoječa koda 2
... END; IF (VATEntry."VAT Registration No." <> '') OR NoTaxVATFound OR FromJournal THEN BEGIN CALCFIELDS("Amount (LCY)"); SalesAmt := SalesAmt + "Amount (LCY)"; // Delete the following line. UpdateQuarterAmount(AmountType::Sales,"Amount (LCY)","Document Date"); END ELSE EmptyVATRegNo := TRUE; END; OnPostDataItem=VAR ...Nadomestna koda 2
... END; IF (VATEntry."VAT Registration No." <> '') OR NoTaxVATFound OR FromJournal THEN BEGIN CALCFIELDS("Amount (LCY)"); SalesAmt := SalesAmt + "Amount (LCY)"; // Add the following lines. UpdateQuarterAmount(AmountType::Sales,"Amount (LCY)","Document Date"); UpdateQuarterAmount(AmountType::Sales,"Amount (LCY)","Posting Date"); // End of the lines. END ELSE EmptyVATRegNo := TRUE; END; OnPostDataItem=VAR ...Obstoječa koda 3
... END; END; CalcFields=Amount; DataItemLink=Customer No.=FIELD(No.), // Delete the following line. Document Date=FIELD(Date Filter); } SECTIONS { } } ...Nadomestna koda 3
... END; END; CalcFields=Amount; DataItemLink=Customer No.=FIELD(No.), // Add the following line. Posting Date=FIELD(Date Filter); } SECTIONS { } } ...Spremenite kodo v podatkovni postavki številka 6 v poročilu o deklaraciji znamke 347 (10707) na naslednji način:
Obstoječa koda 1... VATEntry.RESET; VATEntry.SETCURRENTKEY(Type,"Posting Date","Document Type","Document No.","Bill-to/Pay-to No."); VATEntry.SETRANGE(Type,VATEntry.Type::Purchase); VATEntry.SETRANGE("Document No.","Document No."); // Delete the following line. VATEntry.SETRANGE("Document Date","Document Date"); VATEntry.SETRANGE("Document Type","Document Type"); VATEntry.SETRANGE("Country/Region Code",CountryCode); IF NOT VATEntry.FINDFIRST THEN BEGIN CASE "Document Type" OF ...Nadomestna koda 1
... VATEntry.RESET; VATEntry.SETCURRENTKEY(Type,"Posting Date","Document Type","Document No.","Bill-to/Pay-to No."); VATEntry.SETRANGE(Type,VATEntry.Type::Purchase); VATEntry.SETRANGE("Document No.","Document No."); // Add the following lines. VATEntry.SETRANGE("Document Date","Document Date"); VATEntry.SETRANGE("Posting Date","Posting Date"); // End of the lines. VATEntry.SETRANGE("Document Type","Document Type"); VATEntry.SETRANGE("Country/Region Code",CountryCode); IF NOT VATEntry.FINDFIRST THEN BEGIN CASE "Document Type" OF ...Obstoječa koda 2
... END; IF (VATEntry."VAT Registration No." <> '') OR NoTaxVATFound OR FromJournal THEN BEGIN CALCFIELDS("Amount (LCY)"); PurchasesAmt := PurchasesAmt - "Amount (LCY)"; // Delete the following line. UpdateQuarterAmount(AmountType::Purchase,-"Amount (LCY)","Document Date"); END ELSE EmptyVATRegNo := TRUE; END; OnPostDataItem=BEGIN ...Nadomestna koda 2
... END; IF (VATEntry."VAT Registration No." <> '') OR NoTaxVATFound OR FromJournal THEN BEGIN CALCFIELDS("Amount (LCY)"); PurchasesAmt := PurchasesAmt - "Amount (LCY)"; // Add the following lines. UpdateQuarterAmount(AmountType::Purchase,-"Amount (LCY)","Document Date"); UpdateQuarterAmount(AmountType::Purchase,-"Amount (LCY)","Posting Date"); // End of the lines. END ELSE EmptyVATRegNo := TRUE; END; OnPostDataItem=BEGIN ...Obstoječa koda 3
... END; END; CalcFields=Amount; DataItemLink=Vendor No.=FIELD(No.), // Delete the following line. Document Date=FIELD(Date Filter); } SECTIONS { } } ...Nadomestna koda 3
... END; END; CalcFields=Amount; DataItemLink=Vendor No.=FIELD(No.), // Add the following line. Posting Date=FIELD(Date Filter); } SECTIONS { } } ...Spremenite kodo v funkciji CheckSameVATRegNo v poročilu Deklaracija Make 347 (10707), kot sledi:
Obstoječa koda 1... END ELSE BEGIN VATEntry3.SETRANGE(Type,VATEntry3.Type::Purchase); VATEntry3.SETRANGE("VAT Registration No.",Vendor."VAT Registration No."); VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Vendor."No."); END; // Delete the following line. VATEntry3.SETRANGE("Document Date",FromDate,ToDate); IF VATEntry3.FINDFIRST THEN REPEAT IF IsCustomer THEN Amt := Amt - VATEntry3.Base - VATEntry3.Amount ...Nadomestna koda 1
... END ELSE BEGIN VATEntry3.SETRANGE(Type,VATEntry3.Type::Purchase); VATEntry3.SETRANGE("VAT Registration No.",Vendor."VAT Registration No."); VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Vendor."No."); END; // Add the following lines. VATEntry3.SETRANGE("Document Date",FromDate,ToDate); VATEntry3.SETRANGE("Posting Date",FromDate,ToDate); // End of the lines. IF VATEntry3.FINDFIRST THEN REPEAT IF IsCustomer THEN Amt := Amt - VATEntry3.Base - VATEntry3.Amount ...Obstoječa koda 2
... IF IsCustomer THEN Amt := Amt - VATEntry3.Base - VATEntry3.Amount ELSE Amt := Amt + VATEntry3.Base + VATEntry3.Amount; // Delete the following line. UpdateQuarterAmount(AmountType::Sales,ABS(VATEntry3.Base) + ABS(VATEntry3.Amount),VATEntry3."Document Date"); TempVATEntry.SETRANGE("Transaction No.",VATEntry3."Transaction No."); IF NOT TempVATEntry.FINDFIRST THEN BEGIN GLEntry.SETRANGE("Transaction No.",VATEntry3."Transaction No."); IF GLEntry.FINDSET THEN REPEAT ...Nadomestna koda 2
... IF IsCustomer THEN Amt := Amt - VATEntry3.Base - VATEntry3.Amount ELSE Amt := Amt + VATEntry3.Base + VATEntry3.Amount; // Add the following lines. UpdateQuarterAmount(AmountType::Sales,ABS(VATEntry3.Base) + ABS(VATEntry3.Amount),VATEntry3."Document Date"); UpdateQuarterAmount(AmountType::Sales,ABS(VATEntry3.Base) + ABS(VATEntry3.Amount),VATEntry3."Posting Date"); // End of the lines. TempVATEntry.SETRANGE("Transaction No.",VATEntry3."Transaction No."); IF NOT TempVATEntry.FINDFIRST THEN BEGIN GLEntry.SETRANGE("Transaction No.",VATEntry3."Transaction No."); IF GLEntry.FINDSET THEN REPEAT ...Spremenite kodo v funkciji IdentifyCashPayments v poročilu Deklaracija Make 347 (10707), kot sledi:
Obstoječa koda... CustLedgerEntry@1100001 : Record 21; BEGIN CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code"); CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment); CustLedgerEntry.SETRANGE("Customer No.",CustomerNo); // Delete the following line. CustLedgerEntry.SETRANGE("Document Date",FromDate,ToDate); IF CustLedgerEntry.FINDSET THEN REPEAT IF (CustLedgerEntry."Bal. Account Type" = CustLedgerEntry."Bal. Account Type"::"G/L Account") AND (CustLedgerEntry."Bal. Account No." <> '') THEN BEGIN IF IsCashAccount(CustLedgerEntry."Bal. Account No.") THEN BEGIN ...Nadomestna koda
... CustLedgerEntry@1100001 : Record 21; BEGIN CustLedgerEntry.SETCURRENTKEY("Document Type","Customer No.","Posting Date","Currency Code"); CustLedgerEntry.SETRANGE("Document Type",CustLedgerEntry."Document Type"::Payment); CustLedgerEntry.SETRANGE("Customer No.",CustomerNo); // Add the following lines. CustLedgerEntry.SETRANGE("Document Date",FromDate,ToDate); CustLedgerEntry.SETRANGE("Posting Date",FromDate,ToDate); // End of the lines. IF CustLedgerEntry.FINDSET THEN REPEAT IF (CustLedgerEntry."Bal. Account Type" = CustLedgerEntry."Bal. Account Type"::"G/L Account") AND (CustLedgerEntry."Bal. Account No." <> '') THEN BEGIN IF IsCashAccount(CustLedgerEntry."Bal. Account No.") THEN BEGIN ...Spremenite kodo v funkciji »CreateCashTotals« v poročilu »Izjava »Naredi 347« (10707), kot sledi:
Obstoječa koda 1... IF DtldCustLedgEntry2."Cust. Ledger Entry No." <> DtldCustLedgEntry2."Applied Cust. Ledger Entry No." THEN BEGIN IF CustLedgerEntry.GET(DtldCustLedgEntry2."Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Delete the following line. DATE2DMY(CustLedgerEntry."Document Date",3),-(DtldCustLedgEntry2."Amount (LCY)")); END; UNTIL DtldCustLedgEntry2.NEXT = 0; END ELSE BEGIN IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, ...Nadomestna koda 1
... IF DtldCustLedgEntry2."Cust. Ledger Entry No." <> DtldCustLedgEntry2."Applied Cust. Ledger Entry No." THEN BEGIN IF CustLedgerEntry.GET(DtldCustLedgEntry2."Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Add the following lines. DATE2DMY(CustLedgerEntry."Document Date",3),-(DtldCustLedgEntry2."Amount (LCY)")); DATE2DMY(CustLedgerEntry."Posting Date",3),-(DtldCustLedgEntry2."Amount (LCY)")); // End of the lines. END; UNTIL DtldCustLedgEntry2.NEXT = 0; END ELSE BEGIN IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, ...Obstoječa koda 2
... END; UNTIL DtldCustLedgEntry2.NEXT = 0; END ELSE BEGIN IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Delete the following line. DATE2DMY(CustLedgerEntry."Document Date",3),DtldCustLedgEntry."Amount (LCY)"); END; UNTIL DtldCustLedgEntry.NEXT = 0; END; LOCAL PROCEDURE IsCashAccount@1100015(GLAccountNo@1100000 : Text[20]) : Boolean; ...Nadomestna koda 2
... END; UNTIL DtldCustLedgEntry2.NEXT = 0; END ELSE BEGIN IF CustLedgerEntry.GET(DtldCustLedgEntry."Applied Cust. Ledger Entry No.") THEN UpdateCustomerCashBuffer(VATRegistrationNo, // Add the following lines. DATE2DMY(CustLedgerEntry."Document Date",3),DtldCustLedgEntry."Amount (LCY)"); DATE2DMY(CustLedgerEntry."Posting Date",3),DtldCustLedgEntry."Amount (LCY)"); // End of the lines. END; UNTIL DtldCustLedgEntry.NEXT = 0; END; LOCAL PROCEDURE IsCashAccount@1100015(GLAccountNo@1100000 : Text[20]) : Boolean; ...Spremenite kodo v funkciji UpdateNotIn347Amount v poročilu Deklaracija naredi 347 (10707) na naslednji način:
Obstoječa koda... BEGIN WITH GLEntry DO BEGIN GLAccount.GET("G/L Account No."); IF GLAccount."Ignore in 347 Report" THEN BEGIN NotIn347Amt := NotIn347Amt + Amount + "VAT Amount"; // Delete the following line. UpdateQuarterAmount(AmountType::NotIn347Report,Amount + "VAT Amount","Document Date"); END; END; END; BEGIN ...Nadomestna koda
... BEGIN WITH GLEntry DO BEGIN GLAccount.GET("G/L Account No."); IF GLAccount."Ignore in 347 Report" THEN BEGIN NotIn347Amt := NotIn347Amt + Amount + "VAT Amount"; // Add the following lines. UpdateQuarterAmount(AmountType::NotIn347Report,Amount + "VAT Amount","Document Date"); UpdateQuarterAmount(AmountType::NotIn347Report,Amount + "VAT Amount","Posting Date"); // End of the lines. END; END; END; BEGIN ...
Pogoji
Če želite uporabiti ta sprotni popravek, morate imeti nameščenega enega od teh izdelkov:
- Španska različica programa Microsoft Dynamics NAV 2009 R2
- Španska različica servisnega paketa SP1 za Microsoft Dynamics NAV 2009
- Španska različica servisnega paketa SP1 za Microsoft Dynamics NAV 5.0
Podatki o odstranitvi
Tega sprotnega popravka ne morete odstraniti.
Stanje
Microsoft je potrdil, da gre za težavo v Microsoftovih izdelkih, ki so navedeni v razdelku »Velja za«.
Opomba To je članek »FAST PUBLISH«, ustvarjen neposredno v Microsoftovi organizaciji za podporo. Informacije, ki jih vsebuje ta dokument, so na voljo kot odgovor na nastajajoča vprašanja. Zaradi hitrosti dajanja na voljo lahko gradivo vsebuje tipografske napake in jih je mogoče kadar koli brez predhodnega obvestila revidirati. Za druge pomisleke glejte Pogoje uporabe .