Simptome

Atunci când creați o factură corecție dacă s-a modificat câmpul prețurile inc. TVA , unitatea preț valorile sunt incorecte în versiunea Microsoft Dynamics NAV 2009 R2 maghiar. Urmați pașii din secțiunea modificări de cod pentru a rezolva această problemă. Această problemă se produce în următoarele produse:

  • Maghiară versiunea de Microsoft Dynamics NAV 2009 R2

Rezolvare

Informații despre remedierea rapidă

Un hotfix acceptat este acum disponibil de la Microsoft. Cu toate acestea, acesta este destinat numai corectării problemei descrise în acest articol. Aplicați-o numai pe sistemele care întâmpină această problemă anume. Această remediere rapidă poate să necesite testare 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 2009 sau versiunea Microsoft Dynamics NAV următoare, care conține această remediere rapidă.Notă În cazuri speciale, costurile implicate de obicei pentru asistență apeluri pot fi anulate dacă un specialist în asistență tehnică pentru Microsoft Dynamics și produse asociate stabilește că o anumită actualizare va rezolva problema. Se vor aplica costurile uzuale de asistenţă pentru întrebări suplimentare de asistenţă şi pentru probleme ce nu fac obiectul actualizării în cauză.

Informaţii despre instalare

Microsoft furnizează exemple de programare scop ilustrativ, fără nicio garanţie explicită sau implicită. Aceasta include, dar nu se limitează la, garanţiile implicite de vandabilitate sau de potrivire pentru un anumit scop. Acest articol presupune că sunteţi familiarizat cu limbajul de programare care este prezentat şi cu instrumentele utilizate pentru a crea şi a depana proceduri. Specialiștii în asistență Microsoft pot ajuta la explicarea funcționalității unei anumite proceduri. Cu toate acestea, nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară construi proceduri pentru a răspunde cerințelor dvs. specifice.Notă Înainte de a instala această remediere rapidă, verificați dacă toți utilizatorii de client Microsoft Dynamics NAV sunt log off sistemul. Aceasta include servicii Microsoft Dynamics NAV Application Server (NAS). Ar trebui să fie singurul client utilizatorului care este conectat când implementați această remediere rapidă.Pentru a implementa această remediere rapidă, trebuie să aveți o licență de dezvoltare.Vă recomandăm că contul de utilizator în fereastra Conectări Windows sau în fereastra Conectări bază de date se atribuie "SUPER" rolul ID-ul. În cazul în care contul de utilizator nu poate fi atribuit ID-ul "SUPER" rolul, trebuie să verificați că contul de utilizator are următoarele permisiuni:

  • Modify permisiunea pentru obiectul care se va schimba.

  • Permisiunea de executare pentru obiectul sistem obiect ID 5210 și sistem obiect ID 9015obiect.

Notă Nu trebuie să aveți drepturi de la magazine de date decât dacă trebuie să efectuați o reparare de date.

Modificări de cod

