Beim Ausführen des Berichts MwSt.-Abrechnung in der spanischen Version von Microsoft Dynamics NAV 2009 Service Pack 1 wird nicht die Bemessungsgrundlage für die Buchung nur MwSt. im Modell 320 berechnet


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

Problembeschreibung


Beim Ausführen des Berichts MwSt.-Abrechnung in der spanischen Version von Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) ist die Bemessungsgrundlage für die Buchung nur MwSt. im Modell 320 nicht berechnet.

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 keinen Datenspeicher Rechte nur Daten zu reparieren.

Ä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:
  1. Ändern Sie den Code in der Funktion CalcLineTotal2C in der MwSt.-Abrechnung Bericht (12) wie folgt:
    Vorhandener code
    ...              IF VATStmtLine2."Amount Type" = VATStmtLine2."Amount Type"::"Amount+Base" THEN BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");

    // Delete the following line.
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");

    END;
    CalculateTotalAmount(VATStmtLine2);
    END;
    ...

    Neuer code
    ...              IF VATStmtLine2."Amount Type" = VATStmtLine2."Amount Type"::"Amount+Base" THEN BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");

    // Add the following lines.
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr))
    ELSE
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    // End of the lines.

    END;
    CalculateTotalAmount(VATStmtLine2);
    END;
    ...

  2. Ändern Sie den Code in der Funktion CalcLineTotal in der MwSt.-Abrechnung Bericht (12) wie folgt:
    Vorhandener Code 1
    ...                  BEGIN
    VATEntry.CALCSUMS(Base,Amount,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    END;
    VATStmtLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Neuer Code 1
    ...                  BEGIN
    VATEntry.CALCSUMS(Base,Amount,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");

    // Add the following lines.
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr));
    Amount := Amount + Base;
    END;
    // End of the lines.

    END;
    VATStmtLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Vorhandener Code 2
    ...                  END;
    VATStmtLine2."Amount Type"::"Amount+Base":
    BEGIN

    // Delete the following lines.
    VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
    IF VATPostSetup.GET(VATEntry."VAT Bus. Posting Group",VATEntry."VAT Prod. Posting Group") THEN BEGIN
    IF VATPostSetup."VAT+EC %" <> 0 THEN BEGIN
    VATAmount := (VATEntry.Amount / VATPostSetup."VAT+EC %") * VATEntry."VAT %";
    VATAmountAC := (VATEntry."Additional-Currency Amount" / VATPostSetup."VAT+EC %")* VATEntry."VAT %";
    END;
    Amount := ConditionalAdd(0,VATAmount,VATAmountAC);
    END;
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base;
    // End of the lines.

    END;

    END;
    ...

    Neuer Code 2
    ...                  END;
    VATStmtLine2."Amount Type"::"Amount+Base":
    BEGIN

    // Add the following lines.
    VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr))
    ELSE
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base;
    // End of the lines.

    END;

    END;
    ...

    Vorhandenen Code 3
    ...                   BEGIN
    VATEntry.CALCSUMS(Base,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    END;
    VATStmtLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Neuer Code 3
    ...                  BEGIN
    VATEntry.CALCSUMS(Base,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");

    // Add the following lines.
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr));
    Amount := Amount + Base;
    END;
    // End of the lines.

    END;
    VATStmtLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Vorhandenen Code 4
    ...                  END;
    VATStmtLine2."Amount Type"::"Amount+Base":
    BEGIN

    // Delete the following lines.
    VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
    IF VATPostSetup.GET(VATEntry."VAT Bus. Posting Group",VATEntry."VAT Prod. Posting Group") THEN BEGIN
    IF VATPostSetup."VAT+EC %" <> 0 THEN BEGIN
    VATAmount := (VATEntry.Amount / VATPostSetup."VAT+EC %") * VATEntry."EC %";
    VATAmountAC := (VATEntry."Additional-Currency Amount" / VATPostSetup."VAT+EC %")* VATEntry."EC %";
    END;
    Amount := ConditionalAdd(0,VATAmount,VATAmountAC);
    END;
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base;
    END;
    // End of the lines.

    END;
    ...

    Neuer Code 4
    ...                  END;
    VATStmtLine2."Amount Type"::"Amount+Base":
    BEGIN

    // Add the following lines.
    VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,FALSE),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",FALSE))
    ELSE
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base;
    END
    // End of the lines.

    END;
    ...

  3. Ändern Sie den Code für die Eigenschaften im Bericht Telematik MwSt.-Erklärung (10715) wie folgt:
    Vorhandener code
    ...                      Header := Text1100000
    ELSE
    Header := Text1100001 + "VAT Declaration Line".GETFILTER("Date Filter");
    END;

    OnPostReport=BEGIN
    ...

    Neuer code
    ...                      Header := Text1100000
    ELSE
    Header := Text1100001 + "VAT Declaration Line".GETFILTER("Date Filter");

    // Add the following lines.
    GLSetup.GET;
    IF PrintAmtInAddCurr THEN
    Currency.GET(GLSetup."Additional Reporting Currency");
    // End of the lines.

    END;

    OnPostReport=BEGIN
    ...

  4. Hinzufügen einer globalen Variablen im Bericht Telematik MwSt.-Erklärung (10715), und geben Sie die Variable wie folgt:
    • Name:Currency
    • DataType:Record
  5. Ändern Sie den Code in der Funktion CalcTotLine der Telematik MwSt.-Bericht (10715) wie folgt:
    Vorhandener Code 1
    ...                  BEGIN
    VATEntry.CALCSUMS(Base,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    END;
    VATStatementLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Neuer Code 1
    ...                  BEGIN
    VATEntry.CALCSUMS(Base,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");

    // Add the following lines.
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr));
    Amount := Amount + Base;
    END;
    // End of the lines.

    END;
    VATStatementLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Vorhandener Code 2
    ...                  BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");

    // Delete the following line.
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");

    END;
    END;
    CalcTotAmount(VATStatementLine2,TotalAmount);
    ...

    Neuer Code 2
    ...                  BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");

    // Add the following lines.
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr))
    ELSE
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base;
    // End of the lines.

    END;
    END;
    CalcTotAmount(VATStatementLine2,TotalAmount);
    ...

    Vorhandenen Code 3
    ...                  BEGIN
    VATEntry.CALCSUMS(Base,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    END;
    VATStatementLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Neuer Code 3
    ...                  BEGIN
    VATEntry.CALCSUMS(Base,"Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");

    // Add the following lines.
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr));
    Amount := Amount + Base;
    END;
    // End of the lines.

    END;
    VATStatementLine2."Amount Type"::"Unrealized Amount":
    BEGIN
    ...

    Vorhandenen Code 4
    ...                  BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");

    // Delete the following line.
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");

    END;
    END;
    CalcTotAmount(VATStatementLine2,TotalAmount);
    ...

    Neuer Code 4
    ...                  BEGIN
    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");

    // Add the following lines.
    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
    Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
    CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr))
    ELSE
    Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    Amount := Amount + Base;
    // End of the lines.

    END;
    END;
    CalcTotAmount(VATStatementLine2,TotalAmount);
    ...

  6. Ändern Sie den Code in der Funktion CalcTotalVATBase der Telematik MwSt.-Bericht (10715) wie folgt:
    Vorhandener code
    ...        OutFile := Text1100006 + "VAT Declaration Line"."Statement Name" + Text1100007
    END;

    BEGIN
    END.
    }
    ...

    Neuer code
    ...        OutFile := Text1100006 + "VAT Declaration Line"."Statement Name" + Text1100007
    END;

    // Add the following lines.
    PROCEDURE CalcTotalVATBase@1100000(VAT@1100000 : Decimal;EC@1100001 : Decimal;VATAmount@1100002 : Decimal;UseAddCurr@1100003 : Boolean) VATBase : Decimal;
    BEGIN
    IF (VAT + EC) = 0 THEN
    EXIT;
    IF UseAddCurr THEN
    EXIT(ROUND(100 * VATAmount / (VAT + EC),Currency."Amount Rounding Precision"))
    ELSE
    EXIT(ROUND(100 * VATAmount / (VAT + EC),GLSetup."Amount Rounding Precision"));
    END;

    // End of the lines.

    BEGIN
    END.
    }
    ...

Hinweis Das Steuerelement befindet sich neben dem letzten Feld des Abschnitts.

Voraussetzungen

Sie müssen die spanische Version von Microsoft Dynamics NAV 2009 Service Pack 1 installiert, um diesen Hotfix anwenden.

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