本文適用于西班牙文語言的 Microsoft Dynamics NAV () 語言地區。

徵兆

假設在西班牙文版的 Microsoft Dynamics NAV 的[加值稅 張貼設定> 對話方塊中選取了歐盟服務核取方塊。 當您產生 349 宣告檔案時,匯出檔案中的金額不正確。
這個問題會發生在下列產品中:

  • 西班牙文版的 Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • 西班牙文版的 Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)


解決方案

Hotfix 資訊

Microsoft 現已提供支援的 Hotfix。 不過,它僅適用于修正本文所述的問題。 請只將此問題適用于遇到此特定問題的系統。 此 Hotfix 可能會收到額外的測試。 因此,如果您並未受到此問題的嚴重影響,建議您等候下一個 Microsoft Dynamics NAV 2009 Service Pack 或下一個包含此 Hotfix 的 Microsoft Dynamics NAV 版本。

注意 在特殊情況下,如果 Microsoft Dynamics 及相關產品的技術支援專業人員決定特定更新能解決您的問題,則通常支援電話的費用可能會取消。 一般來說,如果有所描述之特定更新無法解決的其他支援問題,才會收取支援費用。



安裝資訊

Microsoft 僅提供圖例的程式設計範例,而不提供明示或暗示的擔保。 其中包括但不限於默示的擔保,以擔保商品的可操作性或適合特定用途。 本文假設您熟悉示範的程式設計語言,以及用來建立及進行程式錯錯的工具。 Microsoft 支援工程師可以協助說明特定程式的功能,但他們不會修改這些範例,以提供新增功能或建構符合您特定需求的程式。

注意 安裝此 Hotfix 之前,請確認所有 Microsoft Navision 用戶端使用者都登出系統。 這包括 Microsoft Navision Application Services (NAS) 用戶端使用者。 當您執行此 Hotfix 時,您應該是唯一登入的用戶端使用者。

若要執行此 Hotfix,您必須有開發人員授權。

建議您為 Windows 登入視窗或資料庫登入視窗中的使用者帳戶指派「SUPER」角色識別碼。 如果使用者帳戶無法指派「SUPER」角色識別碼,您必須確認使用者帳戶具有下列許可權:

  • 要變更之物件的修改許可權。

  • 系統物件識別碼 5210 物件和 System 物件識別碼 9015 物件的執行許可權。



注意:除非您必須執行資料修復,否則您不一樣擁有資料存放區的權利。

程式碼變更

