Onverwacht kunt u boeken op de btw-tabel in een btw-periode die is vereffend en afgesloten in de Noorse versie van Microsoft Dynamics NAV 2009


Dit artikel is van toepassing op Microsoft Dynamics NAV voor de taalinstelling Noors (no).

Symptomen


U kunt boeken aan de tabel van de belasting over de toegevoegde waarde (btw) in een periode van btw die is vereffend en onverwacht afgesloten in de Noorse versie van Microsoft Dynamics NAV 2009.
Dit probleem treedt op in de volgende producten:
  • De Noorse versie van Microsoft Dynamics NAV 2009 R2
  • De Noorse versie van Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Oplossing


Informatie over de hotfix

Een ondersteunde hotfix is nu beschikbaar bij Microsoft. Het is echter alleen bedoeld om het probleem dat wordt beschreven in dit artikel. Pas deze alleen toe op systemen waarop dit specifieke probleem zich voordoet. Deze hotfix moet wellicht extra worden getest. Als u geen ernstige problemen ondervindt, is het daarom raadzaam te wachten op het volgende servicepack voor Microsoft Dynamics NAV of de volgende Microsoft Dynamics NAV versie waarin deze hotfix is opgenomen.

Opmerking In speciale gevallen kunnen kosten die verbonden zijn aan ondersteuningsoproepen ondersteuning worden geannuleerd als een medewerker van Technical Support voor Microsoft Dynamics en verwante producten bepaalt dat een specifieke update de oplossing van uw probleem. De normale ondersteuningskosten blijven gelden voor extra ondersteuningsvragen die niet in aanmerking voor de specifieke update in kwestie komen.


Informatie over de installatie

Microsoft verstrekt programmeervoorbeelden uitsluitend ter illustratie, zonder expliciete of impliciete garantie. Dit omvat, maar is niet beperkt tot, de impliciete garanties van verkoopbaarheid of geschiktheid voor een bepaald doel. In dit artikel wordt ervan uitgegaan dat u bekend met de programmeertaal die wordt aangetoond en met de hulpprogramma's die worden gebruikt bent voor het maken van en naar procedures voor foutopsporing. Ondersteuningstechnici van Microsoft kunnen voor uitleg over de functionaliteit van een bepaalde procedure, maar zij zullen deze voorbeelden bieden extra functionaliteit of desgewenst uw specifieke vereisten niet wijzigen.

Opmerking Voordat u deze hotfix hebt geïnstalleerd, controleert u of dat alle gebruikers van Microsoft Navision-clients zijn afgemeld bij het systeem. Dit geldt ook voor gebruikers van Microsoft Navision Application Services (NAS)-clients. U moet de alleen clientgebruiker die is aangemeld wanneer u deze hotfix gaat implementeren.

Als u deze hotfix gaat implementeren, hebt u een ontwikkelaarslicentie voor.

Is raadzaam dat de gebruikersaccount in het venster Windows-aanmeldingen of Databaseaanmeldingen de rol-id 'SUPER'. Als de gebruikersaccount kan worden toegewezen als de ID 'SUPER' rol, moet u controleren of de gebruikersaccount de volgende machtigingen heeft:
  • De machtiging wijzigen voor het object dat u wijzigt.
  • De machtiging uitvoeren voor het object System Object ID 5210 en voor het object System Object ID 9015 .


Opmerking Er geen rechten voor de opgeslagen gegevens hebben, tenzij u gegevens herstellen.

Codewijzigingen

