Linije odobrenja ne uvrštavaju se u dnevnik Intrastat nakon knjiženja dobropisa tipa "Trošak (stavka)" za fakturu stvorenu za dobavljača iz EU-a u drugom razdoblju u talijanskoj verziji sustava Microsoft Dynamics NAV 5.0 Service Pack 1

Primjenjuje se na
Microsoft Dynamics NAV 5.0

Ovaj se članak odnosi na Microsoft Dynamics NAV za regionalnu shemu talijanskog (it).

Simptomi

Pretpostavimo da imate fakturu koja je stvorena za dobavljača iz Europske unije (EU) u talijanskoj verziji sustava Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1). Kada knjižite odobrenje za fakturu u drugom razdoblju, redak odobrenja ne uvrštava se u dnevnik intrastat.

Rješenje

Informacije o hitnom popravku

Microsoft sada nudi podržani hitni popravak. No njegova je namjena samo ispravljanje problema opisanog u ovom članku. Primijenite ga samo na sustave koji imaju taj specifični problem. Ovaj hitni popravak može proći dodatna testiranja. Stoga, ako se ovaj problem ne odnosi ozbiljno, preporučujemo da pričekate sljedeći servisni paket za Microsoft Dynamics NAV ili sljedeću verziju sustava Microsoft Dynamics NAV koja sadrži ovaj hitni popravak.

Napomena: U posebnim slučajevima, ako stručnjak tehničke podrške za Microsoft Dynamics i povezane proizvode utvrdi da određeno ažuriranje može riješiti problem, poziv službi podrške može biti besplatan. Uobičajene cijene poziva službi za podršku primjenjuju se na dodatna pitanja i probleme koje nemaju veze s pripadnom nadopunom.

            
          

Informacije o instalaciji

Microsoft daje primjere programiranja samo za ilustraciju, bez jamstva, bilo izričitog ili prešutnog. To uključuje, bez ograničenja, implicitna jamstva utrživosti ili prikladnosti za određenu svrhu. U članku se podrazumijeva da ste upoznati s programskim jezikom koji se pokazuje te s alatima koji se koriste za stvaranje i ispravljanje pogrešaka procedura. Microsoftovi inženjeri za podršku mogu vam pomoći objasniti funkcionalnost određene procedure, no neće mijenjati te primjere radi pružanja dodatne funkcionalnosti ili konstruirati procedure koji zadovoljavaju vaše specifične zahtjeve.

Napomena Prije nego što instalirate ovaj hitni popravak, provjerite jesu li svi korisnici Microsoft Navision klijenta odjavljeni sa sustava. To obuhvaća korisnike klijentskih usluga Microsoft Navision Application Services (NAS). Trebali biste biti jedini klijentski korisnik prijavljen na vrijeme implementacije ovog hitnog popravka.

Da biste implementirali ovaj hitni popravak, morate imati licencu za razvojne inženjere.

Preporučujemo da se korisničkom računu u prozoru Prijave u sustav Windows ili u prozoru Prijave u bazu podataka dodijeli ID uloge "SUPER". Ako korisničkom računu nije moguće dodijeliti ID uloge "SUPER", morate provjeriti ima li korisnički račun sljedeće dozvole:

  • Dozvola za izmjenu objekta koji ćete mijenjati.
  • Dozvola za izvršavanje za objekt System Object ID 5210 i za objekt System Object ID 9015

                
Napomena: nemate pravo na spremišta podataka, osim ako morate popraviti podatke.

Promjene koda

Napomena: uvijek testirajte popravke koda u kontroliranom okruženju prije primjene popravaka na proizvodnim računalima.
Da biste riješili taj problem, učinite sljedeće:

  1. Promijenite kod u podatkovnoj stavci broj 2 u izvješću Dohvati stavke knjige (594) na sljedeći način:
    Postojeći kod 1

    ...
    ELSE
    SETRANGE("Entry Type","Entry Type"::Sale);
    
    IntrastatJnlLine2.SETCURRENTKEY("Source Type","Source Entry No.");
    IntrastatJnlLine2.SETRANGE("Source Type",IntrastatJnlLine2."Source Type"::"Item entry");
    ...
    

    Zamjenski kod 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");
    ...
    

    Postojeći kod 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;
    ...
    

    Zamjenski kod 2

    ...
    END;
    
    OnAfterGetRecord=VAR
    
    // Add the following line.
    PurchRcptLine@1003 : Record 121;
    
    PurchInvLine@1130000 : Record 123;
    PurchCrMemoLine@1130001 : Record 125;
    SalesInvoiceLine@1130002 : Record 113;
    ...
    

    Postojeći kod 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;
    ...
    

    Zamjenski kod 3

    ...
    SalesCrMemoHeader@1130005 : Record 114;
    PurchInvHeader@1130006 : Record 122;
    PurchCrMemoHdr@1130007 : Record 124;
    SalesShipLine@1130019 : Record 111;
    ReturnRcptHeader@1130011 : Record 6660;
    DocItemSum@1130013 : Decimal;
    ...
    

    Postojeći kod 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;
    ...
    

    Zamjenski kod 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;
    ...
    
  2. Promijenite kod u podatkovnoj stavci broj 5 u izvješću Dohvati stavke knjige (594) na sljedeći način:
    Postojeći kod

    ...
    {
    }
    }
    }
    REQUESTFORM
    {
    ...
    

    Zamjenski kôd

    ...
    {
    }
    }
    
    // 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
    {
    ...
    
  3. Promijenite kod u dokumentaciji u izvješću Dohvati stavke (594) na sljedeći način:
    Postojeći kod

    ...
    IntrastatJnlBatch2.SETRANGE(Type,IntrastatJnlBatch.Type);
    END;
    
    BEGIN
    
    END.
    }
    RDLDATA
    ...
    

    Zamjenski kôd

    ...
    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.
    }
    }
    ...
    

Preduvjeti

Da biste primijenili ovaj hitni popravak, morate imati instaliranu talijansku verziju servisnog paketa Microsoft Dynamics NAV 5.0 Service Pack 1.

Podaci o uklanjanju

Ovaj hitni popravak ne možete ukloniti.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku „Odnosi se na“.

Napomena: Ovo je članak "FAST PUBLISH" stvoren izravno u Microsoftovoj ustanovi za podršku. Ovdje sadržane informacije pružaju se takve kakve jesu kao odgovor na nove probleme. Kao rezultat brzine stavljanja na raspolaganje, materijali mogu sadržavati tipografske pogreške i mogu se revidirati u bilo kojem trenutku bez prethodne najave. Dodatne napomene potražite u Uvjetima korištenja .