Ovaj članak se odnosi na Microsoft Dynamics NAV za lokalni standard italijanskog (it).
Simptomi
Pretpostavimo da imate fakturu koja je kreirana za dobavljača iz Evropske unije (EU) u italijanskoj verziji usluge Microsoft Dynamics NAV 2009. Kada knjižite knjižni knjižni odobrenje za fakturu u drugom periodu, linija knjižnog odobrenja se ne uključuje u intrastat dnevnik.
Ovaj problem se javlja u sledećim proizvodima:
- Italijanska verzija sistema Microsoft Dynamics NAV 2009 R2
- Italijanska verzija Microsoft Dynamics NAV 2009 servisni paket 1 (SP1)
- Italijanska verzija Microsoft Dynamics NAV 5.0 servisni paket 1 (SP1)
Rešenje
Informacije o hitnim ispravkama
Podržana hitna ispravka je sada dostupna od korporacije Microsoft. Međutim, namena je samo za rešavanje problema koji je opisan u ovom članku. Primenite je samo na sisteme koji imaju ovaj određeni problem. Ova hitna ispravka može proći dodatno testiranje. Stoga, ako ovaj problem ne utiče ozbiljno, preporučujemo da sačekate sledeći servisni paket za Microsoft Dynamics NAV ili sledeću verziju programa Microsoft Dynamics NAV koja sadrži ovu hitnu ispravku.
Napomena: U posebnim slučajevima, troškovi koji se obično nastaju za pozive podršci mogu biti otkazani ako stručnjak za tehničku podršku za Microsoft Dynamics i srodne proizvode utvrdi da će određena ispravka rešiti problem. Uobičajeni troškovi podrške primenjivaće se na dodatna pitanja podrške i probleme koji ne ispunjavaju uslove za određenu ispravku u pitanju.
Informacije o instalaciji
Microsoft pruža primere programiranja samo za ilustraciju, bez izričite ili podrazumevane garancije. Ovo uključuje, ali nije ograničeno na, podrazumevane garancije o podesnosti za prodaju ili o podesnosti za određenu namenu. U ovom članku se pretpostavlja da ste upoznati sa programskim jezikom koji se demonstrira i sa alatkama koje se koriste za kreiranje procedura i otklanjanje grešaka. Inženjeri Microsoft podrške mogu da vam objasne funkcionalnost određene procedure, ali neće izmeniti ove primere da bi obezbedili dodatnu funkcionalnost ili konstruisali procedure koje ispunjavaju vaše određene zahteve.
Napomena: Pre nego što instalirate ovu hitnu ispravku, proverite da li su svi korisnici Microsoft Navision klijenta odjavljeni iz sistema. To uključuje korisnike Microsoft Navision Application Services (NAS) klijenta. Vi bi trebalo da budete jedini korisnik klijenta koji je prijavljen kada primenjujete ovu hitnu ispravku.
Da biste primenili ovu hitnu ispravku, morate imati licencu za projektante.
Preporučujemo da se korisničkom nalogu u prozoru "Prijavljivanje u operativni sistem Windows" ili u prozoru "Prijavljivanje u bazu podataka" dodeli ID uloge "SUPER". Ako korisničkom nalogu nije moguće dodeliti ID uloge "SUPER", morate da proverite da li korisnički nalog ima sledeće dozvole:
- Dozvola "Izmeni" za objekat koji ćete menjati.
- Dozvola za izvršavanje za objekat sistema ID 5210 i za objekat sistema ID 9015.
Napomena: Ne morate da imate prava na skladišta podataka osim ako ne morate da izvršite popravku podataka.
Promene kodova
Napomena: Popravke kodova uvek testirajte u kontrolisanom okruženju pre nego što ih primenite na računare proizvodnje.
Pratite ove korake da biste rešili problem:
Promenite kôd u stavci podataka broj 2 u izveštaju "Preuzimanje stavke glavne knjige (594) na sledeći način:
Postojeći kôd 1... SETRANGE("Country/Region Code",''); END; IntrastatJnlLine2.SETCURRENTKEY("Source Type","Source Entry No."); IntrastatJnlLine2.SETRANGE("Source Type",IntrastatJnlLine2."Source Type"::"Item entry"); ...Kôd za zamenu 1
... SETRANGE("Country/Region Code",''); END; // Add the following line. IntrastatJnlLine2.SETRANGE("Journal Batch Name",IntrastatJnlBatch.Name); IntrastatJnlLine2.SETCURRENTKEY("Source Type","Source Entry No."); IntrastatJnlLine2.SETRANGE("Source Type",IntrastatJnlLine2."Source Type"::"Item entry"); ...Postojeći kôd 2
... WITH ValueEntry DO BEGIN SETCURRENTKEY("Item Ledger Entry No."); // Delete the following line. SETRANGE("Valuation Date",StartDate,EndDate); SETRANGE("Entry Type","Entry Type"::"Direct Cost"); SETFILTER("Invoiced Quantity",'<>%1', 0); SETFILTER( ...Kôd zamene 2
... WITH ValueEntry DO BEGIN SETCURRENTKEY("Item Ledger Entry No."); // Add the following line. SETRANGE("Posting Date",StartDate,EndDate); SETRANGE("Entry Type","Entry Type"::"Direct Cost"); SETFILTER("Invoiced Quantity",'<>%1', 0); SETFILTER( ...Postojeći kôd 3
... END; OnAfterGetRecord=VAR // Delete the following lines. Location@1000 : Record 14; ItemLedgEntry@1001 : Record 32; SalesShipmentLine@1010 : Record 111; ReturnReceiptLine@1009 : Record 6661; PurchRcptLine@1008 : Record 121; ReturnShipmentLine@1007 : Record 6651; ServiceShipmentLine@1004 : Record 5991; ServiceCrMemoLine@1003 : Record 5995; Include@1002 : Boolean; // End of the lines. PurchInvLine@1130000 : Record 123; PurchCrMemoLine@1130001 : Record 125; SalesInvoiceLine@1130002 : Record 113; ...Kôd za zamenu 3
... END; OnAfterGetRecord=VAR // Add the following line. PurchRcptLine@1008 : Record 121; PurchInvLine@1130000 : Record 123; PurchCrMemoLine@1130001 : Record 125; SalesInvoiceLine@1130002 : Record 113; ...Postojeći kôd 4
... IF IntrastatJnlLine2.FINDFIRST THEN CurrReport.SKIP; // Delete the following lines. CASE TRUE OF "Drop Shipment": BEGIN IF ("Country/Region Code" = CompanyInfo."Country/Region Code") OR ("Country/Region Code" = '') THEN CurrReport.SKIP; IF "Applies-to Entry" = 0 THEN BEGIN ItemLedgEntry.SETCURRENTKEY("Item No.","Posting Date"); ItemLedgEntry.SETRANGE("Item No.","Item No."); ItemLedgEntry.SETRANGE("Posting Date","Posting Date"); ItemLedgEntry.SETRANGE("Applies-to Entry","Entry No."); ItemLedgEntry.FINDFIRST; END ELSE ItemLedgEntry.GET("Applies-to Entry"); IF (ItemLedgEntry."Country/Region Code" <> CompanyInfo."Country/Region Code") AND (ItemLedgEntry."Country/Region Code" <> '') THEN CurrReport.SKIP; END; "Entry Type" = "Entry Type"::Transfer: BEGIN IF ("Country/Region Code" = CompanyInfo."Country/Region Code") OR ("Country/Region Code" = '') THEN CurrReport.SKIP; IF "Transfer Order No." = '' THEN BEGIN Location.GET("Location Code"); IF (Location."Country/Region Code" <> '') AND (Location."Country/Region Code" <> CompanyInfo."Country/Region Code") THEN CurrReport.SKIP; END ELSE BEGIN ItemLedgEntry.SETRANGE("Transfer Order No.","Transfer Order No."); ItemLedgEntry.SETFILTER("Country/Region Code",'%1 | %2','',CompanyInfo."Country/Region Code"); IF ItemLedgEntry.FINDSET THEN REPEAT Location.GET(ItemLedgEntry."Location Code"); IF Location."Use As In-Transit" THEN Include := TRUE; UNTIL Include OR (ItemLedgEntry.NEXT = 0); IF NOT Include THEN CurrReport.SKIP; END; END; "Location Code" <> '': BEGIN Location.GET("Location Code"); CheckILE(Location."Country/Region Code"); END ELSE BEGIN IF "Entry Type" = "Entry Type"::Purchase THEN CheckILE(CompanyInfo."Ship-to Country/Region Code"); IF "Entry Type" = "Entry Type"::Sale THEN CheckILE(CompanyInfo."Country/Region Code"); END; END; CASE TRUE OF "Document Type" = "Document Type"::"Sales Shipment": IF SalesShipmentLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(SalesShipmentLine."VAT Bus. Posting Group",SalesShipmentLine."VAT Prod. Posting Group") THEN; ("Document Type" = "Document Type"::"Sales Return Receipt") OR ("Document Type" = "Document Type"::"Sales Credit Memo"): IF ReturnReceiptLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ReturnReceiptLine."VAT Bus. Posting Group",ReturnReceiptLine."VAT Prod. Posting Group") THEN; "Document Type" = "Document Type"::"Purchase Receipt": IF PurchRcptLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(PurchRcptLine."VAT Bus. Posting Group",PurchRcptLine."VAT Prod. Posting Group") THEN; ("Document Type" = "Document Type"::"Purchase Return Shipment") OR ("Document Type" = "Document Type"::"Purchase Credit Memo"): IF ReturnShipmentLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ReturnShipmentLine."VAT Bus. Posting Group",ReturnShipmentLine."VAT Prod. Posting Group") THEN; "Document Type" = "Document Type"::"Service Shipment": IF ServiceShipmentLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ServiceShipmentLine."VAT Bus. Posting Group",ServiceShipmentLine."VAT Prod. Posting Group") THEN; "Document Type" = "Document Type"::"Service Credit Memo": IF ServiceCrMemoLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ServiceCrMemoLine."VAT Bus. Posting Group",ServiceCrMemoLine."VAT Prod. Posting Group") THEN; END; IF VATPostingSetup."EU Service" THEN CurrReport.SKIP; IF ("Entry Type" = "Entry Type"::Sale) AND (SalesShipmentHeader.GET("Document No.")) AND (CompanyInfo."Country/Region Code" = SalesShipmentHeader."Bill-to Country/Region Code") THEN CurrReport.SKIP; // End of the lines. TotalInvoicedQty := 0; TotalAmt := 0; ...Kôd zamene 4
... IF IntrastatJnlLine2.FINDFIRST THEN CurrReport.SKIP; // Add the following line. TestILE("Item Ledger Entry"); TotalInvoicedQty := 0; TotalAmt := 0;Promenite kôd u stavci podataka broj 5 u izveštaju "Preuzmi stavke (594) na sledeći način:
Postojeći kôd... { } } } REQUESTFORM { ...Kôd za zamenu
... { } } // Add the following lines. { PROPERTIES { DataItemTable=Table5802; DataItemTableView=SORTING(Entry No.); OnPreDataItem=BEGIN SETRANGE("Posting Date",StartDate,EndDate); SETFILTER("Item Charge No.",'<> %1',''); "Item Ledger Entry".SETRANGE("Posting Date"); IF IntrastatJnlBatch.Type = IntrastatJnlBatch.Type::Purchases THEN SETFILTER("Item Ledger Entry Type",'%1|%2', "Item Ledger Entry Type"::Purchase, "Item Ledger Entry Type"::Transfer) ELSE SETRANGE("Item Ledger Entry Type","Item Ledger Entry Type"::Sale); IntrastatJnlLine2.SETRANGE("Journal Batch Name",IntrastatJnlBatch.Name); IntrastatJnlLine2.SETCURRENTKEY("Source Type","Source Entry No."); IntrastatJnlLine2.SETRANGE("Source Type",IntrastatJnlLine2."Source Type"::"Item entry"); END; OnAfterGetRecord=BEGIN IntrastatJnlLine2.SETRANGE("Source Entry No.","Item Ledger Entry No."); IF IntrastatJnlLine2.FINDFIRST THEN CurrReport.SKIP; IF "Item Ledger Entry".GET("Item Ledger Entry No.") THEN BEGIN IF ("Item Ledger Entry"."Posting Date" > StartDate) AND ("Item Ledger Entry"."Posting Date" < EndDate) THEN CurrReport.SKIP; IF "Country/Region".GET("Item Ledger Entry"."Country/Region Code") THEN IF "Country/Region"."EU Country/Region Code" = '' THEN CurrReport.SKIP; TestILE("Item Ledger Entry"); InsertValueEntryLine; END; END; } SECTIONS { { PROPERTIES { SectionType=Body; SectionWidth=12000; SectionHeight=846; } CONTROLS { } } } } // End of the lines. } REQUESTFORM { ...Promenite kôd u dokumentaciji u izveštaju "Preuzmi stavke stavke u glavnoj knjizi (594) na sledeći način:
Postojeći kôd... IntrastatJnlBatch2.SETRANGE(Type,IntrastatJnlBatch.Type); END; // Delete the following line. BEGIN END. } RDLDATA ...Kôd za zamenu
... IntrastatJnlBatch2.SETRANGE(Type,IntrastatJnlBatch.Type); END; // Add the following lines. PROCEDURE TestILE@1130001(ItemLedgEntry@1130000 : Record 32); VAR Location@1130001 : Record 14; ItemLedgEntry2@1130002 : Record 32; Include@1130003 : Boolean; SalesShipmentHeader@1130004 : Record 110; SalesShipmentLine@1130005 : Record 111; PurchRcptLine@1130006 : Record 121; ReturnReceiptLine@1130007 : Record 6661; ReturnShipmentLine@1130008 : Record 6651; ServiceShipmentLine@1130009 : Record 5991; ServiceCrMemoLine@1130010 : Record 5995; BEGIN WITH ItemLedgEntry DO BEGIN CASE TRUE OF "Drop Shipment": BEGIN IF ("Country/Region Code" = CompanyInfo."Country/Region Code") OR ("Country/Region Code" = '') THEN CurrReport.SKIP; IF "Applies-to Entry" = 0 THEN BEGIN ItemLedgEntry2.SETCURRENTKEY("Item No.","Posting Date"); ItemLedgEntry2.SETRANGE("Item No.","Item No."); ItemLedgEntry2.SETRANGE("Posting Date","Posting Date"); ItemLedgEntry2.SETRANGE("Applies-to Entry","Entry No."); ItemLedgEntry2.FINDFIRST; END ELSE ItemLedgEntry2.GET("Applies-to Entry"); IF (ItemLedgEntry2."Country/Region Code" <> CompanyInfo."Country/Region Code") AND (ItemLedgEntry2."Country/Region Code" <> '') THEN CurrReport.SKIP; END; "Entry Type" = "Entry Type"::Transfer: BEGIN IF ("Country/Region Code" = CompanyInfo."Country/Region Code") OR ("Country/Region Code" = '') THEN CurrReport.SKIP; IF "Transfer Order No." = '' THEN BEGIN Location.GET("Location Code"); IF (Location."Country/Region Code" <> '') AND (Location."Country/Region Code" <> CompanyInfo."Country/Region Code") THEN CurrReport.SKIP; END ELSE BEGIN ItemLedgEntry2.SETRANGE("Transfer Order No.","Transfer Order No."); ItemLedgEntry2.SETFILTER("Country/Region Code",'%1 | %2','',CompanyInfo."Country/Region Code"); IF ItemLedgEntry2.FINDSET THEN REPEAT Location.GET(ItemLedgEntry2."Location Code"); IF Location."Use As In-Transit" THEN Include := TRUE; UNTIL Include OR (ItemLedgEntry2.NEXT = 0); IF NOT Include THEN CurrReport.SKIP; END; END; "Location Code" <> '': BEGIN Location.GET("Location Code"); CheckILE(Location."Country/Region Code"); END; ELSE BEGIN IF "Entry Type" = "Entry Type"::Purchase THEN CheckILE(CompanyInfo."Ship-to Country/Region Code"); IF "Entry Type" = "Entry Type"::Sale THEN CheckILE(CompanyInfo."Country/Region Code"); END; END; CASE TRUE OF "Document Type" = "Document Type"::"Sales Shipment": IF SalesShipmentLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(SalesShipmentLine."VAT Bus. Posting Group",SalesShipmentLine."VAT Prod. Posting Group") THEN; ("Document Type" = "Document Type"::"Sales Return Receipt") OR ("Document Type" = "Document Type"::"Sales Credit Memo"): IF ReturnReceiptLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ReturnReceiptLine."VAT Bus. Posting Group",ReturnReceiptLine."VAT Prod. Posting Group") THEN; "Document Type" = "Document Type"::"Purchase Receipt": IF PurchRcptLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(PurchRcptLine."VAT Bus. Posting Group",PurchRcptLine."VAT Prod. Posting Group") THEN; ("Document Type" = "Document Type"::"Purchase Return Shipment") OR ("Document Type" = "Document Type"::"Purchase Credit Memo"): IF ReturnShipmentLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ReturnShipmentLine."VAT Bus. Posting Group",ReturnShipmentLine."VAT Prod. Posting Group") THEN; "Document Type" = "Document Type"::"Service Shipment": IF ServiceShipmentLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ServiceShipmentLine."VAT Bus. Posting Group",ServiceShipmentLine."VAT Prod. Posting Group") THEN; "Document Type" = "Document Type"::"Service Credit Memo": IF ServiceCrMemoLine.GET("Document No.","Document Line No.") THEN IF VATPostingSetup.GET(ServiceCrMemoLine."VAT Bus. Posting Group",ServiceCrMemoLine."VAT Prod. Posting Group") THEN; END; IF VATPostingSetup."EU Service" THEN CurrReport.SKIP; IF ("Entry Type" = "Entry Type"::Sale) AND (SalesShipmentHeader.GET("Document No.")) AND (CompanyInfo."Country/Region Code" = SalesShipmentHeader."Bill-to Country/Region Code") THEN CurrReport.SKIP; END; END; PROCEDURE InsertValueEntryLine@1130002(); VAR Location@1130000 : Record 14; BEGIN GetGLSetup; WITH IntrastatJnlLine DO BEGIN INIT; "Line No." := "Line No." + 10000; Date := "Value Entry"."Posting Date"; "Country/Region Code" := "Item Ledger Entry"."Country/Region Code"; "Transaction Type" := "Item Ledger Entry"."Transaction Type"; "Transport Method" := "Item Ledger Entry"."Transport Method"; "Source Entry No." := "Item Ledger Entry"."Entry No."; Quantity := "Item Ledger Entry".Quantity; "Document No." := "Value Entry"."Document No."; "Item No." := "Item Ledger Entry"."Item No."; "Entry/Exit Point" := "Item Ledger Entry"."Entry/Exit Point"; Area := "Item Ledger Entry".Area; "Transaction Specification" := "Item Ledger Entry"."Transaction Specification"; Amount := ROUND(ABS("Value Entry"."Sales Amount (Actual)"),1); IF Quantity < 0 THEN Type := Type::Shipment ELSE Type := Type::Receipt; IF ("Country/Region Code" = '') OR ("Country/Region Code" = CompanyInfo."Country/Region Code") THEN BEGIN IF "Item Ledger Entry"."Location Code" = '' THEN "Country/Region Code" := CompanyInfo."Ship-to Country/Region Code" ELSE BEGIN Location.GET("Item Ledger Entry"."Location Code"); "Country/Region Code" := Location."Country/Region Code" END; END; VALIDATE("Item No."); "Source Type" := "Source Type"::"Item entry"; VALIDATE(Quantity,ROUND(ABS(Quantity),0.00001)); VALIDATE("Cost Regulation %",IndirectCostPctReq); INSERT; END; END; // End of the lines. BEGIN END. } RDLDATA ...
Preduslovi
Morate da imate instaliran jedan od sledećih proizvoda da biste primenili ovu hitnu ispravku:
- Italijanska verzija sistema Microsoft Dynamics NAV 2009 R2
- Italijanska verzija Microsoft Dynamics NAV 2009 servisni paket 1 (SP1)
- Italijanska verzija Microsoft Dynamics NAV 5.0 servisni paket 1 (SP1)
Informacije o uklanjanju
Ne možete da uklonite ovu hitnu ispravku.
Status
Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku „Odnosi se na“.
Napomena: Ovo je članak "BRZO OBJAVLJIVANJE" koji je kreiran direktno u okviru organizacije Microsoft podrške. Informacije koje se nalaze ovde pružaju se kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske greške i mogu se revidirati u bilo kom trenutku bez prethodne najave. Pogledajte Uslove korišćenja za druga razmatranja.