意外地就可以張貼增值稅資料表內增值稅結算並關閉在挪威文版本的 Microsoft 動態航行點 2009


本文適用於 Microsoft 動態航行點挪威文 (否) 語言地區設定。

狀況


您可以在增值稅期間內,結算且未預期地關閉挪威文版本的 Microsoft 動態航行點 2009年張貼 value-added 稅金 (增值稅) 資料表。
下列產品中,就會發生這個問題︰
  • 挪威文版本的 Microsoft 動態航行點 2009 R2
  • Microsoft 動態航行點 2009 Service Pack 1 (SP1) 的挪威文版本

解決方案


Hotfix 資訊

已經可以從 Microsoft 取得支援的 hotfix。不過,它只被用來修正本文所述的問題。它只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題不會嚴重影響,我們建議您等候下一步的 Microsoft 動態航行點 service pack 或包含此 hotfix 的下一個 Microsoft 動態航行點版本。

注意 在特殊的情況下,通常會支援呼叫可能已被取消如果技術支援專業人員的 Microsoft 動態及相關的產品所產生的費用會決定某特定更新程式可以解決您的問題。收取支援費用會套用,如果有其他支援問題是,不能限定的特定更新程式。


安裝資訊

Microsoft 會提供程式設計範例僅供說明,而不做任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已相當熟悉使用的我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序中,功能,但它們不會修改這些範例以提供附加功能或建構程序來滿足您特定需求。

注意套用此 hotfix 之前,請確認所有的 Microsoft Navision 用戶端使用者會登出系統。這包括 Microsoft Navision 應用程式服務 (NAS) 用戶端的使用者。您應該是唯一的用戶端使用者已登入,當您實作此 hotfix。

若要實作此 hotfix,您必須有開發人員授權。

我們建議您在 Windows 登入] 視窗中的色彩,或資料庫登入] 視窗中的使用者帳戶被指派 「 進階 」 的角色識別碼。如果使用者帳戶不能指派為 「 超級 」 的角色識別碼,您必須確認使用者帳戶具有下列權限︰
  • 您將會變更物件的 [修改] 權限。
  • 執行權限的系統物件 ID 5210物件和系統物件 ID 9015物件。


注意您沒有擁有資料存放區的權限,除非您需要執行資料修復。

程式碼變更

