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:
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; ...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 { ...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í .