Fehlermeldung "Artikelnr [artikel_nr.] ist nicht vorhanden" beim Stornieren im Formular Kreditorenposten Russische Version des Microsoft Dynamics NAV 2009 R2 mit Feature Pack 1 registrieren

Vorlage: CPR - Navision Fix-Vorlage

Fehler #: 145554 (Content Maintenance)

Dieser Artikel bezieht sich auf Microsoft Dynamics NAV für das Gebietsschema Russisch (ru).

Problembeschreibung

Ist die Tabelle MwSt-Posten (254) MwSt.-Zuordnung ändert, Operationen beim Stornieren im Formular Kreditorenposten zu registrieren, erhalten Sie Russische Version von Microsoft Dynamics NAV 2009 R2 mit Feature Pack 1 die folgende Fehlermeldung angezeigt:

Artikel Nr.artikel_nr. ist nicht vorhanden.


Problemlösung

Hotfix-Informationen

Ein unterstützter Hotfix ist inzwischen von Microsoft erhältlich. Allerdings ist es lediglich zur Behebung dieses Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise noch getestet. Wenn Ihr System durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfehlen wir, dass Sie warten auf das nächste Servicepack für Microsoft Dynamics NAV 2009 oder die nächste Microsoft Dynamics NAV-Version, die diesen Hotfix enthält.

Hinweis In besonderen Fällen bestimmt Gebühren fallen normalerweise Support aufrufen Wenn Experte Support für Microsoft Dynamics und zugehörige Produkte storniert werden können, dass ein bestimmtes Update Ihr Problem behebt. Die normalen Supportkosten gilt für zusätzliche Supportfragen und Probleme, die nicht für das betreffende Update qualifizieren.

Dieser Hotfix nicht öffentlich zum Download (d. h. eine öffentliche URL für diesen Hotfix nicht in diesem Artikel bereitgestellt wird) gebucht, Verteilung erfordert technische Eskalation Teammitglied oder Genehmigung eines Managers und Folgendes gilt:

  • Um den Hotfix zu erhalten, müssen Kunden den Fehler, der im Abschnitt "Symptome" genannt.

  • Sie müssen die Kunden aufzeichnen zu senden und sie mit dem nächsten Servicepack angeben, wenn es verfügbar wird (wenn ein Servicepack veröffentlicht wird).

Dieser Hotfix wird nicht in ein Servicepack von Microsoft Dynamics NAV 2009 enthalten sein.



Informationen zur Installation

Microsoft bietet Programmierbeispiele lediglich zur Veranschaulichung, ohne ausdrückliche oder konkludente Gewährleistung. Dies beinhaltet, ist jedoch nicht beschränkt auf, konkludente Gewährleistungen der Tauglichkeit oder Eignung für einen bestimmten Zweck. Dieser Artikel setzt voraus, dass Sie mit der von Beispielen verwendeten Programmiersprache und den Tools, die zum Erstellen und Debuggen von Prozeduren verwendet werden, vertraut sind. Microsoft-Supportmitarbeiter können bei der Erläuterung der Funktionalität bestimmter Prozeduren helfen, sie werden jedoch diese Beispiele nicht verändern um eine erweiterte Funktionalität aufzuzeigen oder Prozeduren entwickeln, die Ihren Anforderungen entsprechen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Navision-Clientbenutzer vom System abgemeldet werden. Dies gilt auch für Clientbenutzer der Microsoft Navision Application Services (NAS). Sie sollte nur-Client-Benutzers, der angemeldet ist, wenn Sie diesen Hotfix installieren.

Muss eine Entwicklerlizenz verfügen, um diesen Hotfix installieren können.

Es wird empfohlen, das Benutzerkonto im Fenster Windows-Benutzernamen oder im Fenster Datenbank-Anmeldenamen "SUPER" Rollen-ID zugewiesen werden Wenn das Benutzerkonto die Rollen-ID "SUPER" nicht zugeordnet werden kann, müssen Sie sicherstellen, dass das Benutzerkonto die folgenden Berechtigungen verfügt:

  • Änderungsberechtigung für das Objekt, das Sie ändern.

  • Ausführungsberechtigung für System Object ID 5210 und System Object ID 9015 -Objekt.



Hinweis Sie müssen keine Rechte für die Datenspeicher haben, es sei denn, Sie müssen eine Datenreparatur durchführen.