注意永遠測試程式碼修正在受控制的環境中才能套用到實際執行電腦的修正程式。
若要解決這個問題,請依照下列步驟執行:
  1. 變更使用者設定表格 (91) 中的欄位中的程式碼如下所示︰
    現有的程式碼
    ...CaptionML=ENU=Purchase Resp. Ctr. Filter }
    { 5900; ;Service Resp. Ctr. Filter;Code10 ;TableRelation="Responsibility Center";
    CaptionML=ENU=Service Resp. Ctr. Filter }

    // Delete the following line.
    }

    KEYS
    {
    { ;User ID ;Clustered=Yes }
    ...
    取代程式碼
    ...CaptionML=ENU=Purchase Resp. Ctr. Filter }
    { 5900; ;Service Resp. Ctr. Filter;Code10 ;TableRelation="Responsibility Center";
    CaptionML=ENU=Service Resp. Ctr. Filter }

    // Add the following lines.
    { 10600; ;Application always Allowed;Boolean }
    }
    // End of the lines.

    KEYS
    {
    { ;User ID ;Clustered=Yes }
    ...
  2. 變更一般總帳安裝表格 (98) 中的欄位中的程式碼如下所示︰
    現有的程式碼
    ...END;

    CaptionML=ENU=Prepayment Unrealized VAT }
    { 10601; ;Non-Taxable ;Boolean ;CaptionML=ENU=Non-Taxable }
    }
    KEYS
    ...
    取代程式碼
    ...END;

    CaptionML=ENU=Prepayment Unrealized VAT }

    // Add the following line.
    { 10600; ;Application always Allowed;Boolean }

    { 10601; ;Non-Taxable ;Boolean ;CaptionML=ENU=Non-Taxable }
    }
    KEYS
  3. 變更一般總帳安裝表單 (118) 中的控制項中的程式碼如下所示︰
    現有的程式碼 1
    ...}
    CONTROLS
    {
    // Delete the following line.
    { 1 ;TabControl ;220 ;220 ;12980;7150 ;HorzGlue=Both;

    VertGlue=Both;
    PageNamesML=ENU=General,Numbering,Dimensions,Reporting,Application }
    { 6 ;TextBox ;3850 ;990 ;1650 ;440 ;ParentControl=1;
    ...
    取代程式碼 1
    ...}
    CONTROLS
    {

    // Add the following line.
    { 1 ;TabControl ;220 ;220 ;12980;7700 ;HorzGlue=Both;

    VertGlue=Both;
    PageNamesML=ENU=General,Numbering,Dimensions,Reporting,Application }
    { 6 ;TextBox ;3850 ;990 ;1650 ;440 ;ParentControl=1;
    ...
    現有的程式碼 2
    ...ShowCaption=No;
    SourceExpr="Check G/L Account Usage" }
    { 69 ;Label ;440 ;5720 ;3300 ;440 ;ParentControl=60 }
    { 1080002;CheckBox ;10230;5610 ;440 ;440 ;ParentControl=1;
    InPage=0;
    ShowCaption=No;
    ...
    取代程式碼 2
    ...ShowCaption=No;
    SourceExpr="Check G/L Account Usage" }
    { 69 ;Label ;440 ;5720 ;3300 ;440 ;ParentControl=60 }

    // Add the following lines.
    { 1080000;CheckBox ;10230;6160 ;440 ;440 ;ParentControl=1;
    InPage=0;
    ShowCaption=No;
    SourceExpr="Application always Allowed" }
    { 1080001;Label ;6820 ;6160 ;3300 ;440 ;ParentControl=1080000;
    InPage=0 }
    // End of the lines.

    { 1080002;CheckBox ;10230;5610 ;440 ;440 ;ParentControl=1;
    InPage=0;
    ShowCaption=No;
    ...
    現有的程式碼 3
    ...SourceExpr="Non-Taxable" }
    { 1080003;Label ;6820 ;5610 ;3300 ;440 ;ParentControl=1080002;
    InPage=0 }

    // Delete the following line.
    { 82 ;TextBox ;10230;6160 ;2750 ;440 ;ParentControl=1;

    InPage=0;
    SourceExpr="Bill-to/Sell-to VAT Calc." }
    ...
    取代程式碼 3
    ...SourceExpr="Non-Taxable" }
    { 1080003;Label ;6820 ;5610 ;3300 ;440 ;ParentControl=1080002;
    InPage=0 }

    // Add the following line.
    { 82 ;TextBox ;10230;6710 ;2750 ;440 ;ParentControl=1;

    InPage=0;
    SourceExpr="Bill-to/Sell-to VAT Calc." }
    ...
    現有的程式碼 4
    ...InPage=0;
    SourceExpr="Bill-to/Sell-to VAT Calc." }

    // Delete the following lines.
    { 83 ;Label ;6820 ;6160 ;3300 ;440 ;ParentControl=82 }
    { 84 ;CheckBox ;10230;6710 ;440 ;440 ;ParentControl=1;
    // End of the lines.

    InPage=0;
    ShowCaption=No;
    SourceExpr="Print VAT specification in LCY" }
    ...
    取代程式碼 4
    ...InPage=0;
    SourceExpr="Bill-to/Sell-to VAT Calc." }

    // Add the following lines.
    { 83 ;Label ;6820 ;6710 ;3300 ;440 ;ParentControl=82 }
    { 84 ;CheckBox ;10230;7260 ;440 ;440 ;ParentControl=1;
    // End of the lines.

    InPage=0;
    ShowCaption=No;
    SourceExpr="Print VAT specification in LCY" }
    ...
    現有的程式碼 5
    ...InPage=0;
    ShowCaption=No;
    SourceExpr="Print VAT specification in LCY" }

    // Delete the following line.
    { 85 ;Label ;6820 ;6710 ;3300 ;440 ;ParentControl=84 }

    { 86 ;CheckBox ;10230;3960 ;440 ;440 ;ParentControl=1;
    InPage=0;
    ShowCaption=No;
    ...
    取代程式碼 5
    ...InPage=0;
    ShowCaption=No;
    SourceExpr="Print VAT specification in LCY" }

    // Add the following line.
    { 85 ;Label ;6820 ;7260 ;3300 ;440 ;ParentControl=84 }

    { 86 ;CheckBox ;10230;3960 ;440 ;440 ;ParentControl=1;
    InPage=0;
    ShowCaption=No;
    ...
    現有的程式碼 6
    ...ShowCaption=No;
    SourceExpr="Payment Tolerance Warning" }
    { 81 ;Label ;440 ;3300 ;3300 ;440 ;ParentControl=80 }

    // Delete the following line.
    { 52 ;CommandButton;3740 ;7590 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    Default=Yes;
    PushAction=LookupOK;
    ...
    取代程式碼 6
    ...ShowCaption=No;
    SourceExpr="Payment Tolerance Warning" }
    { 81 ;Label ;440 ;3300 ;3300 ;440 ;ParentControl=80 }

    // Add the following line.
    { 52 ;CommandButton;3740 ;8250 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    Default=Yes;
    PushAction=LookupOK;
    ...
    現有的程式碼 7
    ...Default=Yes;
    PushAction=LookupOK;
    InvalidActionAppearance=Hide }

    // Delete the following line.
    { 53 ;CommandButton;6160 ;7590 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    Cancel=Yes;
    PushAction=LookupCancel;
    ...
    取代程式碼 7
    ...Default=Yes;
    PushAction=LookupOK;
    InvalidActionAppearance=Hide }

    // Add the following line.
    { 53 ;CommandButton;6160 ;8250 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    Cancel=Yes;
    PushAction=LookupCancel;
    ...
    現有的程式碼 8
    ...Cancel=Yes;
    PushAction=LookupCancel;
    InvalidActionAppearance=Hide }

    // Delete the following line.
    { 54 ;CommandButton;11000;7590 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    PushAction=FormHelp }
    ...
    取代程式碼 8
    ...Cancel=Yes;
    PushAction=LookupCancel;
    InvalidActionAppearance=Hide }

    // Add the following line.
    { 54 ;CommandButton;11000;8250 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    PushAction=FormHelp }
    ...
    現有的程式碼 9
    ...VertGlue=Bottom;
    PushAction=FormHelp }

    // Delete the following line.
    { 42 ;MenuButton ;8580 ;7590 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    CaptionML=ENU=F&unctions;
    Menu=MENUITEMS
    ...
    取代程式碼 9
    ...VertGlue=Bottom;
    PushAction=FormHelp }

    // Add the following line.
    { 42 ;MenuButton ;8580 ;8250 ;2200 ;550 ;HorzGlue=Right;

    VertGlue=Bottom;
    CaptionML=ENU=F&unctions;
    Menu=MENUITEMS
    ...
  4. 變更使用者設定表單 (119) 中的控制項中的程式碼如下所示︰
    現有的程式碼 1
    ...SourceExpr="User ID" }
    { 3 ;Label ;0 ;0 ;0 ;0 ;ParentControl=2;
    InColumnHeading=Yes }

    // Delete the following line.
    { 4 ;TextBox ;0 ;0 ;3011 ;0 ;ParentControl=1;

    InColumn=Yes;
    SourceExpr="Allow Posting From" }
    { 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
    ...
    取代程式碼 1
    ...SourceExpr="User ID" }
    { 3 ;Label ;0 ;0 ;0 ;0 ;ParentControl=2;
    InColumnHeading=Yes }

    // Add the following line.
    { 4 ;TextBox ;0 ;0 ;1650 ;0 ;ParentControl=1;

    InColumn=Yes;
    SourceExpr="Allow Posting From" }
    { 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
    ...
    現有的程式碼 2
    ...SourceExpr="Allow Posting From" }
    { 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
    InColumnHeading=Yes }

    // Delete the following line.
    { 6 ;TextBox ;0 ;0 ;3300 ;0 ;ParentControl=1;

    InColumn=Yes;
    SourceExpr="Allow Posting To" }
    { 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
    ...
    取代程式碼 2
    ...SourceExpr="Allow Posting From" }
    { 5 ;Label ;0 ;0 ;0 ;0 ;ParentControl=4;
    InColumnHeading=Yes }

    // Add the following line.
    { 6 ;TextBox ;0 ;0 ;1650 ;0 ;ParentControl=1;

    InColumn=Yes;
    SourceExpr="Allow Posting To" }
    { 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
    ...
    現有的程式碼 3
    ...SourceExpr="Allow Posting To" }
    { 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
    InColumnHeading=Yes }
    { 8 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
    InColumn=Yes;
    SourceExpr="Register Time" }
    ...
    取代程式碼 3
    SourceExpr="Allow Posting To" }{ 7 ;Label ;0 ;0 ;0 ;0 ;ParentControl=6;
    InColumnHeading=Yes }

    // Add the following lines.
    { 1080000;CheckBox ;4286 ;550 ;1650 ;440 ;ParentControl=1;
    InColumn=Yes;
    ShowCaption=No;
    SourceExpr="Application always Allowed" }
    { 1080001;Label ;6160 ;330 ;3300 ;440 ;ParentControl=1080000;
    InColumnHeading=Yes }
    // End of the lines.

    { 8 ;CheckBox ;0 ;0 ;1650 ;0 ;ParentControl=1;
    InColumn=Yes;
    SourceExpr="Register Time" }
    ...
  5. 新增全域變數在 Gen.Jnl。-檢查行 codeunit (11),然後指定變數,如下所示︰
    • 名稱AllowPostingInClosedVATPeriod
    • 資料類型布林
  6. 變更程式碼中的RunCheck函式在 Gen.Jnl。-檢查行 codeunit (11),如下所示︰
    現有的程式碼
    ...IF DateNotAllowed("Posting Date") THEN
    FIELDERROR("Posting Date",Text001);

    // Delete the following line.
    VATTools.RunCheckNorwegianVAT(GenJnlLine);

    IF ("Document Date" <> 0D) THEN
    IF ("Document Date" <> NORMALDATE("Document Date")) AND
    ...
    取代程式碼
    ...IF DateNotAllowed("Posting Date") THEN
    FIELDERROR("Posting Date",Text001);

    // Add the following line.
    VATTools.RunCheckNorwegianVAT(GenJnlLine,AllowPostingInClosedVATPeriod);

    IF ("Document Date" <> 0D) THEN
    IF ("Document Date" <> NORMALDATE("Document Date")) AND
    ...
  7. 變更程式碼中的CheckPostingPeriod函式在 Gen.Jnl。-檢查行 codeunit (11),如下所示︰
    現有的程式碼
    ...OverrideDimErr := TRUE;
    END;

    BEGIN
    END.
    }
    ...
    取代程式碼
    ...OverrideDimErr := TRUE;
    END;

    // Add the following lines.
    PROCEDURE CheckPostingPeriod@1000000001(CheckPeriod@1080000 : Boolean);
    VAR
    AllowPosting@1080001 : Boolean;
    BEGIN
    IF CheckPeriod THEN BEGIN
    AllowPostingFrom := 0D;
    AllowPostingTo := 0D;
    AllowPostingInClosedVATPeriod := FALSE;
    END ELSE BEGIN
    AllowPosting := FALSE;
    GLSetup.GET;
    AllowPosting := GLSetup."Application always Allowed";
    IF NOT AllowPosting THEN
    IF UserSetup.GET(USERID) THEN
    AllowPosting := UserSetup."Application always Allowed";
    IF AllowPosting THEN BEGIN
    AllowPostingFrom := 0D;
    AllowPostingTo := 31129999D;
    END ELSE BEGIN
    AllowPostingFrom := 0D;
    AllowPostingTo := 0D;
    END;
    AllowPostingInClosedVATPeriod := AllowPosting;
    END;
    END;
    // End of the lines.

    BEGIN
    END.
    }
  8. 變更程式碼中的CustPostApplyCustLedgEntry函式在 Gen.Jnl。-張貼行 codeunit (12),如下所示︰
    現有的程式碼
    ...TempJnlLineDim.DELETEALL;
    DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim);

    // Delete the following line.
    GenJnlCheckLine.RunCheck(GenJnlLine,TempJnlLineDim);

    InitCodeUnit;
    ...
    取代程式碼
    ...TempJnlLineDim.DELETEALL;
    DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim);

    // Add the following lines.
    GenJnlCheckLine.CheckPostingPeriod(FALSE);
    GenJnlCheckLine.RunCheck(GenJnlLine,TempJnlLineDim);
    GenJnlCheckLine.CheckPostingPeriod(TRUE);
    // End of the lines.

    InitCodeUnit;
    ...
  9. 變更程式碼中的VendPostApplyVendLedgEntry函式在 Gen.Jnl。-張貼行 codeunit (12),如下所示︰
    現有的程式碼
    ...TempJnlLineDim.DELETEALL;
    DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim);

    // Delete the following lines.
    //GenJnlCheckLine.CheckPostingPeriod(FALSE); // NO0005
    GenJnlCheckLine.RunCheck(GenJnlLine,TempJnlLineDim);
    //GenJnlCheckLine.CheckPostingPeriod(TRUE); // NO0005
    // End of the lines.

    InitCodeUnit;
    ...
    取代程式碼
    ...TempJnlLineDim.DELETEALL;
    DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim);

    // Add the following lines.
    GenJnlCheckLine.CheckPostingPeriod(FALSE);
    GenJnlCheckLine.RunCheck(GenJnlLine,TempJnlLineDim);
    GenJnlCheckLine.CheckPostingPeriod(TRUE);
    // End of the lines.

    InitCodeUnit;
    ...
  10. 變更挪威文的增值稅工具 codeunit (10600) 的RunCheckNorwegianVAT函式中的程式碼如下所示︰
    現有的程式碼 1
    ...EXIT(VATPeriod."Period No.");
    END;

    // Delete the following line.
    PROCEDURE RunCheckNorwegianVAT@1080009(GenJnlLine@1080000 : Record 81);

    VAR
    SettledVATPeriod@1080003 : Record 10601;
    VATProdPostGrp@1080002 : Record 324;
    ...
    取代程式碼 1
    EXIT(VATPeriod."Period No.");END;

    // Add the following line.
    PROCEDURE RunCheckNorwegianVAT@1080009(GenJnlLine@1080000 : Record 81;VAR AllowPostingInClosedVATPeriod@1080001 : Boolean);

    VAR
    SettledVATPeriod@1080003 : Record 10601;
    VATProdPostGrp@1080002 : Record 324;
    ...
    現有的程式碼 2
    ...GLSetup@1080004 : Record 98;
    BEGIN
    WITH GenJnlLine DO BEGIN
    IF "VAT Base Amount Type" <> "VAT Base Amount Type"::Automatic THEN BEGIN
    IF ("Gen. Posting Type" = "Gen. Posting Type"::Purchase) OR
    ("Bal. Gen. Posting Type" = "Bal. Gen. Posting Type"::Purchase)
    ...
    取代程式碼 2
    ...GLSetup@1080004 : Record 98;
    BEGIN
    WITH GenJnlLine DO BEGIN

    // Add the following lines.
    IF AllowPostingInClosedVATPeriod THEN
    AllowPostingInClosedVATPeriod := FALSE
    ELSE
    IF SettledVATPeriod.GET(DATE2DMY("Posting Date",3),VATPeriodNo("Posting Date")) THEN
    IF SettledVATPeriod.Closed THEN
    FIELDERROR("Posting Date",STRSUBSTNO(Text005,SettledVATPeriod.Year,SettledVATPeriod."Period No."));
    // End of the lines.

    IF "VAT Base Amount Type" <> "VAT Base Amount Type"::Automatic THEN BEGIN
    IF ("Gen. Posting Type" = "Gen. Posting Type"::Purchase) OR
    ("Bal. Gen. Posting Type" = "Bal. Gen. Posting Type"::Purchase)
    ...

先決條件

您必須具備套用此 hotfix 之後安裝下列產品的其中一個︰
  • 挪威文版本的 Microsoft 動態航行點 2009 R2
  • Microsoft 動態航行點 2009 Service Pack 1 (SP1) 的挪威文版本

移除資訊

您無法移除此 hotfix。

狀態


Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。
注意這是直接從 Microsoft 支援組織內建立的「快速發行」文件。本文件所包含的現狀資訊是針對新興問題的回應。為縮短使其可用的時程,資料可能會包含印刷錯誤,且可能會隨時進行修改而不另行通知。如其他考量,請參閱 「使用規定」。