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.
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 2014Microsoft 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.
-
Ändern Sie den Code in der Tabelle Stornoposten (179) wie folgt:
-
Fügen Sie das folgende Feld: {12490; MwSt.-Zuordnung; Boolescher Wert}
-
Ä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."); ...
-
Ä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; ... -
Ä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); ... -
Ä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); ...
-
-
Ä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 .