Řádky dobropisu nejsou zahrnuty do deníku intrastatu po zaúčtování dobropisu typu "Náklad (položka)" pro fakturu, která je vytvořena pro dodavatele v EU v jiném období v italské verzi Microsoft Dynamics NAV 5.0 Service Pack 1

Platí pro
Microsoft Dynamics NAV 5.0

Tento článek se týká aplikace Microsoft Dynamics NAV pro národní prostředí v italštině.

Příznaky

Předpokládejme, že máte fakturu, která je vytvořena pro dodavatele v Evropské unii (EU) v italské verzi aplikace Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1). Pokud zaúčtujete dobropis typu Náklad (položka) pro fakturu v jiném období, řádek dobropisu není zahrnut do deníku intrastat.

Řešení

Informace o opravě hotfix

Od Microsoftu je teď k dispozici podporovaná oprava hotfix. Účelem je však pouze vyřešení problému, který je popsán v tomto článku. Aplikujte ho jenom na systémy, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může projít dalším testováním. Pokud se vás tedy tento problém vážně netýká, doporučujeme počkat na další aktualizaci Service Pack pro Microsoft Dynamics NAV nebo další verzi Microsoft Dynamics NAV, která tuto opravu hotfix obsahuje.

Poznámka: Ve zvláštních případech mohou být poplatky, které jsou obvykle účtovány za telefonická hovory podpory, zrušeny, pokud pracovník technické podpory pro řešení Microsoft Dynamics a související produkty zjistí, že konkrétní aktualizace vyřeší váš problém. Další dotazy a problémy týkající se podpory, které se netýkají této konkrétní opravy, podléhají běžným sazbám za podporu.

            
          

Informace o instalaci

Společnost Microsoft poskytuje příklady programování pouze pro ilustraci, bez záruky, ať už vyjádřené nebo předpokládané. To zahrnuje, ale není omezeno na, předpokládané záruky prodejnosti nebo vhodnosti pro konkrétní účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předváděn, a s nástroji, které se používají k vytváření a ladění procedur. Pracovníci technické podpory Microsoftu vám můžou pomoct vysvětlit funkčnost určitého postupu, ale nebudou tyto příklady upravovat za účelem poskytování dalších funkcí nebo konstrukce procedur, které by splňovaly vaše konkrétní požadavky.

Poznámka: Před instalací této opravy hotfix ověřte, zda jsou všichni uživatelé klienta Microsoft Navision odhlášeni ze systému. To zahrnuje i uživatele klienta Microsoft Navision Application Services (NAS). Měli byste být jediným klientským uživatelem, který je přihlášen při implementaci této opravy hotfix.

K implementaci této opravy hotfix musíte mít vývojářskou licenci.

Doporučujeme, aby uživatelské účtu v okně Windows Přihlášení nebo v okně Přihlášení k databázi bylo přiřazeno ID role "SUPER". Pokud nelze uživatelskému účtu přiřadit ID role "SUPER", je nutné ověřit, zda má uživatelský účet následující oprávnění:

  • Oprávnění k úpravám objektu, který budete měnit.
  • Oprávnění ke spuštění pro objekt s ID systémového objektu 5210 a pro objekt s ID systémového objektu 9015.

                
Poznámka: K úložištím dat nemusíte mít práva, ledaže byste museli provádět opravu dat.

Změny kódu

Poznámka: Před použitím oprav v produkčních počítačích vždy otestujte opravy kódu v kontrolovaném prostředí.
Chcete-li tento problém vyřešit, postupujte takto:

  1. Změňte kód v datové položce číslo 2 v sestavě Získat položky zboží (594) následujícím způsobem:
    Existující kód 1

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

    Náhradní kód 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");
    ...
    

    Existující kód 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;
    ...
    

    Náhradní kód 2

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

    Existující kód 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;
    ...
    

    Náhradní kód 3

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

    Existující kód 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;
    ...
    

    Náhradní kód 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. Změňte kód v datové položce číslo 5 v sestavě Získat položky zboží (594) následujícím způsobem:
    Existující kód

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

    Náhradní 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. Změňte kód v dokumentaci v sestavě Získat položky zboží (594) následujícím způsobem:
    Existující kód

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

    Náhradní 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.
    }
    }
    ...
    

Požadavky

Abyste mohli tuto opravu hotfix použít, musíte mít nainstalovanou italskou verzi aplikace Microsoft Dynamics NAV 5.0 Service Pack 1.

Informace o odebrání

Tuto opravu hotfix nelze odebrat.

Stav

Společnost Microsoft potvrdila, že se jedná o problém produktů Microsoft, které jsou uvedeny v sekci Platí pro.

Poznámka: Toto je článek určený k rychlému zveřejnění, který byl vytvořen přímo v rámci organizace podpory společnosti Microsoft. Zde uvedené informace jsou poskytovány tak, jak jsou, jako reakce na nově vznikající potíže. Vzhledem k rychlosti, s jakou byl článek zpřístupněn, mohou příslušné materiály obsahovat typografické chyby a mohou být kdykoli bez předchozího upozornění revidovány. Další okolnosti viz Podmínky použití .