Problembeschreibung
Periode und Geschäftsjahr entspricht eine Gutschrift mit einer Rechnung und der Betrag der Gutschrift ist höher als der Rechnungsbetrag exportiert die 349 Deklaration den Betrag als positiven Betrag in der spanischen Version von Microsoft Dynamics NAV 2009 deklarieren. Sie sollten stattdessen einen Korrekturbetrag exportiert. Folgen Sie den Schritten im Abschnitt ändert sich dieses Problem lösen. Dieses Problem tritt in den folgenden Produkten auf:
-
Die spanische Version von Microsoft Dynamics NAV 2009 R2
-
Die spanische Version von Microsoft Dynamics NAV 2009 SP1
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-Supporttechniker helfen der Erläuterung der Funktionalität bestimmter Prozeduren. Allerdings werden sie diese Beispiele nicht ändern, um zusätzliche Funktionalität bereitzustellen oder Prozeduren erstellen, die Ihren spezifischen Bedürfnisse erfüllen.
Hinweis Bevor Sie diesen Hotfix installieren, stellen Sie sicher, dass alle Microsoft Dynamics NAV-Clientbenutzer vom System abgemeldet werden. Hierzu gehören Dienste Microsoft Dynamics NAV Application Server (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:
-
Ändern Sie den Code Daten Artikel Nr. 5 in der Stellen 349 angegeben (10710) wie folgt:
Vorhandener Code 1...VATEntry@1100001 : Record 254;
Amount@1100000 : ARRAY [3] OF Decimal;
AccPrevDeclAmount@1100005 : ARRAY [3] OF Decimal;
AccOrigDeclAmount@1100004 : ARRAY [3] OF Decimal;
i@1100002 : Integer;
BEGIN
// es0014.begin
WHILE (Customer."VAT Registration No." = PreVATRegNo) OR (Customer."VAT Registration No." = '') DO // ES0032
IF Customer.NEXT = 0 THEN
EXIT;
...Neuer Code 1
...VATEntry@1100001 : Record 254;
Amount@1100000 : ARRAY [3] OF Decimal;
AccPrevDeclAmount@1100005 : ARRAY [3] OF Decimal;
AccOrigDeclAmount@1100004 : ARRAY [3] OF Decimal;
i@1100002 : Integer;
// Add the following lines.
CreditMemoOrgDeclaredAmt@1100003 : Decimal;
CreditMemoAmt@1100006 : Decimal;
AppliedAmt@1100008 : Decimal;
IsCreditMomoPrinted@1100007 : Boolean;
// End of the added lines.
BEGIN
// es0014.begin
WHILE (Customer."VAT Registration No." = PreVATRegNo) OR (Customer."VAT Registration No." = '') DO // ES0032
IF Customer.NEXT = 0 THEN
EXIT;
...Vorhandener Code 2
...IF CustVendWarning349."EU 3-Party Trade" THEN BEGIN
AmountOpTri := AmountOpTri + CustVendWarning349."Original Declared Amount";
CorrIncludedForOpTriAmount := TRUE;
END ELSE BEGIN
VATEntry.GET(CustVendWarning349."VAT Entry No.");
// Delete the following line.
SummarizeBaseAmount(VATEntry,CustVendWarning349."Original Declared Amount",Amount);
// End of the deleted line.
CorrIncludedForNormalAmount := TRUE;
END;
END;
// es0033.end
END;
...Neuer Code 2
... IF CustVendWarning349."EU 3-Party Trade" THEN BEGIN
AmountOpTri := AmountOpTri + CustVendWarning349."Original Declared Amount";
CorrIncludedForOpTriAmount := TRUE;
END ELSE BEGIN
VATEntry.GET(CustVendWarning349."VAT Entry No.");
// Add the following lines.
IF ABS(Amount[1]) >= GetTotalCreditMemoAmt - AppliedAmt THEN BEGIN
AppliedAmt += ABS(Amount[1]);
SummarizeBaseAmount(VATEntry,CustVendWarning349."Original Declared Amount",Amount);
AppliedAmt -= ABS(Amount[1]);
END ELSE BEGIN
CreditMemoOrgDeclaredAmt += CustVendWarning349."Original Declared Amount";
CreditMemoAmt += VATEntry.Base;
NoOfCorrections += 1;
IsCreditMomoPrinted := TRUE;
END;
// End of the added lines.
CorrIncludedForNormalAmount := TRUE;
END;
END;
// es0033.end
END;
...Vorhandenen Code 3
... 'S' + CONVERTSTR(TextAmount,' ','0') + PADSTR('',354,' ');
NoOperations := NoOperations + 1;
TotalAmtShip := TotalAmtShip + AmountEUService;
OutFile.WRITE(Txt);
END;
// es0033.end
END;
END;
// es0014.end
END;
...Neuer Code 3
... 'S' + CONVERTSTR(TextAmount,' ','0') + PADSTR('',354,' ');
NoOperations := NoOperations + 1;
TotalAmtShip := TotalAmtShip + AmountEUService;
OutFile.WRITE(Txt);
END;
// Add the following lines.
IF IsCreditMomoPrinted THEN BEGIN
TextAmount2 := COPYSTR(FormatTextAmt(ABS(CreditMemoOrgDeclaredAmt)),3,13);
TextAmount := COPYSTR(FormatTextAmt(ABS(CreditMemoAmt)),3,13);
CustVendCountry.GET(Customer2."Country/Region Code");
Txt :=
'2' + '349' + FiscalYear + PADSTR(VatRegNo,9,' ') + PADSTR('',58,' ') +
FORMAT(CustVendCountry."EU Country/Region Code",2) + FORMAT(CustVendVatRegNo,15) +
PADSTR(CONVERTSTR(UPPERCASE(Customer2.Name),'µ·ÔÖÞàãé륚€()"&ï','AAEEIIOOUUÑUÇ '),40,' ') +
'E' + PADSTR('',13,' ') + CustVendWarning349."Original Declaration FY" +
CustVendWarning349."Original Declaration Period" + TextAmount2 + TextAmount +
PADSTR('',322,' ');
NoOperations += 1;
TotalAmtShip += AmountEUService;
OutFile.WRITE(Txt);
END;
// End of the added lines.
// es0033.end
END;
END;
// es0014.end
END;
... -
Ändern Sie den Code in Daten Element Nummer 6 im Bericht 349-Erklärung erstellen (10710) wie folgt:
Vorhandener Code 1... PreVATRegNo := '';
// es0014.end
// es0013.end
END;
// Delete the following line.
OnAfterGetRecord=BEGIN
// End of the deleted line.
// es0014.begin
WHILE (Vendor."VAT Registration No." = PreVATRegNo) OR (Vendor."VAT Registration No." = '') DO // ES0032
IF Vendor.NEXT = 0 THEN
EXIT;
PreVATRegNo := Vendor."VAT Registration No.";
...Neuer Code 1
... PreVATRegNo := '';
// es0014.end
// es0013.end
END;
// Add the following lines.
OnAfterGetRecord=VAR
AppliedAmt@1100000 : Decimal;
PurchCreditMemoOrgDeclaredAmt@1100001 : Decimal;
PurchCreditMemoAmt@1100002 : Integer;
IsPurchCreditMomoPrinted@1100003 : Boolean;
BEGIN
// End of the added lines.
// es0014.begin
WHILE (Vendor."VAT Registration No." = PreVATRegNo) OR (Vendor."VAT Registration No." = '') DO // ES0032
IF Vendor.NEXT = 0 THEN
EXIT;
PreVATRegNo := Vendor."VAT Registration No.";
...Vorhandener Code 2
...END ELSE BEGIN
IF CustVendWarning349."EU 3-Party Trade" THEN BEGIN
AmountOpTri := AmountOpTri - CustVendWarning349."Original Declared Amount";
CorrIncludedForOpTriAmount := TRUE;
END ELSE BEGIN
// Delete the following line.
NormalAmount := NormalAmount - CustVendWarning349."Original Declared Amount";
// End of the deleted line.
CorrIncludedForNormalAmount := TRUE;
END;
END;
// es0033.end
END;
...Neuer Code 2
... END ELSE BEGIN
IF CustVendWarning349."EU 3-Party Trade" THEN BEGIN
AmountOpTri := AmountOpTri - CustVendWarning349."Original Declared Amount";
CorrIncludedForOpTriAmount := TRUE;
END ELSE BEGIN
// Add the following lines.
IF ABS(NormalAmount) >= GetTotalPurchCreditMemoAmt - AppliedAmt THEN BEGIN
AppliedAmt += ABS(NormalAmount);
NormalAmount := NormalAmount - CustVendWarning349."Original Declared Amount";
AppliedAmt -= ABS(NormalAmount);
END ELSE BEGIN
PurchCreditMemoOrgDeclaredAmt += CustVendWarning349."Original Declared Amount";
NoOfCorrections += 1;
IsPurchCreditMomoPrinted := TRUE;
END;
// End of the added lines.
CorrIncludedForNormalAmount := TRUE;
END;
END;
// es0033.end
END;
...Vorhandenen Code 3
... OutFile.WRITE(Txt);
END;
// es0033.end
END;
// es0014.end
END;
GroupTotalFields=VAT Registration No.;
DataItemLink=Country/Region Code=FIELD(Code);
}
...Neuer Code 3
...OutFile.WRITE(Txt);
END;
// es0033.end
END;
// es0014.end
// Add the following lines.
IF IsPurchCreditMomoPrinted THEN BEGIN
TextAmount := COPYSTR(FormatTextAmt(ABS(PurchCreditMemoOrgDeclaredAmt)),3,13);
CustVendCountry.GET(Customer2."Country/Region Code");
Txt :=
'2' + '349' + FiscalYear + PADSTR(VatRegNo,9,' ') + PADSTR('',58,' ') +
FORMAT(CustVendCountry."EU Country/Region Code",2) + FORMAT(CustVendVatRegNo,15) +
PADSTR(CONVERTSTR(UPPERCASE(Vendor2.Name),'µ·ÔÖÞàãé륚€()"&ï','AAEEIIOOUUÑUÇ '),40,' ') +
'E' + PADSTR('',13,' ') + CustVendWarning349."Original Declaration FY" +
CustVendWarning349."Original Declaration Period" + TextAmount +
PADSTR('',322,' ');
NoOperations += 1;
TotalAmtShip += AmountEUService;
OutFile.WRITE(Txt);
END;
// End of the added lines.
END;
GroupTotalFields=VAT Registration No.;
DataItemLink=Country/Region Code=FIELD(Code);
}
... -
Fügen Sie drei neue Funktionen im Bericht 349-Erklärung erstellen (10710) wie folgt:
...LOCAL PROCEDURE GetTotalCreditMemoAmt@1100010() : Decimal;
VAR
CustVendWarning349@1100000 : Record 10732;
VATEntry@1100002 : Record 254;
TotalAmount@1100001 : ARRAY [3] OF Decimal;
BEGIN
FilterCustVendWarning349(CustVendWarning349,CustVendWarning349.Type::Sale,Customer2."No.");
IF CustVendWarning349.FINDSET THEN BEGIN
REPEAT
IF Customer2."VAT Registration No." <> '' THEN BEGIN
VATEntry.GET(CustVendWarning349."VAT Entry No.");
SummarizeBaseAmount(VATEntry,CustVendWarning349."Original Declared Amount",TotalAmount)
END;
UNTIL CustVendWarning349.NEXT = 0;
EXIT(TotalAmount[1]);
END;
END;
LOCAL PROCEDURE GetTotalPurchCreditMemoAmt@1100013() : Decimal;
VAR
CustVendWarning349@1100000 : Record 10732;
VATEntry@1100002 : Record 254;
TotalAmount@1100001 : Decimal;
BEGIN
FilterCustVendWarning349(CustVendWarning349,CustVendWarning349.Type::Purchase,Vendor2."No.");
IF CustVendWarning349.FINDSET THEN BEGIN
REPEAT
IF Vendor2."VAT Registration No." <> '' THEN BEGIN
TotalAmount += ABS(CustVendWarning349."Original Declared Amount");
END;
UNTIL CustVendWarning349.NEXT = 0;
EXIT(TotalAmount);
END;
END;
LOCAL PROCEDURE FilterCustVendWarning349@1100008(VAR CustVendWarning349@1100002 : Record 10732;docType@1100000 : Option;No@1100001 : Code[20]);
BEGIN
WITH CustVendWarning349 DO BEGIN
SETRANGE(Type,docType);
SETRANGE("Customer/Vendor No.",No);
SETRANGE("Posting Date",FromDate,ToDate);
SETRANGE("Include Correction",TRUE);
END;
END;
...
Voraussetzungen
Sie müssen eines der folgenden Produkte verfügen, um diesen Hotfix installieren:
-
Die spanische Version von Microsoft Dynamics NAV 2009 R2
-
Die spanische Version von Microsoft Dynamics NAV 2009 SP1
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.