Opmerking Altijd test code worden opgelost in een testomgeving voordat u de correcties in de productieomgeving.
U kunt dit probleem oplossen door de volgende stappen uit te voeren:
  1. De code in de velden in de tabel Gebruikersinstellingen (91) als volgt wijzigen:
    Bestaande code
    ...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 }
    ...
    Nieuwe code
    ...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. De code in de velden in de tabel Boekhoudinstellingen (98) als volgt wijzigen:
    Bestaande code
    ...END;

    CaptionML=ENU=Prepayment Unrealized VAT }
    { 10601; ;Non-Taxable ;Boolean ;CaptionML=ENU=Non-Taxable }
    }
    KEYS
    ...
    Nieuwe code
    ...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. De code in de besturingselementen in het formulier Boekhoudinstellingen (118) als volgt wijzigen:
    Bestaande code 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;
    ...
    Nieuwe code 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;
    ...
    Bestaande code 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;
    ...
    Vervangende code 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;
    ...
    Bestaande code 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." }
    ...
    Vervangende code 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." }
    ...
    Bestaande code 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" }
    ...
    Vervangende code 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" }
    ...
    Bestaande code 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;
    ...
    Vervangende code 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;
    ...
    Bestaande code 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;
    ...
    Vervangende code 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;
    ...
    Bestaande code 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;
    ...
    Vervangende code 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;
    ...
    Bestaande code 8
    ...Cancel=Yes;
    PushAction=LookupCancel;
    InvalidActionAppearance=Hide }

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

    VertGlue=Bottom;
    PushAction=FormHelp }
    ...
    Vervangende code 8
    ...Cancel=Yes;
    PushAction=LookupCancel;
    InvalidActionAppearance=Hide }

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

    VertGlue=Bottom;
    PushAction=FormHelp }
    ...
    Bestaande code 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
    ...
    Vervangende code 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. De code in de besturingselementen in het formulier gebruiker (119) als volgt wijzigen:
    Bestaande code 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;
    ...
    Nieuwe code 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;
    ...
    Bestaande code 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;
    ...
    Vervangende code 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;
    ...
    Bestaande code 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" }
    ...
    Vervangende code 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. Een algemene variabele toevoegen in Alg. verz.-regel controleren codeunit (11), en geef vervolgens de variabele:
    • Naam: AllowPostingInClosedVATPeriod
    • Gegevenstype: Boolean
  6. Wijzig de code in de functie RunCheck in Alg. verz.-regel controleren codeunit (11) als volgt:
    Bestaande code
    ...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
    ...
    Nieuwe code
    ...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. Wijzig de code in de functie CheckPostingPeriod in Alg. verz.-regel controleren codeunit (11) als volgt:
    Bestaande code
    ...OverrideDimErr := TRUE;
    END;

    BEGIN
    END.
    }
    ...
    Nieuwe code
    ...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. Wijzig de code in de functie CustPostApplyCustLedgEntry in Alg. verz.-regel doorboeken (12) als volgt:
    Bestaande code
    ...TempJnlLineDim.DELETEALL;
    DimMgt.CopyLedgEntryDimToJnlLineDim(LedgEntryDim,TempJnlLineDim);

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

    InitCodeUnit;
    ...
    Nieuwe code
    ...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. Wijzig de code in de functie VendPostApplyVendLedgEntry in Alg. verz.-regel doorboeken (12) als volgt:
    Bestaande code
    ...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;
    ...
    Nieuwe code
    ...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. De code in de functie RunCheckNorwegianVAT in de codeunit Noorse btw-hulpprogramma's (10600) als volgt wijzigen:
    Bestaande code 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;
    ...
    Nieuwe code 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;
    ...
    Bestaande code 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)
    ...
    Vervangende code 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)
    ...

Vereisten

Hebt u een van de volgende producten geïnstalleerd om deze hotfix:
  • De Noorse versie van Microsoft Dynamics NAV 2009 R2
  • De Noorse versie van Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Informatie over verwijderen

U kunt deze hotfix niet verwijderen.

Status


Microsoft heeft bevestigd dat dit probleem kan optreden in de Microsoft-producten die worden vermeld in de sectie 'Van toepassing op'.
Opmerking Dit is een 'Snel publiceren' artikel dat rechtstreeks door het ondersteuningsteam van Microsoft is gemaakt. De informatie wordt geleverd zoals het is in reactie op de opkomende problemen. Omdat het artikel snel beschikbaar moest zijn, kunnen de materialen typografische fouten bevatten en op elk gewenst moment zonder voorafgaande kennisgeving worden gewijzigd. Zie de Gebruiksvoorwaarden voor andere overwegingen.