注意將修正程式碼一併應用至生產電腦之前,務必先在受控環境中測試程式碼修正。
如果要解決這個問題,請依照下列步驟執行。

  1. 變更資料項目目編號 5 區段的 88 個宣告報表 (代碼) :現有
    程式碼 1

                                  BEGIN
    REPEAT

    //Delete the following line.
    VATInvSales.RESET;

    VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);
    VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    取代代碼 1

                                  BEGIN
    REPEAT

    //Add the follwing lines.
    LastTransactionNo := 0;
    VATInvSales.RESET;
    VATInvSales.SETCURRENTKEY("Transaction No.");
    //End of the lines.

    VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);
    VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    現有程式碼 2

                                              IF "VAT Registration No." <> '' THEN BEGIN
    IF AmountToIncludein349 <> 0 THEN BEGIN

    //Delete the following lines.
    OpTriang := 'X';
    AmountOpTri := AmountOpTri + AmountToIncludein349
    //End of the lines.

    END ELSE BEGIN
    OpTriang := 'X';

    取代代碼 2

                                              IF "VAT Registration No." <> '' THEN BEGIN
    IF AmountToIncludein349 <> 0 THEN BEGIN

    //Add the following lines.
    IF VATInvSales."Transaction No." <> LastTransactionNo THEN BEGIN
    OpTriang := 'X';
    AmountOpTri := AmountOpTri + AmountToIncludein349;
    END;
    //End of the lines.

    END ELSE BEGIN
    OpTriang := 'X';

    現有程式碼 3

                                          // OpTriang := 'X';
    // AmountOpTri := AmountOpTri + VATInvSales.Base;
    UNTIL VATInvSales.NEXT = 0;
    END;

    取代代碼 3

                                          // OpTriang := 'X';
    // AmountOpTri := AmountOpTri + VATInvSales.Base;

    //Add the following line.
    LastTransactionNo := VATInvSales."Transaction No.";

    UNTIL VATInvSales.NEXT = 0;
    END;

    現有程式碼 4

                                        UNTIL VATInvSales.NEXT = 0;
    END;

    //Delete the following line.
    VATInvSales.RESET;

    VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);
    VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    取代代碼 4

                                        UNTIL VATInvSales.NEXT = 0;
    END;

    //Add the following lines.
    LastTransactionNo := 0;
    VATInvSales.RESET;
    VATInvSales.SETCURRENTKEY("Transaction No.");
    //End of the lines.

    VATInvSales.SETRANGE(VATInvSales.Type,VATInvSales.Type::Sale);
    VATInvSales.SETRANGE(VATInvSales."Document Type",VATInvSales."Document Type"::Invoice);

    現有程式碼 5

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Delete the following lines.
    IF AmountToIncludein349 <> 0 THEN
    NormalAmount := NormalAmount + AmountToIncludein349
    ELSE
    //End of the lines.

    NormalAmount := NormalAmount + VATInvSales.Base;
    END ELSE

    取代代碼 5

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Add the following lines.
    IF AmountToIncludein349 <> 0 THEN BEGIN
    IF VATInvSales."Transaction No." <> LastTransactionNo THEN
    NormalAmount := NormalAmount + AmountToIncludein349;
    END ELSE
    //End of the lines.

    NormalAmount := NormalAmount + VATInvSales.Base;
    END ELSE

    現有程式碼 6

                                          END;
    // NormalAmount := NormalAmount + VATInvSales.Base;
    UNTIL VATInvSales.NEXT = 0;
    END;

    取代代碼 6

                                          END;
    // NormalAmount := NormalAmount + VATInvSales.Base;

    //Add the following line.
    LastTransactionNo := VATInvSales."Transaction No.";

    UNTIL VATInvSales.NEXT = 0;
    END;

    現有程式碼 7

                                      END;

    //Delete the following line.
    VATInvSales.RESET;

    VATInvSales.SETRANGE(Type,VATInvSales.Type::Sale);
    VATInvSales.SETRANGE("Document Type",VATInvSales."Document Type"::Invoice);

    取代碼 7

                                      END;

    //Add the following lines.
    LastTransactionNo := 0;
    VATInvSales.RESET;
    VATInvSales.SETCURRENTKEY("Transaction No.");
    //End of the lines.

    VATInvSales.SETRANGE(Type,VATInvSales.Type::Sale);
    VATInvSales.SETRANGE("Document Type",VATInvSales."Document Type"::Invoice);

    現有程式碼 8

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Delete the following lines.
    IF AmountToIncludein349 <> 0 THEN
    AmountEUService := AmountEUService + AmountToIncludein349
    ELSE
    //End of the lines.

    AmountEUService := AmountEUService + VATInvSales.Base;
    END ELSE

    取代碼 8

                                              ((VATInvSales."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Add the following lines.
    IF AmountToIncludein349 <> 0 THEN BEGIN
    IF VATInvSales."Transaction No." <> LastTransactionNo THEN
    AmountEUService := AmountEUService + AmountToIncludein349;
    END ELSE
    //End of the lines.

    AmountEUService := AmountEUService + VATInvSales.Base;
    END ELSE

    現有程式碼 9

                                            END;
    END;
    UNTIL VATInvSales.NEXT = 0;

    取代碼 9

                                            END;
    END;

    //Add the following line.
    LastTransactionNo := VATInvSales."Transaction No.";

    UNTIL VATInvSales.NEXT = 0;
  2. 變更 88 年 88 月 88 日宣告報告中資料項目目編號 6 區段 (中的) 程式碼:現有
    程式碼 1

                                  BEGIN
    REPEAT

    //Delete the following line.
    VATInvPurch.RESET;

    VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);
    VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    取代代碼 1

                                  BEGIN
    REPEAT

    //Add the following lines.
    LastTransactionNo := 0;
    VATInvPurch.RESET;
    VATInvPurch.SETCURRENTKEY("Transaction No.");
    //End of the lines.

    VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);
    VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    現有程式碼 2

                                              IF "VAT Registration No." <> '' THEN BEGIN
    IF AmountToIncludein349 <> 0 THEN BEGIN

    //Delete the following lines.
    OpTriang := 'X';
    AmountOpTri := AmountOpTri + AmountToIncludein349;
    //End of the lines.

    END ELSE BEGIN
    OpTriang := 'X';

    取代代碼 2

                                              IF "VAT Registration No." <> '' THEN BEGIN
    IF AmountToIncludein349 <> 0 THEN BEGIN

    //Add the following lines.
    IF VATInvPurch."Transaction No." <> LastTransactionNo THEN BEGIN
    OpTriang := 'X';
    AmountOpTri := AmountOpTri + AmountToIncludein349;
    END;
    //End of the lines.

    END ELSE BEGIN
    OpTriang := 'X';

    現有程式碼 3

                                          // OpTriang := 'X';
    // AmountOpTri := AmountOpTri + VATInvPurch.Base;
    UNTIL VATInvPurch.NEXT = 0;
    END;

    取代代碼 3

                                          // OpTriang := 'X';
    // AmountOpTri := AmountOpTri + VATInvPurch.Base;

    //Add the following line.
    LastTransactionNo := VATInvPurch."Transaction No.";

    UNTIL VATInvPurch.NEXT = 0;
    END;

    現有程式碼 4

                                        UNTIL VATInvPurch.NEXT = 0;
    END;

    //Delete the following line.
    VATInvPurch.RESET;

    VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);
    VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    取代代碼 4

                                        UNTIL VATInvPurch.NEXT = 0;
    END;

    //Add the following lines.
    LastTransactionNo := 0;
    VATInvPurch.RESET;
    VATInvPurch.SETCURRENTKEY("Transaction No.");
    //End of the lines.

    VATInvPurch.SETRANGE(VATInvPurch.Type,VATInvPurch.Type::Purchase);
    VATInvPurch.SETRANGE(VATInvPurch."Document Type",VATInvPurch."Document Type"::Invoice);

    現有程式碼 5

                                              ((VATInvPurch."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Delete the following lines.
    IF AmountToIncludein349 <> 0 THEN
    NormalAmount := NormalAmount + AmountToIncludein349
    ELSE
    //End of the lines.

    NormalAmount := NormalAmount + VATInvPurch.Base;
    END ELSE

    取代代碼 5

                                              ((VATInvPurch."Country/Region Code" = CountryCode) AND LocationDiffCountryCode) THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Add the following lines.
    IF AmountToIncludein349 <> 0 THEN BEGIN
    IF VATInvPurch."Transaction No." <> LastTransactionNo THEN
    NormalAmount := NormalAmount + AmountToIncludein349;
    END ELSE
    //End of the lines.

    NormalAmount := NormalAmount + VATInvPurch.Base;
    END ELSE

    現有程式碼 6

                                          END;
    // NormalAmount := NormalAmount + VATInvPurch.Base;
    UNTIL VATInvPurch.NEXT = 0;
    END;

    取代代碼 6

                                          END;
    // NormalAmount := NormalAmount + VATInvPurch.Base;

    //Add the following line.
    LastTransactionNo := VATInvPurch."Transaction No.";

    UNTIL VATInvPurch.NEXT = 0;
    END;

    現有程式碼 7

                                        UNTIL VATInvPurch.NEXT = 0;
    END;

    //Delete the following line.
    VATInvPurch.RESET;

    VATInvPurch.SETRANGE(Type,VATInvPurch.Type::Purchase);
    VATInvPurch.SETRANGE("Document Type",VATInvPurch."Document Type"::Invoice);

    取代碼 7

                                        UNTIL VATInvPurch.NEXT = 0;
    END;

    //Add the following lines.
    LastTransactionNo := 0;
    VATInvPurch.RESET;
    VATInvPurch.SETCURRENTKEY("Transaction No.");
    //End of the lines.

    VATInvPurch.SETRANGE(Type,VATInvPurch.Type::Purchase);
    VATInvPurch.SETRANGE("Document Type",VATInvPurch."Document Type"::Invoice);

    現有程式碼 8

                                            THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Delete the following lines.
    IF AmountToIncludein349 <> 0 THEN
    AmountEUService := AmountEUService + AmountToIncludein349
    ELSE
    //End of the lines.

    AmountEUService := AmountEUService + VATInvPurch.Base;
    END ELSE

    取代碼 8

                                            THEN BEGIN
    IF "VAT Registration No." <> '' THEN BEGIN

    //Add the following lines.
    IF AmountToIncludein349 <> 0 THEN BEGIN
    IF VATInvPurch."Transaction No." <> LastTransactionNo THEN
    AmountEUService := AmountEUService + AmountToIncludein349;
    END ELSE
    //End of the lines.

    AmountEUService := AmountEUService + VATInvPurch.Base;
    END ELSE

    現有程式碼 9

                                            END;
    END;
    UNTIL VATInvPurch.NEXT = 0;

    取代碼 9

                                            END;
    END;

    //Add the following line.
    LastTransactionNo := VATInvPurch."Transaction No.";

    UNTIL VATInvPurch.NEXT = 0;
  3. 在 88 (的 Make 349 宣告報告中) 新的全域變數,然後指定變數如下:

    • 名稱:LastTransactionNo@1100072

    • DataTypeInteger

先決條件

您必須安裝下列其中一項產品,以適用此 Hotfix:

  • 西班牙文版的 Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

  • 西班牙文版的 Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1)

您必須安裝西班牙文 349 報告,以適用此 Hotfix。
若要瞭解詳細資訊,請流覽下列 Microsoft 網站:
西班牙文 349報告。此外,您必須安裝 加值稅 2010 套件,以套用
此 Hotfix。
詳細資訊,請流覽下列 Microsoft 網站
:Microsoft Dynamics NAV 支援 加值稅 2010

移除資訊

您無法移除此 Hotfix。

狀態

Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。

注意:這是直接從 Microsoft 支援組織內所建立「快速發佈」一文。 本文包含的資訊是因應新問題而提供的。 由於資料提供的速度加快,因此可能包含印刷錯誤,且可能隨時修訂,而無須另行通知。 請參閱 使用條款以 瞭解其他考慮。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×