Anta att du använder "Skatt Authorties anta Digipoort för moms och EU-försäljning lista NL för Microsoft Dynamics NAV SP1" i den nederländska versionen av Microsoft Dynamics NAV 2009. När du använder Digipoort-gränssnittet visas något av följande verifieringsfel:
SBR_DIGIPOORT bd-alg:ContactPrefix får inte vara tomt.
ICP-beloppet får inte vara noll.
Det här problemet uppstår i följande produkter:
-
Den nederländska versionen av Microsoft Dynamics NAV 2009 R2
-
Den nederländska versionen av Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)
Lösning
Information om snabbkorrigeringen
En snabbkorrigering är nu tillgänglig från Microsoft. Den är endast avsedd att åtgärda det problem som beskrivs i denna artikel. Använd den bara på datorer där detta problem uppstår. Snabbkorrigeringen kan komma att testas igen. Om inte störs alltför mycket av detta problem rekommenderar vi att du väntar på Nästa service pack-versionen för Microsoft Dynamics NAV 2009 eller nästa Microsoft Dynamics NAV-version som innehåller den här snabbkorrigeringen.Obs! I särskilda fall, de avgifter som är normalt för support vara avgiftsfri om en supporttekniker för Microsoft Dynamics och relaterade produkter som bestämmer att en särskild uppdatering kan lösa ditt problem. De vanliga supportkostnaderna gäller för övriga supportfrågor och problem som inte berör den särskilda uppdateringen.
Installationsinformation
Microsoft tillhandahåller programmeringsexempel endast utan garanti varken uttryckliga eller underförstådda. Detta inkluderar men är inte begränsat till, underförstådda garantier om säljbarhet eller lämplighet för ett särskilt ändamål. Den här artikeln förutsätter att du är bekant med det programmeringsspråk som demonstreras och de verktyg som används för att skapa och felsöka procedurer. Microsofts supporttekniker kan hjälpa till att förklara funktionen hos en viss procedur. De kommer inte ändra dessa exempel för att ge ytterligare funktioner eller skapa procedurer som motsvarar dina speciella behov.Obs! Innan du installerar den här snabbkorrigeringen måste du kontrollera att alla användare i Microsoft Dynamics NAV-klienten har loggat ut. Detta omfattar tjänster för Microsoft Dynamics NAV Application Server (NAS). Du ska endast klientanvändare som är inloggad när du implementerar den här snabbkorrigeringen.Om du vill genomföra den här snabbkorrigeringen måste du ha en utvecklarlicens.Vi rekommenderar att tilldelas användarkontot i fönstret Windows-inloggningar eller i fönstret databasinloggningar "SUPER" roll-ID. Om användarkontot inte kan tilldelas "SUPER" roll-ID måste du kontrollera att användarkontot har följande behörigheter:
-
Ändra behörighet för objektet ändras.
-
Körbehörighet för systemet objektet ID 5210 objekt och System objektet ID 9015objektet.
Obs! Du har inte behörighet för datalager inte data reparation.
Kod ändras
Obs! Alltid åtgärdas testa koden i en kontrollerad miljö innan du installerar korrigeringar för produktionsdatorer.Lös problemet så här:
-
Ändra koden i rapporten skapa Elec. ICP-redovisning (11404) enligt följande:Befintlig kod 1
...ElecTaxDeclarationHeader@1000000 : Record 11409; ApplicationManagement@1000001 : Codeunit 1; UseVATRegNo@1000010 : Text[20]; BEGIN IF Status > Status::Created THEN ERROR(StatusErr);...
Ersättningskod 1
...ElecTaxDeclarationHeader@1000000 : Record 11409; ApplicationManagement@1000001 : Codeunit 1; UseVATRegNo@1000010 : Text[20]; StreetName@1000002 : Text[50]; HouseNo@1000003 : Text[50]; AdditionHouseNo@1000004 : Text[50]; ContactPrefix@1000011 : Text[35]; BEGIN IF Status > Status::Created THEN ERROR(StatusErr);...
Befintlig kod 2
...// zbrli:xbrl->bd-ob:VATIdentificationNumberNLFiscalEntityDivision IF ElecTaxDeclarationSetup."Part of Fiscal Entity" THEN BEGIN IF COPYSTR( UPPERCASE(CompanyInfo."VAT Registration No."), 1,STRLEN(CompanyInfo."Country/Region Code")) = CompanyInfo."Country/Region Code" THEN CompanyInfo."VAT Registration No." := DELSTR(CompanyInfo."VAT Registration No.",1,STRLEN(CompanyInfo."Country/Region Code")); InsertDataLine("Elec. Tax Declaration Header",1,'bd-ob:VATIdentificationNumberNLFiscalEntityDivision', CompanyInfo."VAT Registration No.",'','Msg',''); END; // zbrli:xbrl->bd-alg:Contact*...
Ersättningskod 2
...// zbrli:xbrl->bd-ob:VATIdentificationNumberNLFiscalEntityDivision IF ElecTaxDeclarationSetup."Part of Fiscal Entity" THEN BEGIN IF COPYSTR( UPPERCASE(CompanyInfo."Fiscal Entity No."), 1,STRLEN(CompanyInfo."Country/Region Code")) = CompanyInfo."Country/Region Code" THEN CompanyInfo."Fiscal Entity No." := DELSTR(CompanyInfo."Fiscal Entity No.",1,STRLEN(CompanyInfo."Country/Region Code")); InsertDataLine("Elec. Tax Declaration Header",1,'bd-ob:VATIdentificationNumberNLFiscalEntityDivision', CompanyInfo."Fiscal Entity No.",'','Msg',''); END; // zbrli:xbrl->bd-alg:Contact*...
Befintlig kod 3
...IF ElecTaxDeclarationSetup."ICP Contact Type" = ElecTaxDeclarationSetup."ICP Contact Type"::"Tax Payer" THEN BEGIN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials', ExtractInitials(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix', ExtractNamePrefix(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname', ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...
Ersättningskod 3
...IF ElecTaxDeclarationSetup."ICP Contact Type" = ElecTaxDeclarationSetup."ICP Contact Type"::"Tax Payer" THEN BEGIN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials', ExtractInitials(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg',''); ContactPrefix := ExtractNamePrefix(ElecTaxDeclarationSetup."Tax Payer Contact Name"); IF ContactPrefix <> '' THEN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix',ContactPrefix,'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname', ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...
Befintlig kod 4
...ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber', ElecTaxDeclarationSetup."Tax Payer Contact Phone No.",'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL', ExtractStreetName(CompanyInfo.Address),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL', ExtractStreetNo(CompanyInfo.Address),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL', DELCHR(CompanyInfo."Post Code",'=',' '),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...
Ersättningskod 4
...ExtractSurname(ElecTaxDeclarationSetup."Tax Payer Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber', ElecTaxDeclarationSetup."Tax Payer Contact Phone No.",'','Msg',''); PostCodeMgt.ParseAddressAdditionHouseNo(StreetName,HouseNo,AdditionHouseNo,CompanyInfo.Address); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL',StreetName,'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL',HouseNo,'','Msg',''); IF AdditionHouseNo <> '' THEN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberAddition',AdditionHouseNo,'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL', DELCHR(CompanyInfo."Post Code",'=',' '),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...
Befintlig kod 5
...END ELSE BEGIN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials', ExtractInitials(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix', ExtractNamePrefix(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname', ExtractSurname(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...
Ersättningskod 5
...END ELSE BEGIN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactInitials', ExtractInitials(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg',''); ContactPrefix := ExtractNamePrefix(ElecTaxDeclarationSetup."Agent Contact Name"); IF ContactPrefix <> '' THEN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPrefix',ContactPrefix,'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactSurname', ExtractSurname(ElecTaxDeclarationSetup."Agent Contact Name"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactTelephoneNumber',...
Befintlig kod 6
...ElecTaxDeclarationSetup."Agent Contact Phone No.",'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:TaxConsultantNumber', ElecTaxDeclarationSetup."Agent Contact ID",'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL', ExtractStreetName(ElecTaxDeclarationSetup."Agent Contact Address"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL', ExtractStreetNo(ElecTaxDeclarationSetup."Agent Contact Address"),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL', DELCHR(ElecTaxDeclarationSetup."Agent Contact Post Code",'=',' '),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...
Ersättningskod 6
...ElecTaxDeclarationSetup."Agent Contact Phone No.",'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:TaxConsultantNumber', ElecTaxDeclarationSetup."Agent Contact ID",'','Msg',''); PostCodeMgt.ParseAddressAdditionHouseNo( StreetName,HouseNo,AdditionHouseNo,ElecTaxDeclarationSetup."Agent Contact Address"); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactStreetNameNL',StreetName,'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberNL',HouseNo,'','Msg',''); IF AdditionHouseNo <> '' THEN InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactHouseNumberAddition',AdditionHouseNo,'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPostalCodeNL', DELCHR(ElecTaxDeclarationSetup."Agent Contact Post Code",'=',' '),'','Msg',''); InsertDataLine("Elec. Tax Declaration Header",1,'bd-alg:ContactPlaceOfResidenceNL',...
Befintlig kod 7
...SETRANGE("VAT Registration No.", "VAT Registration No."); CALCSUMS(Base); "Elec. Tax Declaration Header".InsertLine(0,1,CurrentType,''); InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:CountryCodeISO-EC', COPYSTR("Country/Region Code",1,2),'','Msg',''); IF COPYSTR(UPPERCASE("VAT Registration No."),1,STRLEN("Country/Region Code")) = "Country/Region Code" THEN "VAT Registration No." := DELSTR("VAT Registration No.",1,STRLEN("Country/Region Code")); InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:SuppliesAmount', FORMAT(-Base,0,'<Sign><Integer>'),'INF','Msg','EUR'); InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:VATIdentificationNumberNational', "VAT Registration No.",'','Msg',''); FIND('+'); SETRANGE("Country/Region Code");...Ersättningskod 7
...SETRANGE("VAT Registration No.", "VAT Registration No."); CALCSUMS(Base); IF ABS(Base) >= 1 THEN BEGIN "Elec. Tax Declaration Header".InsertLine(0,1,CurrentType,''); InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:CountryCodeISO-EC', COPYSTR("Country/Region Code",1,2),'','Msg',''); IF COPYSTR(UPPERCASE("VAT Registration No."),1,STRLEN("Country/Region Code")) = "Country/Region Code" THEN "VAT Registration No." := DELSTR("VAT Registration No.",1,STRLEN("Country/Region Code")); CASE Integer.Number OF 0,2: InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:SuppliesAmount', FORMAT(-Base,0,'<Sign><Integer>'),'INF','Msg','EUR'); 1: InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:ServicesAmount', FORMAT(-Base,0,'<Sign><Integer>'),'INF','Msg','EUR'); END; InsertDataLine("Elec. Tax Declaration Header",2,'bd-ob:VATIdentificationNumberNational', "VAT Registration No.",'','Msg',''); END; FIND('+'); SETRANGE("Country/Region Code");... -
Ändra koden i den globala variabler i rapporten skapa Elec. ICP-redovisning (11404) enligt följande:Befintlig kod
...CompanyInfo@1000003 : Record 79; ElecTaxDeclarationSetup@1000001 : Record 11408; StatusErr@1000005 : TextConst 'ENU=The report status need to have value " " or Created to create the report content.'; CurrentType@1000000 : Text[60]; LOCAL PROCEDURE GetStrippedAppVersion@1101100000(AppVersion@1101100001 : Text[250]) Res : Text[250];...
Ersättningskod
...CompanyInfo@1000003 : Record 79; ElecTaxDeclarationSetup@1000001 : Record 11408; StatusErr@1000005 : TextConst 'ENU=The report status need to have value " " or Created to create the report content.'; PostCodeMgt@1000002 : Codeunit 11401; CurrentType@1000000 : Text[60]; LOCAL PROCEDURE GetStrippedAppVersion@1101100000(AppVersion@1101100001 : Text[250]) Res : Text[250];...
-
Ändra koden i funktionen ExtractStreetName i rapporten skapa Elec. ICP-redovisning (11404) enligt följande:Befintlig kod
...ElecTaxDeclHeader.InsertLine(1,Indentation + 1,'unitRef',unitRef); END; LOCAL PROCEDURE ExtractStreetName@1000013(Address@1000000 : Text[50]) : Text[50]; BEGIN IF IndexOfFirstNumber(Address) > 1 THEN EXIT(COPYSTR(Address,1,IndexOfFirstNumber(Address) - 2)); EXIT(Address); END; LOCAL PROCEDURE ExtractStreetNo@1000012(Address@1000000 : Text[50]) : Text[50]; BEGIN IF IndexOfFirstNumber(Address) > 0 THEN EXIT(COPYSTR(Address,IndexOfFirstNumber(Address))); EXIT(''); END; LOCAL PROCEDURE ExtractInitials@1000014(FullName@1000000 : Text[35]) Initials : Text[30]; VAR Pos@1000001 : Integer;...
Ersättningskod
...ElecTaxDeclHeader.InsertLine(1,Indentation + 1,'unitRef',unitRef); END; LOCAL PROCEDURE ExtractInitials@1000014(FullName@1000000 : Text[35]) Initials : Text[30]; VAR Pos@1000001 : Integer;...
-
Ändra koden i funktionen IndexOfFirstNumber i rapporten skapa Elec. ICP-redovisning (11404) enligt följande:Befintlig kod
...Surname := COPYSTR(FullName,STRPOS(FullName,' ') + 1); END; LOCAL PROCEDURE IndexOfFirstNumber@1000017(Str@1000000 : Text[50]) : Integer; VAR Index@1000001 : Integer; BEGIN FOR Index := 1 TO STRLEN(Str) DO BEGIN IF Str[Index] IN ['0'..'9'] THEN EXIT(Index); END; EXIT(0); END; BEGIN END. }...
Ersättningskod
...Surname := COPYSTR(FullName,STRPOS(FullName,' ') + 1); END; BEGIN END. }...
-
Ändra koden i funktionen ParseAddressAdditionHouseNo i kodmodulen hantering av Post-kod (11401) enligt följande:Befintlig kod
...EXIT(TRUE); END; BEGIN { <changelog>...
Ersättningskod
...EXIT(TRUE); END; PROCEDURE ParseAddressAdditionHouseNo@1000003(VAR StreetName@1000001 : Text[50];VAR HouseNo@1000002 : Text[50];VAR AdditionHouseNo@1000003 : Text[50];Address@1000000 : Text[50]); VAR HouseString@1000004 : Text[50]; BEGIN StreetName := ''; HouseNo := ''; AdditionHouseNo := ''; IF Address = '' THEN EXIT; // Suppose that house string is a last word in the Address HouseString := GetHouseString(Address); IF HouseString = '' THEN BEGIN StreetName := Address; EXIT; END; // The last word is a House string with possible AdditionHouseNo information. All before last word is a StreetName. StreetName := COPYSTR(Address,1,STRLEN(Address) - STRLEN(HouseString) - 1); HouseNo := GetHouseNoFromHouseString(HouseString); AdditionHouseNo := HouseString; END; LOCAL PROCEDURE GetHouseString@1000002(Address@1000000 : Text[50]) : Text[50]; VAR i@1000003 : Integer; BEGIN // If there's only one word then return empty HouseString IF STRPOS(Address,' ') = 0 THEN EXIT(''); //Lookup from end of string first space after a number // Find the last word: revert address string, cut first word, revert result RevertString(Address); // Delete Spaces at beginning Address := DELCHR(Address,'<'); i := 1; // Find first number i ==> position of first number WHILE (NOT (Address[i] IN ['0'..'9']) AND (i < STRLEN(Address))) DO i += 1; IF ((i = STRLEN(Address)) AND NOT (Address[i] IN ['0'..'9'])) THEN //No number found EXIT(''); // look further until number stops WHILE ((Address[i] IN ['0'..'9']) AND (i < STRLEN(Address))) DO i+= 1; Address := DELCHR(COPYSTR(Address,1, i-1), '<=>'); // remove all spaces RevertString(Address); EXIT(Address); END; LOCAL PROCEDURE GetHouseNoFromHouseString@1000000(VAR HouseString@1000000 : Text[50]) HouseNo : Text[50]; VAR Pos@1000002 : Integer; BEGIN Pos := 1; WHILE HouseString[Pos] IN ['0'..'9'] DO Pos += 1; HouseNo := COPYSTR(HouseString,1,Pos - 1); // remove HouseNo from the HouseString including special separating char if such exist IF HouseString[Pos] IN ['/','\','-'] THEN Pos += 1; HouseString := COPYSTR(HouseString,Pos); END; LOCAL PROCEDURE RevertString@1170000000(VAR String@1170000000 : Text[50]); VAR StringCopy@1170000001 : Text[50]; i@1170000002 : Integer; Length@1170000003 : Integer; BEGIN StringCopy := String; Length := STRLEN(String); FOR i := 1 TO Length DO String[i] := StringCopy[Length - i + 1]; END; BEGIN { <changelog>...
Förutsättningar
Du måste ha någon av följande produkter som har installerat den här snabbkorrigeringen:
-
Den nederländska versionen av Microsoft Dynamics NAV 2009 R2
-
Den nederländska versionen av Microsoft Dynamics NAV 2009 SP1
Du har dessutom att genomföra den "skatt Authorties anta Digipoort för moms och EU-försäljning lista Inlämningen för Microsoft Dynamics NAV SP1 NL."
Information om borttagning
Du kan inte ta bort den här snabbkorrigeringen.
Status
Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".
Obs! Detta är en "SNABBPUBLICERING"-artikel skapad direkt från Microsoft support-organisationen. Informationen häri tillhandahålls i befintligt skick som svar på nya problem. Till följd av hastigheten för att göra det tillgängligt kan materialet innehålla typografiska fel och kan ändras när som helst utan föregående meddelande. Se Villkoren för användningför andra överväganden.