如果你有多個客戶或供應商在西班牙版 Microsoft Dynamics NAV 中擁有相同的增值稅 (增值稅) 註冊號碼,347 檔案是錯誤的

套用到
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

本文適用於Microsoft Dynamics 的西班牙語 (es) 語言區域的導航。

症狀

假設你有多個客戶或供應商在西班牙版的 Microsoft Dynamics NAV 中擁有相同的增值稅 (增值稅) 註冊號碼。 如果第一個客戶或供應商沒有分錄,而第二位客戶或供應商有分錄,系統就不會考慮第二個客戶或供應商的分錄。 因此,建立的 347 檔案是錯誤的。 此問題發生於以下產品:

  • Microsoft Dynamics NAV 2009 R2 的西班牙語版本
  • Microsoft Dynamics NAV 2009 服務包 1 的西班牙語版本
  • Microsoft Dynamics NAV 5.0 Service Pack 1 的西班牙語版本

解決方式

Hotfix 資訊

Microsoft 現在已經支援熱修補程式。 然而,這僅是為了修正本文所描述的問題。 只應用在遇到這個特定問題的系統上。 此熱修補可能會進行額外測試。 因此,如果您未受到此問題嚴重影響,我們建議您等待下一個 Microsoft Dynamics NAV 2009 服務包或包含此熱修補的 Microsoft Dynamics NAV 版本。

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

            
          

安裝資訊

Microsoft 僅提供圖例的程式設計範例,不含明示或暗示的擔保。 這包括 (但不限於) 適用于特定目的之可操作性或適用性的暗示擔保。 本文假設您熟悉正在示範的程式設計語言,以及用來建立和進行程式偵錯工具的工具。 Microsoft 技術支援工程師可以協助說明特定程序的功能,但不會修改這些範例以提供附加功能或建構程序來滿足您的特定需求。

注意:安裝此熱修補程式前,請確認所有 Microsoft Navision 用戶端使用者都已登出系統。 這包括Microsoft Navision 應用服務 (NAS) 用戶端使用者。 當你實施這個熱修補時,應該只有你一個登入的客戶端使用者。

要實作這個熱修補,你必須擁有開發者授權。

我們建議在 Windows 登入視窗或資料庫登入視窗中,將使用者帳號分配「SUPER」角色 ID。 若使用者帳號無法被指派「SUPER」角色 ID,您必須驗證該帳號擁有以下權限:

  • 你要更改的物件的修改權限。
  • 系統物件 ID 5210 的執行權限,以及系統物件 ID 9015 的執行權限。

                
注意:除非你必須進行資料修復,否則你不必擁有資料儲存的權利。

