"Elementul No. [Item_No.] nu există" mesaj de eroare când încercați să anulați înregistra în formularul de intrări în registru furnizor în versiunea rusă de Microsoft Dynamics NAV 2009 R2 cu Feature Pack 1

Se aplică la: Dynamics NAV 2009

Acest articol se aplică la Microsoft Dynamics NAV pentru setările regionale de limbă rusă (executare).

Simptome


În versiunea rusă de Microsoft Dynamics NAV 2009 R2 cu Feature Pack 1, dacă tabelul Intrare TVA (254) are modificările de alocare TVA operațiuni, atunci când încercați să anulați înregistra în formularul de intrări registrul de furnizor, primiţi următorul mesaj de eroare:
Nr. articolItem_No. nu există.

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, dar nu vor modifica aceste exemple pentru a furniza funcționalitate suplimentară sau pentru a 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ă 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 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:
Notă Pentru a crea câmpul (12490), utilizați următorul fișier .fob.
Nume de fișierVersiune fișierDimensiune fișierDataOraPlatformă
Vstf260227.fobNu se aplică169,34003-Jun-201110:08Nu se aplică
Următorul fișier este disponibilă pentru descărcare de la Microsoft Dynamics File Exchange Server:

Data publicării: 2 aprilie 2014

Microsoft a scanat acest fișier pentru viruşi. Microsoft utilizează cele mai actualizate software pentru detectarea virușilor care sunt disponibile la data la care fișierul a fost postat. Fisierul este stocat pe servere securizate care ajută la împiedicarea modificărilor neautorizate a fișierului.
  1. Modificați codul din tabelul de Intrare inversare (179) după cum urmează:
    1. Adăugați următorul câmp: {12490; Alocare TVA; Boolean}
    2. Modificați codul din funcția InsertReversalEntry după cum urmează:
      Cod existent
      ...                  ReversalEntry."Bal. Account Type" := GLEntry."Bal. Account Type";

      ReversalEntry."Bal. Account No." := GLEntry."Bal. Account No.";

      ReversalEntry."Line No." := NextLineNo;

      NextLineNo := NextLineNo + 1;

      ReversalEntry.INSERT;



      IF GLEntry.Amount > 0 THEN BEGIN

      GLItemLedgRelation.RESET;

      GLItemLedgRelation.SETRANGE("G/L Entry No.",GLEntry."Entry No.");
      ...
      Cod de înlocuire
      ...                 ReversalEntry."Bal. Account Type" := GLEntry."Bal. Account Type";

      ReversalEntry."Bal. Account No." := GLEntry."Bal. Account No.";

      ReversalEntry."Line No." := NextLineNo;

      // Add the following line.
      ReversalEntry."VAT Allocation" := VATAllocOnCost;
      // End of the added line.

      NextLineNo := NextLineNo + 1;

      ReversalEntry.INSERT;



      IF GLEntry.Amount >0 THEN BEGIN

      GLItemLedgRelation.RESET;

      GLItemLedgRelation.SETRANGE("G/L Entry No.",GLEntry."Entry No.");
      ...
    3. Modificați codul din funcția CheckEntries după cum urmează:
      Cod existent 1
      ...    PROCEDURE CheckEntries@14();   
      ...
      Înlocuirea cod 1
      ...   PROCEDURE CheckEntries@14(IsVATAllocOnCost@1000000000 : Boolean);        
      ...
      Cod existent 2
      ...      MaxPostingDate := 0D;

      IF NOT GLEntry.FIND('-') THEN

      ERROR(Text009,GLEntry.TABLECAPTION,GLAcc.TABLECAPTION);

      // Delete the following line.
      VATAllocOnCost := VATAllocationExist(VATEntry);
      // End of the deleted line.

      IF GLEntry.FIND('-') THEN BEGIN

      // Delete the following line.
      IF (GLEntry."Journal Batch Name" = '') AND NOT VATAllocOnCost THEN
      // End of the deleted line.

      TestFieldError;

      REPEAT

      CheckGLAcc(GLEntry,BalanceCheckAmount,BalanceCheckAddCurrAmount);

      UNTIL GLEntry.NEXT = 0;

      END;
      ...
      Înlocuirea cod 2
      ...         MaxPostingDate := 0D;

      IF NOT GLEntry.FIND('-') THEN

      ERROR(Text009,GLEntry.TABLECAPTION,GLAcc.TABLECAPTION);

      IF GLEntry.FIND('-') THEN BEGIN

      // Add the following line.
      IF (GLEntry."Journal Batch Name" = '') AND NOT IsVATAllocOnCost THEN
      // End of the added line.

      TestFieldError;

      REPEAT

      CheckGLAcc(GLEntry,BalanceCheckAmount,BalanceCheckAddCurrAmount);

      UNTIL GLEntry.NEXT = 0;

      END;
      ...
      Cod existent 3
      ...       IF VATEntry.FIND('-') THEN

      REPEAT

      CheckVAT(VATEntry);

      UNTIL VATEntry.NEXT = 0;

      // Delete the following line.
      IF VATAllocOnCost THEN
      // End of the deleted line.

      IF ValueEntry.FIND('-') THEN

      REPEAT

      CheckItem(ValueEntry);

      UNTIL ValueEntry.NEXT = 0;
      ...
      Înlocuirea cod 3
      ...       IF VATEntry.FIND('-') THEN

      REPEAT

      CheckVAT(VATEntry);

      UNTIL VATEntry.NEXT = 0;

      // Add the following line.
      IF IsVATAllocOnCost THEN
      // End of the added line.

      IF ValueEntry.FIND('-') THEN

      REPEAT

      CheckItem(ValueEntry);

      UNTIL ValueEntry.NEXT = 0;
      ...
    4. Modificați codul din funcția SetReverseFilter după cum urmează:
      Cod existent 1
      ...           TaxDiffEntry.SETRANGE("Transaction No.",Number);

      END ELSE BEGIN

      GLReg.GET(Number);
      ...
      Înlocuirea cod 1
      ...         TaxDiffEntry.SETRANGE("Transaction No.",Number);

      // Add the following line.
      ValueEntry.SETRANGE("Entry No.",0);
      // End of the added line.

      END ELSE BEGIN

      GLReg.GET(Number);
      ...
      Cod existent 2
      ...           VATEntry.SETRANGE("Entry No.",GLReg."From VAT Entry No.",GLReg."To VAT Entry No.");

      GLItemLedgRelation.SETCURRENTKEY(GLItemLedgRelation."G/L Register No.");

      GLItemLedgRelation.SETRANGE("G/L Register No.",GLReg."No.");

      IF GLItemLedgRelation.FINDFIRST THEN

      FromValueEntryNo := GLItemLedgRelation."Value Entry No.";

      IF GLItemLedgRelation.FINDLAST THEN

      ToValueEntryNo := GLItemLedgRelation."Value Entry No.";

      ValueEntry.SETRANGE("Entry No.",FromValueEntryNo,ToValueEntryNo);
      ...
      Înlocuirea cod 2
      ...        VATEntry.SETRANGE("Entry No.",GLReg."From VAT Entry No.",GLReg."To VAT Entry No.");

      // Add the following lines.
      FromValueEntryNo := 0;

      ToValueEntryNo := 0;

      IF VATAllocOnCost THEN BEGIN
      // End of the added lines.

      GLItemLedgRelation.SETCURRENTKEY(GLItemLedgRelation."G/L Register No.");

      GLItemLedgRelation.SETRANGE("G/L Register No.",GLReg."No.");

      IF GLItemLedgRelation.FINDFIRST THEN

      FromValueEntryNo := GLItemLedgRelation."Value Entry No.";

      IF GLItemLedgRelation.FINDLAST THEN

      ToValueEntryNo := GLItemLedgRelation."Value Entry No.";
      // Add the following line.
      END;
      // End of the added line.

      ValueEntry.SETRANGE("Entry No.",FromValueEntryNo,ToValueEntryNo);
      ...
    5. Modificați codul din funcția VATAllocationExist după cum urmează:
      Cod existent
      ...// Delete the following line.
      VATEntry2.COPYFILTERS(VATEntry2);
      // End of the deleted line.

      VATEntry2.SETRANGE("VAT Allocation Type",VATEntry2."VAT Allocation Type"::Charge);

      EXIT(NOT VATEntry2.ISEMPTY);
      ...
      Cod de înlocuire
      ...// Add the following line.
      VATEntry2.COPYFILTERS(VATEntry);
      // End of the added line.

      VATEntry2.SETRANGE("VAT Allocation Type",VATEntry2."VAT Allocation Type"::Charge);

      EXIT(NOT VATEntry2.ISEMPTY);
      ...
  2. Modificați codul din funcția Post în formularul de Intrări inversă (179) după cum urmează:
    Adăugați următoarele variabila locale:
    • Nume: VATAllocOnCost
    • Tip de date: Boolean
    Cod existent 1
    ...            IF TempGLReg.FINDSET THEN

    REPEAT

    ReversalEntry2.SetReverseFilter(TempGLReg."No.","Reversal Type");

    // Delete the following line.
    ReversalEntry2.CheckEntries;
    // End of the deleted line.

    GET(1);

    IF "Reversal Type" = "Reversal Type"::Register THEN

    Number := TempGLReg."No."

    ELSE

    Number := "Transaction No.";
    ...
    Înlocuirea cod 1
    ...             IF TempGLReg.FINDSET THEN

    REPEAT

    // Add the following lines.
    SETRANGE("G/L Register No.",TempGLReg."No.");

    SETRANGE("VAT Allocation",TRUE);

    VATAllocOnCost := NOT ISEMPTY;
    // End of the added lines.

    ReversalEntry2.SetReverseFilter(TempGLReg."No.","Reversal Type");

    // Add the following line.
    ReversalEntry2.CheckEntries(VATAllocOnCost);
    // End of the added line.

    GET(1);

    IF "Reversal Type" = "Reversal Type"::Register THEN

    Number := TempGLReg."No."

    ELSE

    Number := "Transaction No.";
    ...
    Cod existent 2
    ...          UNTIL TempGLReg.NEXT = 0;

    END ELSE BEGIN

    ReversalEntry2.SetReverseFilter("Transaction No.","Reversal Type");

    // Delete the following line.
    ReversalEntry2.CheckEntries;
    // End of the deleted line.

    GET(1);

    IF "Reversal Type" = "Reversal Type"::Register THEN

    Number := "G/L Register No."
    ...
    Înlocuirea cod 2
    ...             UNTIL TempGLReg.NEXT = 0;

    END ELSE BEGIN

    // Add the following lines.
    SETRANGE("G/L Register No.",TempGLReg."No.");

    SETRANGE("VAT Allocation",TRUE);

    VATAllocOnCost := NOT ISEMPTY;
    // End of the added lines.

    ReversalEntry2.SetReverseFilter("Transaction No.","Reversal Type");

    // Add the following line.
    ReversalEntry2.CheckEntries(VATAllocOnCost);
    // End of the added line.

    GET(1);

    IF "Reversal Type" = "Reversal Type"::Register THEN

    Number := "G/L Register No."
    ...

Cerințe preliminare

Trebuie să aveți versiunea rusă a Microsoft Dynamics NAV 2009 R2 cu Feature Pack 1 instalat pentru a aplica această remediere rapidă.

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".

Referințe


VSTF DynamicsNAV SE: 260227
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 utilizare pentru alte considerații.