Acest articol se aplică la Microsoft Dynamics NAV pentru setările regionale de limbă italiană (it).
Simptome
Să presupunem că aveți o factură creată pentru un distribuitor din Uniunea Europeană (UE) în versiunea italiană de Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1). Când înregistrați o notă de credit de tip Debitare (Element) pentru factură în altă perioadă, linia notei de credit nu este inclusă în jurnalul intrastat.
Rezolvare
Informații despre remedierea rapidă
O remediere rapidă acceptată este acum disponibilă de la Microsoft. Însă, scopul său este doar să corecteze problema descrisă în acest articol. Aplicați-o doar sistemelor care se confruntă cu această problemă specifică. Această remediere rapidă poate fi testată suplimentar. De aceea, dacă nu sunteți grav afectat de această problemă, vă recomandăm să așteptați următorul pachet Service Pack Microsoft Dynamics NAV sau următoarea versiune Microsoft Dynamics NAV care conține această remediere rapidă.
Notă În cazuri speciale, costurile implicate de obicei pentru apelurile de asistență pot fi revocate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produsele asociate stabilește că o anumită actualizare va rezolva problema. Costurile uzuale de suport se vor aplica pentru întrebări suplimentare de suport și pentru probleme ce nu fac obiectul actualizării în chestiune.
Informații despre instalare
Microsoft oferă exemple de programare numai în scop ilustrativ, fără nicio garanție explicită sau implicită. Aceasta include, dar nu se limitează la, garanțiile implicite de vandabilitate sau adecvare pentru un anumit scop. Acest articol presupune că sunteți familiarizat cu limbajul de programare prezentat și cu instrumentele utilizate pentru a crea și a depana proceduri. Inginerii de asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri, însă nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară și nu vor construi proceduri pentru a răspunde cerințelor dvs. specifice.
Notă Înainte de a instala această remediere rapidă, verificați dacă toți utilizatorii clientului Microsoft Navision sunt deconectați de la sistem. Printre aceștia se numără utilizatorii clienților Microsoft Navision Application Services (NAS). Ar trebui să fiți singurul utilizator client conectat atunci când implementați această remediere rapidă.
Pentru a implementa această remediere rapidă, trebuie să aveți o licență de dezvoltator.
Recomandăm ca contului de utilizator din fereastra Conectări Windows sau din fereastra Conectări bază de date să primească ID-ul de rol "SUPER". În cazul în care contului de utilizator nu i se poate atribui ID-ul de rol "SUPER", trebuie să verificați dacă acel cont de utilizator are următoarele permisiuni:
- Permisiunea Modificare pentru obiectul pe care îl veți modifica.
- Permisiunea de executare pentru obiectul cu ID obiect de sistem 5210 și pentru obiectul ID obiect de sistem 9015.
Notă: nu trebuie să aveți drepturi asupra depozitelor de date decât dacă trebuie să efectuați repararea datelor.
Modificări de cod
Notă: testați întotdeauna remedierile de cod într-un mediu controlat înainte de a aplica remedierile la computerele de producție.
Pentru a rezolva această problemă, urmați acești pași:
Modificați codul din elementul de date numărul 2 din raportul Intrări registru obținere element (594) după cum urmează:
Cod existent 1... ELSE SETRANGE("Entry Type","Entry Type"::Sale); IntrastatJnlLine2.SETCURRENTKEY("Source Type","Source Entry No."); IntrastatJnlLine2.SETRANGE("Source Type",IntrastatJnlLine2."Source Type"::"Item entry"); ...Cod de înlocuire 1
... ELSE SETRANGE("Entry Type","Entry Type"::Sale); // 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"); ...Cod existent 2
... END; OnAfterGetRecord=VAR // Delete the following lines. SalesShipmentLine@1005 : Record 111; ReturnReceiptLine@1004 : Record 6661; PurchRcptLine@1003 : Record 121; ReturnShipmentLine@1002 : Record 6651; ServiceShipmentLine@1001 : Record 5991; ServiceCrMemoLine@1000 : Record 5995; // End of the lines. PurchInvLine@1130000 : Record 123; PurchCrMemoLine@1130001 : Record 125; SalesInvoiceLine@1130002 : Record 113; ...Codul de înlocuire 2
... END; OnAfterGetRecord=VAR // Add the following line. PurchRcptLine@1003 : Record 121; PurchInvLine@1130000 : Record 123; PurchCrMemoLine@1130001 : Record 125; SalesInvoiceLine@1130002 : Record 113; ...Cod existent 3
... SalesCrMemoHeader@1130005 : Record 114; PurchInvHeader@1130006 : Record 122; PurchCrMemoHdr@1130007 : Record 124; // Delete the following line. SalesShipmentHeader@1130008 : Record 110; SalesShipLine@1130019 : Record 111; ReturnRcptHeader@1130011 : Record 6660; DocItemSum@1130013 : Decimal; ...Codul de înlocuire 3
... SalesCrMemoHeader@1130005 : Record 114; PurchInvHeader@1130006 : Record 122; PurchCrMemoHdr@1130007 : Record 124; SalesShipLine@1130019 : Record 111; ReturnRcptHeader@1130011 : Record 6660; DocItemSum@1130013 : Decimal; ...Cod existent 4
... IF IntrastatJnlLine2.FINDFIRST OR (CompanyInfo."Country/Region Code" = "Country/Region Code") THEN CurrReport.SKIP; // Delete the following lines. 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; ...Codul de înlocuire 4
... IF IntrastatJnlLine2.FINDFIRST OR (CompanyInfo."Country/Region Code" = "Country/Region Code") THEN CurrReport.SKIP; // Add the following line. TestILE("Item Ledger Entry"); TotalInvoicedQty := 0; TotalAmt := 0; ...Modificați codul din numărul elementului de date 5 din raportul Intrări registru Obțineți element (594), după cum urmează:
Cod existent... { } } } REQUESTFORM { ...Codul de înlocuire
... { } } // 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 { ...Modificați codul din Documentație din raportul Intrări registru Obțineți element (594) după cum urmează:
Cod existent... IntrastatJnlBatch2.SETRANGE(Type,IntrastatJnlBatch.Type); END; BEGIN END. } RDLDATA ...Codul de înlocuire
... IntrastatJnlBatch2.SETRANGE(Type,IntrastatJnlBatch.Type); END; // Add the following lines. PROCEDURE TestILE@1130001(ItemLedgEntry@1130000 : Record 32); VAR SalesShipmentHeader@1130001 : Record 110; SalesShipmentLine@1130002 : Record 111; PurchRcptLine@1130003 : Record 121; ReturnReceiptLine@1130004 : Record 6661; ReturnShipmentLine@1130005 : Record 6651; ServiceShipmentLine@1130006 : Record 5991; ServiceCrMemoLine@1130007 : Record 5995; BEGIN WITH ItemLedgEntry DO BEGIN 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. } } ...
Cerințe preliminare
Trebuie să aveți versiunea italiană de Microsoft Dynamics NAV 5.0 Service Pack 1 instalată pentru a aplica această remediere rapidă.
Eliminarea informațiilor
Nu puteți elimina această remediere rapidă.
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.
Notă: Acesta este un articol "PUBLICARE RAPIDĂ" creat direct din cadrul organizației de asistență Microsoft. Informațiile din acest document sunt furnizate ca atare ca răspuns la problemele apărute. Ca urmare a vitezei de punere la dispoziție, materialele pot include erori tipografice și pot fi revizuite în orice moment fără preaviz. Consultați Condițiile de utilizare pentru alte considerente.