Notă Întotdeauna test cod remediază într-un mediu controlat înainte de a aplica remedieri pentru computerele de producție.Pentru a rezolva această problemă, urmați acești pași:

  1. Modificați codul din UpdateVATAmounts funcţia în tabelul de linie de corecție de vânzare (14536) după cum urmează:Cod existent

    ...Amount * (1 - SalesHeader."VAT Base Discount %" / 100),Currency."Amount Rounding Precision");"Amount Including VAT" :=ROUND(Amount * (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100,Currency."Amount Rounding Precision",Currency.VATRoundingDirection);END;"VAT Calculation Type"::"Full VAT":BEGIN...

    Cod de înlocuire

    ...Amount * (1 - SalesHeader."VAT Base Discount %" / 100),Currency."Amount Rounding Precision");"Amount Including VAT" :=// Add the following line.Amount +// End of the added line.ROUND(Amount * (1 - SalesHeader."VAT Base Discount %" / 100) * "VAT %" / 100,Currency."Amount Rounding Precision",Currency.VATRoundingDirection);END;"VAT Calculation Type"::"Full VAT":BEGIN...
  2. Modificați codul din CheckLineAmount funcţia în tabelul de linie de corecție de vânzare (14536) după cum urmează:Cod existent 1

    ..."Unit Price Incl. Discount" := "Unit Price" - "Unit Price" * "Line Discount %" / 100;END;// Delete the following line.PROCEDURE CheckLineAmount@1360000();// End of the deleted line.BEGIN// PS16433.beginIF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN...

    Înlocuirea cod 1

    ..."Unit Price Incl. Discount" := "Unit Price" - "Unit Price" * "Line Discount %" / 100;    END;// Add the following lines.PROCEDURE CheckLineAmount@1170219();VAR      SalesinvHeader@1170001 : Record 112;// End of the added lines.BEGIN// PS16433.beginIF "Before/ After correction" = "Before/ After correction"::After THEN BEGIN...

    Cod existent 2

    ...// PS16433.beginIF "Before/ After correction" = "Before/ After correction"::After THEN BEGINSalesCorrLine.GET("Document Type","Document No.","Correction Line No.","Before/ After correction"::Before);GetCorrType;IF (SalesCorrLine."Line Amount" > "Line Amount") AND("Document Type" = "Document Type"::Invoice) AND(SalesCorrectionType."Correction Type" = SalesCorrectionType."Correction Type"::"Quantity and Value")THEN...

    Înlocuirea cod 2

    ... // PS16433.beginIF "Before/ After correction" = "Before/ After correction"::After THEN BEGINSalesCorrLine.GET("Document Type","Document No.","Correction Line No.","Before/ After correction"::Before);// Add the following line.SalesinvHeader.GET(SalesHeader."Corr. Document No.");// End of the added line.GetCorrType;IF (SalesCorrLine."Line Amount" > "Line Amount") AND// Add the following line.(SalesHeader."Prices Including VAT" = SalesinvHeader."Prices Including VAT") AND// End of the added line.("Document Type" = "Document Type"::Invoice) AND(SalesCorrectionType."Correction Type" = SalesCorrectionType."Correction Type"::"Quantity and Value")THEN...
  3. Modificați codul din date element numărul 5 în vânzări - factură (HU) raport (14516) după cum urmează:Cod existent

    ...DataItemTable=Table14537;DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)WHERE(Before/ After correction=FILTER(Before),Document Type=CONST(Posted Invoice));DataItemVarName=PostedSalesCorrLineBefore;DataItemLinkReference=Sales Invoice Header;DataItemLink=Document No.=FIELD(No.);}SECTIONS{...

    Cod de înlocuire

    ...DataItemTable=Table14537;DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)WHERE(Before/ After correction=FILTER(Before),Document Type=CONST(Posted Invoice));DataItemVarName=PostedSalesCorrLineBefore;// Add the following lines.OnAfterGetRecord=BEGINIF SalesInvHeader.GET("Sales Invoice Header"."Corr. Document No.") THENIF SalesInvHeader."Prices Including VAT" <> "Sales Invoice Header"."Prices Including VAT" THEN"Unit Price Incl. Discount" := "VAT Base Amount" / Quantity;END;// End of the added lines.DataItemLinkReference=Sales Invoice Header;DataItemLink=Document No.=FIELD(No.);}SECTIONS{...
  4. Modificați codul din date element numărul 6 în vânzări - factură (HU) raport (14516) după cum urmează:Cod existent

    ...DataItemTable=Table14537;DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)WHERE(Before/ After correction=FILTER(After),Document Type=CONST(Posted Invoice));DataItemVarName=PostedSalesCorrLineAfter;DataItemLinkReference=PostedSalesCorrLineBefore;DataItemLink=Document No.=FIELD(Document No.),Correction Line No.=FIELD(Correction Line No.);}SECTIONS...

    Cod de înlocuire

    ...DataItemTable=Table14537;DataItemTableView=SORTING(Document No.,Correction Line No.,Before/ After correction,Document Type)WHERE(Before/ After correction=FILTER(After),Document Type=CONST(Posted Invoice));DataItemVarName=PostedSalesCorrLineAfter;// Add the following lines.OnAfterGetRecord=BEGINIF SalesInvHeader."Prices Including VAT" <> "Sales Invoice Header"."Prices Including VAT" THEN"Unit Price Incl. Discount" := "VAT Base Amount" / Quantity;END;// End of the added lines.DataItemLinkReference=PostedSalesCorrLineBefore;DataItemLink=Document No.=FIELD(Document No.),Correction Line No.=FIELD(Correction Line No.);}SECTIONS...
  5. Modificați codul din variabile globale în vânzări - factură (HU) raport (14516) după cum urmează:Cod existent

    ...VALExchRate@1360016 : Text[50];Text14530@1360017 : TextConst 'ENU=%1/%2;HUN=%1/%2';GroupVATText@13600018 : Text[30];CorrInvText@1360018 : TextConst 'ENU=C O R R E C T I V E  I N V O I C E;HUN=H E L Y E S B Ö T Š  S Z µ M L A';LogInteractionEnable@19003940 : Boolean INDATASET;PROCEDURE InitLogInteraction@1360000();BEGINLogInteraction := SegManagement.FindInteractTmplCode(4) <> '';END;...

    Cod de înlocuire

    ...VALExchRate@1360016 : Text[50];Text14530@1360017 : TextConst 'ENU=%1/%2;HUN=%1/%2';GroupVATText@13600018 : Text[30];CorrInvText@1360018 : TextConst 'ENU=C O R R E C T I V E  I N V O I C E;HUN=H E L Y E S B Ö T Š  S Z µ M L A';LogInteractionEnable@19003940 : Boolean INDATASET;// Add the following line.SalesInvHeader@13600019 : Record 112;// End of the added line.PROCEDURE InitLogInteraction@1360000();BEGINLogInteraction := SegManagement.FindInteractTmplCode(4) <> '';END;...
  6. Modificați codul din InitSalesLineOnCharge function în codeunit VATCorrectionManagement (14535) după cum urmează:Cod existent 1

    ...SalesLine.INSERT;CopyDim(SalesLine,SalesCorrLine);END;PROCEDURE InitSalesLineOnCharge@1360001(VAR SalesLine@1360000 : Record 37;SalesCorrLine@1360001 : Record 14536;QtyOnSalesLine@1360002 : Decimal);BEGINInitSalesLine(SalesCorrLine,SalesLine);SalesLine.Type := SalesLine.Type::"Charge (Item)";SalesLine."No." := SalesCorrType."Item Charge Code";SalesLine.VALIDATE("Unit of Measure Code",'');...

    Înlocuirea cod 1

    ...SalesLine.INSERT;CopyDim(SalesLine,SalesCorrLine);END;PROCEDURE InitSalesLineOnCharge@1360001(VAR SalesLine@1360000 : Record 37;SalesCorrLine@1360001 : Record 14536;QtyOnSalesLine@1360002 : Decimal);// Add the following lines.VARSalesInvHeader@1360003 : Record 112;// End of the added lines.BEGINInitSalesLine(SalesCorrLine,SalesLine);SalesLine.Type := SalesLine.Type::"Charge (Item)";SalesLine."No." := SalesCorrType."Item Charge Code";SalesLine.VALIDATE("Unit of Measure Code",'');...

    Cod existent 2

    ...InitSalesLine(SalesCorrLine,SalesLine);SalesLine.Type := SalesLine.Type::"Charge (Item)";SalesLine."No." := SalesCorrType."Item Charge Code";SalesLine.VALIDATE("Unit of Measure Code",'');SalesLine.VALIDATE(Quantity,QtyOnSalesLine);SalesLine.VALIDATE("Unit Price",SalesCorrLine."Unit Price");IF SalesLine.Quantity <> 0 THENSalesLine.VALIDATE("Line Discount %",SalesCorrLine."Line Discount %");SalesLine.UpdateAmounts;SalesLine.VALIDATE("Unit Cost (LCY)",0);...

    Înlocuirea cod 2

    ...InitSalesLine(SalesCorrLine,SalesLine);SalesLine.Type := SalesLine.Type::"Charge (Item)";SalesLine."No." := SalesCorrType."Item Charge Code";SalesLine.VALIDATE("Unit of Measure Code",'');SalesLine.VALIDATE(Quantity,QtyOnSalesLine);// Add the following lines.IF (SalesCorrLine."Before/ After correction" = SalesCorrLine."Before/ After correction"::Before) AND(SalesInvHeader.GET(SalesCorrLine."Source Document No.")) AND(SalesHeader."Prices Including VAT" <> SalesInvHeader."Prices Including VAT")THEN BEGINIF SalesHeader."Prices Including VAT" THENSalesLine.VALIDATE("Unit Price",SalesCorrLine."Amount Including VAT" / SalesCorrLine.Quantity)ELSESalesLine.VALIDATE("Unit Price",SalesCorrLine."VAT Base Amount" / SalesCorrLine.Quantity);END ELSE// End of the added lines.SalesLine.VALIDATE("Unit Price",SalesCorrLine."Unit Price");IF SalesLine.Quantity <> 0 THENSalesLine.VALIDATE("Line Discount %",SalesCorrLine."Line Discount %");SalesLine.UpdateAmounts;SalesLine.VALIDATE("Unit Cost (LCY)",0);...

Cerințe preliminare

Trebuie să aveți unul dintre următoarele produse instalate pentru a aplica această remediere rapidă:

  • Maghiară versiunea de Microsoft Dynamics NAV 2009 R2

Eliminare informaţii

Nu se poate elimina această remediere rapidă.

Stare

Microsoft a confirmat că aceasta este o problemă cu produsele Microsoft enumerate în secţiunea „Se aplică la".

Notă Acesta este un articol "rapid publicat" creat direct în cadrul organizației de asistență Microsoft. Informațiile conținute în acest document sunt furnizate ca răspuns la problemele care apar. Ca rezultat al vitezei în a-l face disponibil, materialele pot include erori tipografice și pot fi revizuite în orice moment, fără notificare. Consultați Termenii de utilizarepentru alte considerații.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.