法規變更

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

  1. 將 Make 347 聲明報告中資料項目第 6 號 (10707) 更改為以下代碼:
    現有程式碼

    ...
    IF Vendor."VAT Registration No." <> '' THEN BEGIN
    TotalNotIn347Amt := TotalNotIn347Amt + NotIn347Amt + AmtSameVATRegNo;
    
    // Delete the following line.
    PurchasesAmt := PurchasesAmt - NotIn347Amt;
    // End of the line.
    
    IF PurchasesAmt >= MinAmount THEN BEGIN
    IF PostCode347 = ' ' THEN
    ERROR(Text1100009,Vendor."No.");
    ...
    
    

    替換代碼

    ...
    IF Vendor."VAT Registration No." <> '' THEN BEGIN
    TotalNotIn347Amt := TotalNotIn347Amt + NotIn347Amt + AmtSameVATRegNo;
    
    // Add the following line.
    PurchasesAmt := PurchasesAmt - NotIn347Amt + AmtSameVATRegNo; // ES0001
    // End of the line.
    
    IF PurchasesAmt >= MinAmount THEN BEGIN
    IF PostCode347 = ' ' THEN
    ERROR(Text1100009,Vendor."No.");
    ...
    
    
  2. 將 Make 347 宣告報告中 CheckSameVATRegNo 函式中的程式碼 (10707) 更改如下:
    現行法規1

    ...
    VATEntry3@1100000 : Record 254;
    BEGIN
    VATEntry3.SETCURRENTKEY(Type,"Country/Region Code","VAT Registration No.");
    
    // Delete the following line.
    VATEntry3.SETRANGE(Type,VATEntry3.Type::Sale);
    // End of the line.
    
    VATEntry3.SETRANGE("Country/Region Code",CountryCode);
    IF IsCustomer THEN BEGIN
    ...
    
    

    替換代碼1

    ...
    VATEntry3@1100000 : Record 254;
    BEGIN
    VATEntry3.SETCURRENTKEY(Type,"Country/Region Code","VAT Registration No.");
    VATEntry3.SETRANGE("Country/Region Code",CountryCode);
    IF IsCustomer THEN BEGIN
    ...
    
    

    現有的第二號法規

    ...
    VATEntry3.SETRANGE("Country/Region Code",CountryCode);
    IF IsCustomer THEN BEGIN
    VATEntry3.SETRANGE("VAT Registration No.",Customer."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Customer."No.");
    END ELSE BEGIN
    ...
    
    

    替換代碼2

    ...
    VATEntry3.SETRANGE("Country/Region Code",CountryCode);
    IF IsCustomer THEN BEGIN
    
    // Add the following line.
    VATEntry3.SETRANGE(Type,VATEntry3.Type::Sale); // ES0001
    // End of the line.
    
    VATEntry3.SETRANGE("VAT Registration No.",Customer."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Customer."No.");
    END ELSE BEGIN
    ...
    
    

    現行法規3

    ...
    VATEntry3.SETRANGE("VAT Registration No.",Customer."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Customer."No.");
    END ELSE BEGIN
    VATEntry3.SETRANGE("VAT Registration No.",Vendor."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Vendor."No.");
    END;
    ...
    
    

    替代代碼3

    ...
    VATEntry3.SETRANGE("VAT Registration No.",Customer."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Customer."No.");
    END ELSE BEGIN
    
    // Add the following line.
    VATEntry3.SETRANGE(Type,VATEntry3.Type::Purchase); // ES0001
    // End of the line.
    
    VATEntry3.SETRANGE("VAT Registration No.",Vendor."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Vendor."No.");
    END;
    ...
    
    

    現行代碼4

    ...
    VATEntry3.SETRANGE("VAT Registration No.",Vendor."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Vendor."No.");
    END;
    
    // Delete the following line.
    VATEntry3.SETRANGE("Posting Date",FromDate,ToDate);
    // End of the line.
    
    IF VATEntry3.FINDFIRST THEN
    REPEAT
    ...
    
    

    替換代碼4

    ...
    VATEntry3.SETRANGE("VAT Registration No.",Vendor."VAT Registration No.");
    VATEntry3.SETFILTER("Bill-to/Pay-to No.",'<>%1',Vendor."No.");
    END;
    
    // Add the following line.
    VATEntry3.SETRANGE("Document Date",FromDate,ToDate); // ES0001
    // End of the line.
    
    IF VATEntry3.FINDFIRST THEN
    REPEAT
    ...
    
    

    現行代碼5

    ...
    IF VATEntry3.FINDFIRST THEN
    REPEAT
    
    // Delete the following line.
    Amt := ABS(Amt + VATEntry3.Base + VATEntry3.Amount);
    // End of the line.
    
    UNTIL VATEntry3.NEXT = 0;
    EXIT(Amt);
    END;
    ...
    
    

    替換代碼5

    ...
    IF VATEntry3.FINDFIRST THEN
    REPEAT
    
    // Add the following lines.
    // ES0001.begin
    IF IsCustomer THEN
    Amt := Amt - VATEntry3.Base - VATEntry3.Amount
    ELSE
    Amt := Amt + VATEntry3.Base + VATEntry3.Amount;
    // ES0001.end
    // End of the lines.
    
    UNTIL VATEntry3.NEXT = 0;
    EXIT(Amt);
    END;
    ...
    
    

先決條件

您必須安裝以下其中一項產品才能套用此熱修補:

  • Microsoft Dynamics NAV 2009 R2 的西班牙語版本
  • Microsoft Dynamics NAV 2009 服務包 1 的西班牙語版本
  • Microsoft Dynamics NAV 5.0 Service Pack 1 的西班牙語版本

移除資訊

你無法移除這個熱修正。

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

注意本文為 Microsoft 支援單位內部直接建立的「快速發佈」文章。 此處包含的資訊是以其現況提供,用於回應新產生的問題。 由於快速發佈,資料可能包含拼字錯誤,並可能會隨時修訂,不另行通知。 請參閱使用條款以瞭解其他相關考量。