Saturday, September 23, 2023

Eine zusätzliche Zeile wird generiert, nachdem Sie den Bericht „Mehrwertsteuerabrechnung berechnen und buchen“ (20) in der portugiesischen Version von Microsoft Dynamics NAV 2009 mit angewendetem Hotfix 2664402 ausführen – Microsoft-Support

Dieser Artikel gilt für Microsoft Dynamics NAV für das Sprachgebietsschema Portugiesisch (pt).

Symptome

Angenommen, Sie wenden Hotfix 2664402 in der portugiesischen Version von Microsoft Dynamics NAV 2009 an. In derselben Situation wird nach der Ausführung des Berichts „Mehrwertsteuerabrechnung berechnen und buchen" (20) eine zusätzliche Zeile generiert.
Weitere Informationen zum Hotfix 2664402 erhalten Sie, indem Sie auf die folgende Artikelnummer klicken, um den Artikel in der Microsoft Knowledge Base anzuzeigen:

2664402 Die Mehrwertsteuerabrechnung storniert einen falschen Betrag, wenn in der portugiesischen Version von Microsoft Dynamics NAV 2009 abzugsfähige Mehrwertsteuer, nicht abzugsfähige Mehrwertsteuer und umgekehrte Steuerschuldnerschaft betroffen sind. Dieses Problem tritt bei den folgenden Produkten auf:

  • Die portugiesische Version von Microsoft Dynamics NAV 2009 R2

  • Die portugiesische Version von Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Auflösung

Hotfix-Informationen

Ein unterstützter Hotfix ist jetzt von Microsoft verfügbar. Es dient jedoch lediglich der Behebung des in diesem Artikel beschriebenen Problems. Wenden Sie es nur auf Systeme an, bei denen dieses spezielle Problem auftritt. Dieser Hotfix wird möglicherweise weiteren Tests unterzogen. Wenn Sie von diesem Problem nicht schwerwiegend betroffen sind, empfehlen wir Ihnen daher, auf das nächste Microsoft Dynamics NAV 2009 Service Pack oder die nächste Microsoft Dynamics NAV-Version zu warten, die diesen Hotfix enthält.

Hinweis: In besonderen Fällen können die Gebühren, die normalerweise für Supportanrufe anfallen, storniert werden, wenn ein Mitarbeiter des technischen Supports für Microsoft Dynamics und verwandte Produkte feststellt, dass ein bestimmtes Update Ihr Problem lösen wird. Für zusätzliche Supportfragen und Probleme, die für das jeweilige Update nicht in Frage kommen, fallen die üblichen Supportkosten an.



Installationsinformationen

Microsoft stellt Programmierbeispiele nur zur Veranschaulichung zur Verfügung, ohne ausdrückliche oder stillschweigende Gewährleistung. Dazu gehören unter anderem stillschweigende Garantien der Marktgängigkeit oder Eignung für einen bestimmten Zweck. In diesem Artikel wird davon ausgegangen, dass Sie mit der demonstrierten Programmiersprache und den Tools vertraut sind, die zum Erstellen und Debuggen von Prozeduren verwendet werden. Microsoft-Supporttechniker können dabei helfen, die Funktionalität einer bestimmten Prozedur zu erläutern, sie werden diese Beispiele jedoch nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren zu erstellen, die Ihren spezifischen Anforderungen entsprechen.

Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Benutzer des Microsoft Navision-Clients vom System abgemeldet sind. Dazu gehören Clientbenutzer von Microsoft Navision Application Services (NAS). Sie sollten der einzige Clientbenutzer sein, der angemeldet ist, wenn Sie diesen Hotfix implementieren.

Um diesen Hotfix zu implementieren, benötigen Sie eine Entwicklerlizenz.

