Mesaj de eroare "Cantitatea trebuie să fie pozitiv în gen Journal Line" când publicați o plată în avans factură în Microsoft Dynamics NAV 2009

IMPORTANT: Acest articol este tradus cu ajutorul software-ului Microsoft de traducere automată și poate fi corectat prin intermediul tehnologiei Community Translation Framework (CTF). Microsoft oferă articole traduse automat, post-editate de comunitate și articole traduse de oameni, pentru a permite accesul la toate articolele din Baza noastră de cunoștințe în mai multe limbi. Articolele traduse automat și post-editate pot conține greșeli de vocabular, sintaxă și/sau gramatică. Microsoft nu este responsabil de inexactitățile, erorile sau daunele cauzate de traducerea greșită a conținutului sau de utilizarea acestuia de către clienți. Găsiți mai multe informații despre traducerea în colaborare la http://support.microsoft.com/gp/machine-translation-corrections/ro.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 2893954
Acest articol se aplică la Microsoft Dynamics NAV pentru toate țările și toate limbi regionale.
Simptome
Să presupunem că este setat la prețurile, inclusiv TVA și suma plătită în avans facturi nu sunt comprimate în Microsoft Dynamics NAV 2009. Când publicați un factură pentru plata în avans, primiţi următorul mesaj de eroare:
Valoarea trebuie să fie pozitiv în gen Journal Line.
Această problemă se produce în următoarele produse:
  • Microsoft Dynamics NAV 2009 pachet Service Pack 1 (SP1)
  • Microsoft Dynamics NAV 2009 R2
Rezoluţie

