Simptome
Suma totală într-un memento este greșit dacă contul taxă de memento-ul este configurat cu taxă pe valoare adăugată (TVA) în Microsoft Dynamics NAV 2009. Acest lucru se întâmplă deși taxă de memento-ul nu este înregistrat și clientul este un client EU. Urmați pașii din secțiunea modificări de cod pentru a rezolva această problemă. Această problemă se produce în următoarele produse:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 SP1
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 9015
obiect.
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:-
Modificați codul din proprietățile în formularul de statistici memento (437) după cum urmează:
Cod existent... CALCFIELDS("Interest Amount","VAT Amount");
ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount"; CustPostingGr.GET("Customer Posting Group"); VATInterest := 0; IF ReminderLevel.GET("Reminder Terms Code","Reminder Level") THEN // Delete the following lines. IF ReminderLevel."Calculate Interest" THEN BEGIN GLAcc.GET(CustPostingGr."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; END; IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); Interest := (ReminderTotal - "Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/100 + 1))/ (VATInterest/100 + 1); VatAmount := Interest * VATInterest/100 + "Additional Fee" * VATPostingSetup."VAT %"/100; // End of the deleted lines. IF Cust.GET("Customer No.") THEN Cust.CALCFIELDS("Balance (LCY)") ELSE CLEAR(Cust); IF Cust."Credit Limit (LCY)" = 0 THEN ...Cod de înlocuire
... CALCFIELDS("Interest Amount","VAT Amount");
ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount"; CustPostingGr.GET("Customer Posting Group"); VATInterest := 0; IF ReminderLevel.GET("Reminder Terms Code","Reminder Level") THEN // Add the following lines. IF ReminderLevel."Calculate Interest" AND ("VAT Amount" <> 0) THEN BEGIN GLAcc.GET(CustPostingGr."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); Interest := (ReminderTotal - "Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/ 100 + 1)) /(VATInterest / 100 + 1); VatAmount := Interest * VATInterest / 100 + "Additional Fee" * VATPostingSetup."VAT %" / 100; END ELSE Interest := "Interest Amount"; // End of the added lines. IF Cust.GET("Customer No.") THEN Cust.CALCFIELDS("Balance (LCY)") ELSE CLEAR(Cust); IF Cust."Credit Limit (LCY)" = 0 THEN ... -
Modificați codul din proprietățile în formularul de statistici memento (441) după cum urmează:
Cod existent...BEGIN
SETRANGE("No."); CALCFIELDS("Interest Amount","VAT Amount"); ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount"; CustPostingGr.GET("Customer Posting Group"); // Delete the following lines. ReminderLevel.GET("Reminder Terms Code","Reminder Level"); IF ReminderLevel."Calculate Interest" THEN BEGIN GLAcc.GET(CustPostingGr."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; END ELSE VATInterest := 0; IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); Interest := (ReminderTotal - "Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/100 + 1))/ (VATInterest/100 + 1); VatAmount := Interest * VATInterest/100 + "Additional Fee" * VATPostingSetup."VAT %"/100; // End of the deleted lines. IF Cust.GET("Customer No.") THEN Cust.CALCFIELDS("Balance (LCY)") ELSE CLEAR(Cust); IF Cust."Credit Limit (LCY)" = 0 THEN ...Cod de înlocuire
...BEGIN
SETRANGE("No."); CALCFIELDS("Interest Amount","VAT Amount"); ReminderTotal := "Remaining Amount" + "Additional Fee" + "Interest Amount" + "VAT Amount"; CustPostingGr.GET("Customer Posting Group"); // Add the following lines. IF ReminderLevel.GET("Reminder Terms Code","Reminder Level") THEN IF ReminderLevel."Calculate Interest" AND ("VAT Amount" <> 0) THEN BEGIN GLAcc.GET(CustPostingGr."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; IF GLAcc.GET(CustPostingGr."Additional Fee Account") THEN VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); Interest := (ReminderTotal - "Remaining Amount" - "Additional Fee" * (VATPostingSetup."VAT %"/ 100 + 1)) /(VATInterest / 100 + 1); VatAmount := Interest * VATInterest / 100 + "Additional Fee" * VATPostingSetup."VAT %" / 100; END ELSE Interest := "Interest Amount"; // End of the added lines. IF Cust.GET("Customer No.") THEN Cust.CALCFIELDS("Balance (LCY)") ELSE CLEAR(Cust); IF Cust."Credit Limit (LCY)" = 0 THEN ... -
Modificați codul din elementul date numărul 1 din raportul statistici memento (117) după cum urmează:
Cod existent...IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100); END ELSE AddFeeInclVAT := "Additional Fee"; // Delete the following lines. CALCFIELDS("Interest Amount"); IF "Interest Amount" <> 0 THEN BEGIN GLAcc.GET(CustPostingGroup."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; END ELSE VATInterest := 0; // End of the deleted lines. IF ISSERVICETIER THEN BEGIN NNC_InterestAmountTotal := 0; NNC_RemainingAmountTotal := 0; NNC_VATAmountTotal := 0; ...Cod de înlocuire
... IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100); END ELSE AddFeeInclVAT := "Additional Fee"; // Add the following lines. CALCFIELDS("Interest Amount","VAT Amount"); IF ("Interest Amount" <> 0) AND ("VAT Amount" <> 0) THEN BEGIN GLAcc.GET(CustPostingGroup."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; Interest:= (ReminderInterestAmount + "VAT Amount" +"Issued Reminder Header"."Additional Fee" - AddFeeInclVAT) / (VATInterest / 100 + 1); END ELSE BEGIN Interest:= "Interest Amount"; VATInterest := 0; END; // End of the added lines. IF ISSERVICETIER THEN BEGIN NNC_InterestAmountTotal := 0; NNC_RemainingAmountTotal := 0; NNC_VATAmountTotal := 0; ... -
Modificați codul din date element număr 4 secțiuni din raportul statistici memento (117) după cum urmează:
Cod existent 1...}
CONTROLS { { 45 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; CaptionML=ENU=Interest Amount; // Delete the following line. SourceExpr=(ReminderInterestAmount + "VAT Amount" +"Issued Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100 +1); // End of the deleted line. AutoFormatType=1; AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ } { 47 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=45; FontSize=9; ...Înlocuirea cod 1
...}
CONTROLS { { 45 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; CaptionML=ENU=Interest Amount; // Add the following line. SourceExpr=Interest; // End of the added line. AutoFormatType=1; AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ } { 47 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=45; FontSize=9; ...Cod existent 2
...CONTROLS
{ { 44 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; FontBold=Yes; CaptionML=ENU=Total; // Delete the following line. SourceExpr="Remaining Amount" + ReminderInterestAmount + "VAT Amount"-(ReminderInterestAmount + "VAT Amount" +"Issued Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100+1)*VATInterest/100 + "Issued Reminder Header"."Additional Fee" - AddFeeInclVAT; // End of the deleted line. AutoFormatType=1; AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT } { 56 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9; FontBold=Yes; ...Înlocuirea cod 2
... CONTROLS
{ { 44 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; FontBold=Yes; CaptionML=ENU=Total; // Add the following line. SourceExpr="Remaining Amount" + ReminderInterestAmount; // End of the added line. AutoFormatType=1; AutoFormatExpr="Issued Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Issued_Reminder_Header___Additional_Fee____AddFeeInclVAT } { 56 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9; FontBold=Yes; ... -
Modificați codul din elementul date numărul 1 din raportul statistici memento (122) după cum urmează:
Cod existent...IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100); END ELSE AddFeeInclVAT := "Additional Fee"; // Delete the following lines. CALCFIELDS("Interest Amount"); IF "Interest Amount" <> 0 THEN BEGIN GLAcc.GET(CustPostingGroup."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; END ELSE VATInterest := 0; // End of the deleted lines. IF ISSERVICETIER THEN BEGIN NNC_Interest := 0; NNC_TotalLCY := 0; NNC_VATAmount := 0; NNC_TotalLCYVATAmount := 0; ...Cod de înlocuire
...IF GLAcc.GET(CustPostingGroup."Additional Fee Account") THEN BEGIN
VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); AddFeeInclVAT := "Additional Fee" * (1 + VATPostingSetup."VAT %"/100); END ELSE AddFeeInclVAT := "Additional Fee"; // Add the following lines. CALCFIELDS("Interest Amount","VAT Amount"); IF ("Interest Amount" <> 0) AND ("VAT Amount" <> 0) THEN BEGIN GLAcc.GET(CustPostingGroup."Interest Account"); VATPostingSetup.GET("VAT Bus. Posting Group",GLAcc."VAT Prod. Posting Group"); VATInterest := VATPostingSetup."VAT %"; Interest:= (ReminderInterestAmount + "VAT Amount" +"Reminder Header"."Additional Fee" - AddFeeInclVAT) / (VATInterest / 100 + 1); END ELSE BEGIN Interest:= "Interest Amount"; VATInterest := 0; END; IF VATInterest <> 0 THEN // End of the added lines. IF ISSERVICETIER THEN BEGIN NNC_Interest := 0; NNC_TotalLCY := 0; NNC_VATAmount := 0; NNC_TotalLCYVATAmount := 0; ... -
Modificați codul din elementul date numărul 2 în raportul de statistici memento (122) după cum urmează:
Cod existent... }
{ PROPERTIES { DataItemIndent=1; DataItemTable=Table2000000026; // Delete the following line. DataItemTableView=SORTING(Number) WHERE(Number=CONST(1)); // End of the deleted line. DataItemVarName=PageCounter; } SECTIONS { { PROPERTIES ...Cod de înlocuire
...}
{ PROPERTIES { DataItemIndent=1; DataItemTable=Table2000000026; // Add the following lines. DataItemTableView=SORTING(Number) WHERE(Number=CONST(1)); // End of the added lines. DataItemVarName=PageCounter; } SECTIONS { { PROPERTIES ... -
Modificați codul din elementul date numărul 3 din raportul statistici memento (122) după cum urmează:
Cod existent...}
{ PROPERTIES { DataItemIndent=2; DataItemTable=Table2000000026; // Delete the following line. DataItemTableView=SORTING(Number) WHERE(Number=FILTER(1..)); // End of the deleted line. DataItemVarName=DimensionLoop; OnPreDataItem=BEGIN IF NOT ShowDim THEN CurrReport.BREAK; DocDim.SETRANGE("Table ID",DATABASE::"Reminder Header"); ...Cod de înlocuire
...}
{ PROPERTIES { DataItemIndent=2; DataItemTable=Table2000000026; // Add the following lines. DataItemTableView=SORTING(Number) WHERE(Number=FILTER(1..)); // End of the added lines. DataItemVarName=DimensionLoop; OnPreDataItem=BEGIN IF NOT ShowDim THEN CurrReport.BREAK; DocDim.SETRANGE("Table ID",DATABASE::"Reminder Header"); ... -
Modificați codul din elementul date numărul 5 din raportul statistici memento (122) după cum urmează:
Cod existent... }
{ PROPERTIES { DataItemIndent=2; DataItemTable=Table296; // Delete the following line. DataItemTableView=SORTING(Reminder No.,Line No.) WHERE(Line Type=FILTER(<>Not Due)); // End of the deleted line. OnPreDataItem=BEGIN IF ISSERVICETIER THEN TotalVATAmount := 0; IF FIND('+') THEN BEGIN ...Cod de înlocuire
...}
{ PROPERTIES { DataItemIndent=2; DataItemTable=Table296; // Add the following lines. DataItemTableView=SORTING(Reminder No.,Line No.) WHERE(Line Type=FILTER(<>Not Due)); // End of the added lines. OnPreDataItem=BEGIN IF ISSERVICETIER THEN TotalVATAmount := 0; IF FIND('+') THEN BEGIN ... -
Modificați codul din secțiunile date element numărul 5 din raportul statistici memento (122) după cum urmează:
Cod existent 1... }
CONTROLS { { 17 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; CaptionML=ENU=Interest Amount; // Delete the following line. SourceExpr=(ReminderInterestAmount + "VAT Amount" +"Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100 +1); // End of the deleted line. AutoFormatType=1; AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ } { 20 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=17; FontSize=9; ...Înlocuirea cod 1
... }
CONTROLS { { 17 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; CaptionML=ENU=Interest Amount; // Add the following line. SourceExpr=Interest; // End of the added line. AutoFormatType=1; AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100__1_ } { 20 ;Label ;6090 ;0 ;4200 ;423 ;ParentControl=17; FontSize=9; ...Cod existent 2
...}
CONTROLS { { 29 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; FontBold=Yes; // Delete the following line. SourceExpr="Remaining Amount" + ReminderInterestAmount + "VAT Amount"-(ReminderInterestAmount + "VAT Amount" +"Reminder Header"."Additional Fee" - AddFeeInclVAT)/(VATInterest/100+1)*VATInterest/100 + "Reminder Header"."Additional Fee" - AddFeeInclVAT; // End of the deleted line. AutoFormatType=1; AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Reminder_Header___Additional_Fee____AddFeeInclVAT } { 43 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9; FontBold=Yes; ...Înlocuirea cod 2
...}
CONTROLS { { 29 ;TextBox ;10710;0 ;2520 ;423 ;FontSize=9; FontBold=Yes; // Add the following line. SourceExpr="Remaining Amount" + ReminderInterestAmount; // End of the added line. AutoFormatType=1; AutoFormatExpr="Reminder Line".GetCurrencyCodeFromHeader; DataSetFieldName=Remaining_Amount____ReminderInterestAmount____VAT_Amount___ReminderInterestAmount____VAT_Amount____Reminder_Header___Additional_Fee____AddFeeInclVAT___VATInterest_100_1__VATInterest_100____Reminder_Header___Additional_Fee____AddFeeInclVAT } { 43 ;TextBox ;6090 ;0 ;4200 ;423 ;FontSize=9; FontBold=Yes; ...
Cerințe preliminare
Trebuie să aveți unul dintre următoarele produse instalate pentru a aplica această remediere rapidă:
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 SP1
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.