Wir empfehlen, dem Benutzerkonto im Fenster „Windows-Anmeldungen" oder im Fenster „Datenbank-Anmeldungen" die Rollen-ID „SUPER" zuzuweisen. Wenn dem Benutzerkonto nicht die Rollen-ID „SUPER" zugewiesen werden kann, müssen Sie überprüfen, ob das Benutzerkonto über die folgenden Berechtigungen verfügt:

  • Die Änderungsberechtigung für das Objekt, das Sie ändern möchten.

  • Die Ausführungsberechtigung für das Systemobjekt-ID-5210-Objekt und für das Systemobjekt-ID-9015-Objekt.



Hinweis Sie müssen keine Rechte an den Datenspeichern haben, es sei denn, Sie müssen eine Datenreparatur durchführen.

Codeänderungen

Hinweis: Testen Sie Codekorrekturen immer in einer kontrollierten Umgebung, bevor Sie die Korrekturen auf Ihren Produktionscomputern anwenden.
Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus:

  1. Ändern Sie den Code im Auslöser „MwSt.-Einträge schließen – OnAfterGetRecord" im Calc. und Bericht zur Post-Mehrwertsteuerabrechnung (20) wie folgt:
    Vorhandener Code

     ...
    GenJnlLine2."Konto-Nr." := "MwSt.-Buchungs-Setup"."Rückbuchung MwSt.-Kont.";
    GenJnlLine2.VALIDATE(

    // Folgende Zeilen löschen.
    Menge,
    Betrag,VATEntryAmount);
    // Ende der Zeilen.

    GenJnlLine2."Quellwährungscode" := GLSetup."Zusätzliche Berichtswährung";
    GenJnlLine2."Quellwährungsbetrag" := VATEntry."Zusätzlicher Währungsbetrag";
    WENN PostSettlement UND (GenJnlLine2.Amount <> 0) DANN
    PostGenJnlLine(GenJnlLine2);

    Mehrwertsteuerbetrag :=

    // Folgende Zeile löschen.
    VATAmount - GenJnlLine2.Amount + VATEntry.Amount; // PT0001

    VATAmountAddCurr :=
    // PT0001.begin
    VATAmountAddCurr - VATEntry."Additional-Currency Base" * (VATEntry."ND %" + VATEntry."VAT %") / 100 +
    VATEntry."Zusätzlicher Währungsbetrag";
    // PT0001.end

    //--C. Memo akzeptiert--
    VATEntry.SETFILTER("Dokumenttyp",'%1|%2',
    VATEntry."Dokumenttyp"::"Gutschrift",
    VATEntry."Document Type"::Payment);
    VATEntry.SETFILTER("UE-Akquisition nicht akzeptiert.",'%1',FALSE);
    VATEntry.CALCSUMS(
    Basis, Betrag,
    „Zusatzwährungsbasis", „Zusatzwährungsbetrag");

    „MwSt.-Buchungs-Setup".TESTFIELD("MwSt.-Rückgabekonto (Verkäufe)");
    CLEAR(GenJnlLine2);
    GenJnlLine2. „Vom System erstellter Eintrag" := TRUE;
    GenJnlLine2."Kontotyp" := GenJnlLine2."Kontotyp"::"Sachkonto";
    GenJnlLine2.Description := GenJnlLine.Description;
    GenJnlLine2."Posting Date" := PostingDate;
    GenJnlLine2."Dokumenttyp" := 0;
    GenJnlLine2."Dokumentnr." := DokNr;
    GenJnlLine2."Source Code" := SourceCodeSetup."VAT Settlement";
    GenJnlLine2."VAT Posting" := GenJnlLine2."VAT Posting"::"Manuelle MwSt.-Eingabe";
    GenJnlLine2."Konto-Nr." := "MwSt.-Buchungs-Setup"."MWST-Konto zurückerstatten (Verkäufe)";
    GenJnlLine2.VALIDATE(

    // Folgende Zeilen löschen.
    Menge,
    Betrag,VATEntryAmount);
    // Ende der Zeilen.

    GenJnlLine2."Quellwährungscode" := GLSetup."Zusätzliche Berichtswährung";
    GenJnlLine2."Quellwährungsbetrag" := VATEntry."Zusätzlicher Währungsbetrag";
    WENN PostSettlement UND (GenJnlLine2.Amount <> 0) DANN
    PostGenJnlLine(GenJnlLine2);

    Mehrwertsteuerbetrag :=

    // Folgende Zeile löschen.
    VATAmount - GenJnlLine2.Amount + VATEntry.Amount; // PT0001

    VATAmountAddCurr :=
    // PT0001.begin
    VATAmountAddCurr - VATEntry."Additional-Currency Base" * (VATEntry."ND %" + VATEntry."VAT %") / 100 +
    VATEntry."Zusätzlicher Währungsbetrag";
    // PT0001.end
    ...

    Ersatzcode

     ...
    GenJnlLine2."Konto-Nr." := "MwSt.-Buchungs-Setup"."Rückbuchung MwSt.-Kont.";
    GenJnlLine2.VALIDATE(

    // Fügen Sie die folgende Zeile hinzu.
    Amount,CalcVATEntryAmount(TRUE,FALSE));

    GenJnlLine2."Quellwährungscode" := GLSetup."Zusätzliche Berichtswährung";
    GenJnlLine2."Quellwährungsbetrag" := VATEntry."Zusätzlicher Währungsbetrag";
    WENN PostSettlement UND (GenJnlLine2.Amount <> 0) DANN
    PostGenJnlLine(GenJnlLine2);

    Mehrwertsteuerbetrag :=

    // Fügen Sie die folgende Zeile hinzu.
    VATAmount - GenJnlLine2.Amount + VATEntry.Amount;

    VATAmountAddCurr :=
    // PT0001.begin
    VATAmountAddCurr - VATEntry."Additional-Currency Base" * (VATEntry."ND %" + VATEntry."VAT %") / 100 +
    VATEntry."Zusätzlicher Währungsbetrag";
    // PT0001.end

    //--C. Memo akzeptiert--
    VATEntry.SETFILTER("Dokumenttyp",'%1|%2',
    VATEntry."Dokumenttyp"::"Gutschrift",
    VATEntry."Document Type"::Payment);
    VATEntry.SETFILTER("UE-Akquisition nicht akzeptiert.",'%1',FALSE);
    VATEntry.CALCSUMS(
    Basis, Betrag,
    „Zusatzwährungsbasis", „Zusatzwährungsbetrag");

    „MwSt.-Buchungs-Setup".TESTFIELD("MwSt.-Rückgabekonto (Verkäufe)");
    CLEAR(GenJnlLine2);
    GenJnlLine2. „Vom System erstellter Eintrag" := TRUE;
    GenJnlLine2."Kontotyp" := GenJnlLine2."Kontotyp"::"Sachkonto";
    GenJnlLine2.Description := GenJnlLine.Description;
    GenJnlLine2."Posting Date" := PostingDate;
    GenJnlLine2."Dokumenttyp" := 0;
    GenJnlLine2."Dokumentnr." := DokNr;
    GenJnlLine2."Source Code" := SourceCodeSetup."VAT Settlement";
    GenJnlLine2."VAT Posting" := GenJnlLine2."VAT Posting"::"Manuelle MwSt.-Eingabe";
    GenJnlLine2."Konto-Nr." := "MwSt.-Buchungs-Setup"."MWST-Konto zurückerstatten (Verkäufe)";
    GenJnlLine2.VALIDATE(

    // Fügen Sie die folgende Zeile hinzu.
    Amount,CalcVATEntryAmount(FALSE,TRUE));

    GenJnlLine2."Quellwährungscode" := GLSetup."Zusätzliche Berichtswährung";
    GenJnlLine2."Quellwährungsbetrag" := VATEntry."Zusätzlicher Währungsbetrag";
    WENN PostSettlement UND (GenJnlLine2.Amount <> 0) DANN
    PostGenJnlLine(GenJnlLine2);

    Mehrwertsteuerbetrag :=

    // Fügen Sie die folgende Zeile hinzu.
    VATAmount - GenJnlLine2.Amount + VATEntry.Amount;

    VATAmountAddCurr :=
    // PT0001.begin
    VATAmountAddCurr - VATEntry."Additional-Currency Base" * (VATEntry."ND %" + VATEntry."VAT %") / 100 +
    VATEntry."Zusätzlicher Währungsbetrag";
    // PT0001.end
    ...
  2. Fügen Sie die lokale Funktion CalcVATEntryAmount im Bericht „Mehrwertsteuerabrechnung berechnen und buchen" (20) hinzu. Gehen Sie dazu folgendermaßen vor:

    1. Fügen Sie einen neuen Parameter in der Funktion CalcVATEntryAmount hinzu und geben Sie den Parameter dann wie folgt an:

      • Var : Nein

      • Name : CallFromInvoice

      • Datentyp : Boolean

    2. Fügen Sie einen neuen Parameter in der Funktion CalcVATEntryAmount hinzu und geben Sie den Parameter dann wie folgt an:

      • Var : Nein

      • Name : CallFromCreditMemo

      • Datentyp : Boolean

    3. Fügen Sie einen Rückgabewert in der Funktion CalcVATEntryAmount hinzu und geben Sie den Rückgabewert dann wie folgt an:

      • Name : VATEntryAmount

      • Rückgabewert : Dezimal

    4. Fügen Sie eine neue lokale Variable in der Funktion CalcVATEntryAmount hinzu und geben Sie die Variable dann wie folgt an:

      • Name : MwSt.-Eintrag1

      • Datentyp : Datensatz

      • Untertyp : MwSt.-Eintrag (254)

    5. Fügen Sie die folgenden Codezeilen hinzu:

       VATEntry1.RESET;
      VATEntry1.COPYFILTERS("VAT Entry");
      VATEntry1.SETFILTER("UE-Akquisition nicht akzeptiert.",'%1',FALSE);
      WENN „Mehrwertsteuer-Buchungs-Setup". „Mehrwertsteuer-Berechnungstyp" <> „Mehrwertsteuer-Buchungs-Setup". „Mehrwertsteuer-Berechnungstyp":: „Umsatzsteuer" DANN BEGINNEN
      WENN CallFromInvoice DANN
      VATEntry1.SETFILTER ("Dokumenttyp", '<>%1 & <> %2',
      VATEntry1."Document Type"::"Credit Memo", VATEntry1."Document Type"::Payment);
      WENN CallFromCreditMemo DANN
      VATEntry1.SETFILTER ("Dokumenttyp", '%1|%2',
      VATEntry1."Document Type"::"Credit Memo", VATEntry1."Document Type"::Payment);
      ENDE;
      IF VATEntry1.FINDSET THEN
      WIEDERHOLEN
      VATEntryAmount := VATEntryAmount + ROUND(VATEntry1.Base * (VATEntry1."VAT %" + VATEntry1."ND %") / 100);
      BIS VATEntry1.NEXT=0;
      EXIT(VATEntryAmount);

Voraussetzungen

Um diesen Hotfix anwenden zu können, muss eines der folgenden Produkte installiert sein:

  • Die portugiesische Version von Microsoft Dynamics NAV 2009 R2

  • Die portugiesische Version von Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Informationen zum Entfernen

Sie können diesen Hotfix nicht entfernen.

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den Microsoft-Produkten handelt, die im Abschnitt „Gilt für" aufgeführt sind.

Hinweis Dies ist ein „FAST PUBLISH"-Artikel, der direkt von der Microsoft-Supportorganisation erstellt wurde. Die hierin enthaltenen Informationen werden unverändert als Reaktion auf neu auftretende Probleme bereitgestellt. Aufgrund der schnellen Bereitstellung können die Materialien Tippfehler enthalten und jederzeit ohne Vorankündigung überarbeitet werden. Weitere Hinweise finden Sie in den Nutzungsbedingungen .

No comments:

Post a Comment