Remedierea rapidă informaţii

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 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, dar 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 că toate Microsoft Navision client utilizatorii au făcut Log off sistemul. Aceasta include utilizatorii de client Microsoft Navision Application Services (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ă acoperire 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 de sistem obiect ID 5210 și pentru obiectul de sistem obiect ID 9015 .

Notă Nu trebuie să aveți drepturi de la magazine acoperire de date decât dacă trebuie să efectuați o reparare acoperire 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 funcția AdjustPrepmtAmountLCY în Codeuint de vânzări-Post (80) după cum urmează:
    Cod existent 1
    ...TotalPrepmtAmount@1002 : ARRAY [2] OF Decimal;      BEGIN...
    Înlocuirea cod 1
    ...TotalPrepmtAmount@1002 : ARRAY [2] OF Decimal;// Add the following line.       PricesInclVATRoundingAmount@1170000000 : ARRAY [2] OF Decimal;// End of the added line.      BEGIN...
    Cod existent 2
    ...TotalPrepmtAmount[1] += "Prepmt. Amount Inv. (LCY)";...
    Înlocuirea cod 2
    ...// Add the following lines.IF SalesHeader."Prices Including VAT" THEN                 IF (("Prepayment %" <> 100) OR IsFinalInvoice) AND (DeductionFactor = 1) THEN BEGIN                   PricesInclVATRoundingAmount[1] := TotalRoundingAmount[1];                   PricesInclVATRoundingAmount[2] := TotalRoundingAmount[2];                 END;// End of the added lines.                 TotalPrepmtAmount[1] += "Prepmt. Amount Inv. (LCY)";...
    Cod existent 3
    ...UpdatePrepmtSalesLineWithRound(// Delete the following line.           PrepmtSalesLine,TotalRoundingAmount,TotalPrepmtAmount,TempPrepmtDeductLCYSalesLine.IsFinalInvoice);// End of the deleted line.        END;...
    Înlocuirea cod 3
    ...UpdatePrepmtSalesLineWithRound(// Add the following lines.           PrepmtSalesLine,TotalRoundingAmount,TotalPrepmtAmount,           TempPrepmtDeductLCYSalesLine.IsFinalInvoice,PricesInclVATRoundingAmount);// End of the added lines.        END;...
  2. Modificați codul din funcțiaUpdatePrepmtSalesLineWithRound în theSales Post Codeuint (80) după cum urmează:
    Cod existent 1
    ...// Delete the following line.LOCAL PROCEDURE UpdatePrepmtSalesLineWithRound@89(VAR PrepmtSalesLine@1002 : Record 37;TotalRoundingAmount@1001 : ARRAY [2] OF Decimal;TotalPrepmtAmount@1000 : ARRAY [2] OF Decimal;FinalInvoice@1170000000 : Boolean);// End of the deleted line.      VAR...
    Înlocuirea cod 1
    ...// Add the following line.LOCAL PROCEDURE UpdatePrepmtSalesLineWithRound@89(VAR PrepmtSalesLine@1002 : Record 37;TotalRoundingAmount@1001 : ARRAY [2] OF Decimal;TotalPrepmtAmount@1000 : ARRAY [2] OF Decimal;FinalInvoice@1170000000 : Boolean;PricesInclVATRoundingAmount@1170000001 : ARRAY [2] OF Decimal);// End of the added line.      VAR...
    Cod existent 2
    ...// Delete the following line.IF (ABS(TotalRoundingAmount[2]) <= GLSetup."Amount Rounding Precision") OR FinalInvoice THEN BEGIN// End of the deleted line.            IF ("Prepayment %" = 100) AND ("Prepmt. Amount Inv. (LCY)" = 0) THEN...
    Înlocuirea cod 2
    ...// Add the following lines.IF (PricesInclVATRoundingAmount[1] <> 0) AND (TotalRoundingAmount[1] = 0) THEN BEGIN           Prepmt100PctVATRoundingAmt := 0;           PricesInclVATRoundingAmount[1] := 0;         END;          IF (ABS(TotalRoundingAmount[2]) <= GLSetup."Amount Rounding Precision") OR            (FinalInvoice AND (TotalRoundingAmount[1] = 0))         THEN BEGIN// End of the added lines.            IF ("Prepayment %" = 100) AND ("Prepmt. Amount Inv. (LCY)" = 0) THEN...
    Cod existent 3
    ...END;// Delete the following lines.         "Prepmt. VAT Amount Inv. (LCY)" := TotalRoundingAmount[2] + Prepmt100PctVATRoundingAmt;         NewAmountIncludingVAT := Amount + TotalPrepmtAmount[2] + TotalRoundingAmount[2];         Increment(TotalSalesLineLCY."Amount Including VAT","Amount Including VAT" - NewAmountIncludingVAT - Prepmt100PctVATRoundingAmt);// End of the deleted lines.          IF "Currency Code" = '' THEN...
    Înlocuirea cod 3
    ...END;// Add the following lines.          IF (PricesInclVATRoundingAmount[2] <> 0) AND (TotalRoundingAmount[2] = 0) THEN BEGIN           Prepmt100PctVATRoundingAmt := 0;           PricesInclVATRoundingAmount[2] := 0;         END;          "Prepmt. VAT Amount Inv. (LCY)" := TotalRoundingAmount[2] + Prepmt100PctVATRoundingAmt;         NewAmountIncludingVAT := Amount + TotalPrepmtAmount[2] + TotalRoundingAmount[2];         IF (PricesInclVATRoundingAmount[1] = 0) AND (PricesInclVATRoundingAmount[2] = 0) THEN           Increment(TotalSalesLineLCY."Amount Including VAT","Amount Including VAT" - NewAmountIncludingVAT - Prepmt100PctVATRoundingAmt       );// End of the added lines.          IF "Currency Code" = '' THEN...
  3. Modificați codul din funcția AdjustPrepmtAmountLCY cump.-Post Codeunit (90) după cum urmează:
    Cod existent 1
    ...TotalPrepmtAmount@1003 : ARRAY [2] OF Decimal;      BEGIN...
    Înlocuirea cod 1
    ...TotalPrepmtAmount@1003 : ARRAY [2] OF Decimal;// Add the following line.       PricesInclVATRoundingAmount@1170000000 : ARRAY [2] OF Decimal;// End of the added line.      BEGIN...
    Cod existent 2
    ...TotalPrepmtAmount[1] += "Prepmt. Amount Inv. (LCY)";...
    Înlocuirea cod 2
    ...// Add the following lines.               IF PurchHeader."Prices Including VAT" THEN                 IF (("Prepayment %" <> 100) OR IsFinalInvoice) AND (DeductionFactor = 1) THEN BEGIN                   PricesInclVATRoundingAmount[1] := TotalRoundingAmount[1];                   PricesInclVATRoundingAmount[2] := TotalRoundingAmount[2];                 END;// End of the added lines.                 TotalPrepmtAmount[1] += "Prepmt. Amount Inv. (LCY)";...
    Cod existent 3
    ...// Delete the following line.UpdatePrepmtPurchLineWithRound(PrepmtPurchLine,TotalRoundingAmount,TotalPrepmtAmount);// End of the deleted line.        END;...
    Înlocuirea cod 3
    ...// Add the following lines.UpdatePrepmtPurchLineWithRound(           PrepmtPurchLine,TotalRoundingAmount,TotalPrepmtAmount,           TempPrepmtDeductLCYPurchLine.IsFinalInvoice,PricesInclVATRoundingAmount);// End of the added lines.        END;...
  4. Modificați codul din funcțiaUpdatePrepmtPurchLineWithRound din thePurch.-Post Codeunit (90) după cum urmează:
    Cod existent 1
    ...// Delete the following line.LOCAL PROCEDURE UpdatePrepmtPurchLineWithRound@89(VAR PrepmtPurchLine@1002 : Record 39;TotalRoundingAmount@1001 : ARRAY [2] OF Decimal;TotalPrepmtAmount@1000 : ARRAY [2] OF Decimal);// End of the deleted line.      VAR...
    Înlocuirea cod 1
    ...// Add the following line.LOCAL PROCEDURE UpdatePrepmtPurchLineWithRound@89(VAR PrepmtPurchLine@1002 : Record 39;TotalRoundingAmount@1001 : ARRAY [2] OF Decimal;TotalPrepmtAmount@1000 : ARRAY [2] OF Decimal;FinalInvoice@1170000001 : Boolean;PricesInclVATRoundingAmount@1170000000 : ARRAY [2] OF Decimal);// End of the added line.      VAR...
    Cod existent 2
    ...// Delete the following line.IF ABS(TotalRoundingAmount[2]) <= GLSetup."Amount Rounding Precision" THEN BEGIN// End of the deleted line.            IF ("Prepayment %" = 100) AND ("Prepmt. Amount Inv. (LCY)" = 0) THEN...
    Înlocuirea cod 2
    ...// Add the following lines.         IF (PricesInclVATRoundingAmount[1] <> 0) AND (TotalRoundingAmount[1] = 0) THEN BEGIN           Prepmt100PctVATRoundingAmt := 0;           PricesInclVATRoundingAmount[1] := 0;         END;          IF (ABS(TotalRoundingAmount[2]) <= GLSetup."Amount Rounding Precision") OR            (FinalInvoice AND (TotalRoundingAmount[1] = 0))         THEN BEGIN// End of the added lines.            IF ("Prepayment %" = 100) AND ("Prepmt. Amount Inv. (LCY)" = 0) THEN...
    Cod existent 3
    ...END;// Delete the following lines.         "Prepmt. VAT Amount Inv. (LCY)" := -(TotalRoundingAmount[2] + Prepmt100PctVATRoundingAmt);         NewAmountIncludingVAT := Amount - (TotalPrepmtAmount[2] + TotalRoundingAmount[2]);         Increment(           TotalPurchLineLCY."Amount Including VAT",-("Amount Including VAT" - NewAmountIncludingVAT + Prepmt100PctVATRoundingAmt));// End of the deleted lines.          IF "Currency Code" = '' THEN...
    Înlocuirea cod 3
    ...END;// Add the following lines.         IF (PricesInclVATRoundingAmount[2] <> 0) AND (TotalRoundingAmount[2] = 0) THEN BEGIN           Prepmt100PctVATRoundingAmt := 0;           PricesInclVATRoundingAmount[2] := 0;         END;          "Prepmt. VAT Amount Inv. (LCY)" := -(TotalRoundingAmount[2] + Prepmt100PctVATRoundingAmt);         NewAmountIncludingVAT := Amount - (TotalPrepmtAmount[2] + TotalRoundingAmount[2]);         IF (PricesInclVATRoundingAmount[1] = 0) AND (PricesInclVATRoundingAmount[2] = 0) THEN           Increment(             TotalPurchLineLCY."Amount Including VAT",-("Amount Including VAT" - NewAmountIncludingVAT + Prepmt100PctVATRoundingAmt));// End of the added lnies.          IF "Currency Code" = '' THEN...

Cerințe preliminare

Trebuie să aveți unul dintre următoarele produse instalate pentru a aplica această remediere rapidă:
  • Microsoft Dynamics NAV 2009 pachet Service Pack 1 (SP1)
  • 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 Condiții de utilizare pentru alte aspecte.

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 2893954 - Ultima examinare: 08/10/2016 03:26:00 - Revizie: 2.0

Microsoft Dynamics NAV 2009

  • kbqfe kbmbsmigrate kbmbscodefix kbsurveynew kberrmsg kbmt KB2893954 KbMtro
Feedback