Gilt für
Dynamics NAV 2009

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

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:

  1. Ä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 BEGINAppliedAmt += ABS(Amount[1]);SummarizeBaseAmount(VATEntry,CustVendWarning349."Original Declared Amount",Amount);AppliedAmt -= ABS(Amount[1]);END ELSE BEGINCreditMemoOrgDeclaredAmt += 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 BEGINTextAmount2 := 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;...
  2. Ä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=VARAppliedAmt@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 BEGINAppliedAmt += ABS(NormalAmount);NormalAmount := NormalAmount - CustVendWarning349."Original Declared Amount";AppliedAmt -= ABS(NormalAmount);END ELSE BEGINPurchCreditMemoOrgDeclaredAmt += 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 BEGINTextAmount := 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);        }...
  3. Fügen Sie drei neue Funktionen im Bericht 349-Erklärung erstellen (10710) wie folgt:

    ...LOCAL PROCEDURE GetTotalCreditMemoAmt@1100010() : Decimal;VARCustVendWarning349@1100000 : Record 10732;VATEntry@1100002 : Record 254;TotalAmount@1100001 : ARRAY [3] OF Decimal;BEGINFilterCustVendWarning349(CustVendWarning349,CustVendWarning349.Type::Sale,Customer2."No.");IF CustVendWarning349.FINDSET THEN BEGINREPEATIF Customer2."VAT Registration No." <> '' THEN BEGINVATEntry.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;VARCustVendWarning349@1100000 : Record 10732;VATEntry@1100002 : Record 254;TotalAmount@1100001 : Decimal;BEGINFilterCustVendWarning349(CustVendWarning349,CustVendWarning349.Type::Purchase,Vendor2."No.");IF CustVendWarning349.FINDSET THEN BEGINREPEATIF Vendor2."VAT Registration No." <> '' THEN BEGINTotalAmount += 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]);BEGINWITH CustVendWarning349 DO BEGINSETRANGE(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.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.