Ändern von Code

Hinweis Testen Sie Programmcodeverbesserungen generell erst in einem Testsytem, bevor Sie sie im Produktionssystem verwenden.
Gehen Sie folgendermaßen vor, um dieses Problem zu beheben:
Hinweis Um das Feld (12490) zu erstellen, verwenden Sie folgende .fob-Datei.

Dateiname

Dateiversion

Dateigröße

Datum

Zeit

Plattform

Vstf260227.fob

Nicht zutreffend

169,340

03-Jun-2011

10:08

Nicht zutreffend

Die folgende Datei steht zum Download von Microsoft Dynamics Datei Exchange Server:

https://mbs2.microsoft.com/fileexchange/?fileID=5f52394d-7020-4d24-98b4-909002c45cfeDatum der Freigabe: 2. April 2014

Microsoft hat diese Datei auf Viren überprüft. Microsoft hat die zum Zeitpunkt der Veröffentlichung der Datei aktuell verfügbare Virenerkennungssoftware verwendet. Die Datei wird auf Servern mit erhöhter Sicherheit gespeichert, wodurch nicht autorisierten Änderungen an der Datei vorgebeugt wird.

  1. Ändern Sie den Code in der Tabelle Stornoposten (179) wie folgt:

    1. Fügen Sie das folgende Feld: {12490; MwSt.-Zuordnung; Boolescher Wert}

    2. Ändern Sie den Code in der Funktion InsertReversalEntry wie folgt:
      Vorhandener code

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

      Neuer code

      ...                 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. Ändern Sie den Code in der Funktion "CheckEntries" wie folgt:
      Vorhandener Code 1

      ...    PROCEDURE CheckEntries@14();   
      ...

      Neuer Code 1

      ...   PROCEDURE CheckEntries@14(IsVATAllocOnCost@1000000000 : Boolean);        
      ...

      Vorhandener Code 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;
      ...

      Neuer Code 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;
      ...

      Vorhandenen Code 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;
      ...

      Neuer Code 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. Ändern Sie den Code in der Funktion SetReverseFilter wie folgt:
      Vorhandener Code 1

      ...           TaxDiffEntry.SETRANGE("Transaction No.",Number);

      END ELSE BEGIN

      GLReg.GET(Number);
      ...

      Neuer Code 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);
      ...

      Vorhandener Code 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);
      ...

      Neuer Code 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. Ändern Sie den Code in der Funktion VATAllocationExist wie folgt:
      Vorhandener code

      ...// 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);
      ...

      Neuer code

      ...// 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. Ändern Sie den Code in der Funktion Buchen aus Posten stornieren (179) wie folgt:
    Fügen Sie die folgende lokale Variable hinzu:

    • Name: VATAllocOnCost

    • Datentyp: Boolean

    Vorhandener Code 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.";
    ...

    Neuer Code 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.";
    ...

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

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


Voraussetzungen

Russische Version des Microsoft Dynamics NAV 2009 R2 mit Feature Pack 1 verfügen, um diesen Hotfix installieren müssen.

Informationen zur Deinstallation

Dieser Hotfix kann nicht entfernt werden.

Status

Microsoft hat bestätigt, dass es sich um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Eigenschaften“ aufgeführt sind.

Referenzen

VSTF DynamicsNAV SE: 260227

Hinweis Dies ist ein im Schnellverfahren veröffentlichter Artikel, der direkt in der Microsoft Support-Organisation erstellt wurde. Die hierin enthaltenen Informationen werden ohne Mängelgewähr in Reaktion auf neue Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung kann das Material möglicherweise typografische Fehler enthalten und jederzeit ohne vorherige Ankündigung geändert werden. Weitere Hinweise finden Sie unter Geschäftsbedingungen .

Autor: Alexef
Ersteller: V-tinw
Technische Überprüfung: Alexef
Redaktion:

Benötigen Sie weitere Hilfe?

Ihre Office-Fähigkeiten erweitern
Schulungen erkunden
Neue Funktionen als Erster erhalten
Microsoft Insider beitreten

War diese Information hilfreich?

Vielen Dank für Ihr Feedback!

Vielen Dank für Ihr Feedback. Es klingt, als ob es hilfreich sein könnte, Sie mit einem unserer Office-Supportmitarbeiter zu verbinden.

×