本文描述的问题,当您提交给主管机构的欧盟 (EU) 销售清单文件。如果公司名称中包含特殊字符,则会收到以下错误︰
所选文件的并不是所有字符都匹配检测到的代码页 ISO 8859︰ 文件位置︰ 19 值︰ 0xE9。
按照在代码更改部分,若要解决此问题的步骤。下列产品中发生此问题︰
-
德语版本的 Microsoft Dynamics 导航 2009 R2
-
德语版本的 Microsoft Dynamics 导航 2009 Service Pack 1 (SP1)
解决方案
修补程序信息
受支持的修补程序现已从 Microsoft 推出。然而,它仅用于纠正本文中描述的问题。它仅应用于正经历此特定问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待下一个 Microsoft Dynamics 导航 2009 服务包 或包含此修复程序的下一步的 Microsoft Dynamics 导航版本。
注意: 在特殊情况下,可免收的支持电话,可免收如果技术支持专业人员对 Microsoft Dynamics 和相关的产品的费用确定某个特定的更新能够解决您的问题。照常收取支持费用将应用于其他支持问题和对于特定更新无法解决的问题。
安装信息
Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保。这包括但不限于适销性或特定用途适用性的暗示担保。本文假定您熟悉所演示的编程语言和用于创建和调试过程的工具。Microsoft 的支持工程师可以帮助解释某个特定过程的功能。但是,他们不会修改这些示例以提供额外的功能或构建过程以满足您的特定要求。
注意:安装此修复程序之前,请验证所有 Microsoft Dynamics 导航客户端用户都注销系统。这包括 Microsoft Dynamics 导航应用程序服务器 (NAS) 服务。要实现此修补程序时,在登录的唯一客户端用户。
若要实现此修补程序,必须使用开发人员许可证。
我们建议在 Windows 登录窗口或数据库登录窗口中的用户帐户将分配该"超级"角色 id。如果不能将用户帐户分配成"超级"角色 ID,则必须验证用户帐户具有下列权限:
-
您将更改该对象的修改权限。
-
为系统对象 ID™ 5210对象和系统对象 ID 9015执行权限
对象。
注意:您不需要具有对数据存储区的权限,除非您需要执行数据修复。
代码更改
注意:始终测试代码修复在受控环境中应用之前与您的生产计算机的修补程序。
若要解决此问题,请执行以下步骤:
-
更改增值税报表页眉表 (740) 中的FillCompanyInfo函数中的代码,如下所示︰
现有代码 1...PROCEDURE FillCompanyInfo@1140002();
VAR
CompanyInfo@1140000 : Record 79;
CountryRegion@1140001 : Record 9;
// Delete the following lines.
BEGIN
CompanyInfo.GET;
// End of the deleted lines.
CompanyInfo.TESTFIELD("Country/Region Code");
CountryRegion.GET(CompanyInfo."Country/Region Code");
...替换代码 1
...PROCEDURE FillCompanyInfo@1140002();
VAR
CompanyInfo@1140000 : Record 79;
CountryRegion@1140001 : Record 9;
// Adding the following lines.
VATReportSetup@1140002 : Record 743;
BEGIN
CompanyInfo.GET;
VATReportSetup.GET;
// End of the added lines.
CompanyInfo.TESTFIELD("Country/Region Code");
CountryRegion.GET(CompanyInfo."Country/Region Code");
...现有代码 2
...CountryRegion.GET(CompanyInfo."Country/Region Code");
VALIDATE("VAT Registration No.",CompanyInfo."VAT Registration No.");
// Deleting the following lines.
VALIDATE("Company Name",CompanyInfo.Name);
VALIDATE("Company Address",CompanyInfo.Address);
VALIDATE("Country/Region Name",CountryRegion.Name);
VALIDATE(City,CompanyInfo.City);
// End of the deleted lines.
VALIDATE("Post Code",CompanyInfo."Post Code");
VALIDATE("Tax Office ID",CompanyInfo."Tax Office Number");
END;
...替换代码 2
...CountryRegion.GET(CompanyInfo."Country/Region Code");
VALIDATE("VAT Registration No.",CompanyInfo."VAT Registration No.");
// Adding the following lines.
VALIDATE("Company Name",GetCompanyName(CompanyInfo,VATReportSetup));
VALIDATE("Company Address",GetCompanyAddress(CompanyInfo,VATReportSetup));
VALIDATE("Country/Region Name",CountryRegion.Name);
VALIDATE(City,GetCompanyCity(CompanyInfo,VATReportSetup));
// End of the added lines.
VALIDATE("Post Code",CompanyInfo."Post Code");
VALIDATE("Tax Office ID",CompanyInfo."Tax Office Number");
END;
... -
更改增值税报表页眉表 (740) 中的GetCompanyName函数中的代码,如下所示︰
现有代码...TESTFIELD(Status,Status::Submitted);
END;
END;
BEGIN
END.
}
}
...替换代码
...TESTFIELD(Status,Status::Submitted);
END;
END;
// Adding the following lines.
LOCAL PROCEDURE GetCompanyName@1140004(CompanyInformation@1140001 : Record 79;VATReportSetup@1140000 : Record 743) : Text[100];
BEGIN
IF VATReportSetup."Company Name" <> '' THEN
EXIT(VATReportSetup."Company Name");
EXIT(CompanyInformation.Name);
END;
LOCAL PROCEDURE GetCompanyAddress@1140005(CompanyInformation@1140001 : Record 79;VATReportSetup@1140000 : Record 743) : Text[30];
BEGIN
IF VATReportSetup."Company Address" <> '' THEN
EXIT(VATReportSetup."Company Address");
EXIT(CompanyInformation.Address);
END;
LOCAL PROCEDURE GetCompanyCity@1140006(CompanyInformation@1140001 : Record 79;VATReportSetup@1140000 : Record 743) : Text[30];
BEGIN
IF VATReportSetup."Company City" <> '' THEN
EXIT(VATReportSetup."Company City");
EXIT(CompanyInformation.City);
END;
// End of the adding lines.
BEGIN
END.
}
}
... -
更改字段中的增值税报表设置表 (743) 中的代码,如下所示︰
现有代码...{ 11004; ;Registration ID ;Text6 ;CaptionML=[DEU=Registrierungs-ID;
ENU=Registration ID] }
{ 11005; ;Export Cancellation Lines;Boolean ;CaptionML=[DEU=Stornozeilen exportieren;
ENU=Export Cancellation Lines] }
}
KEYS
{
{ ;Primary key ;Clustered=Yes }
...替换代码
...{ 11004; ;Registration ID ;Text6 ;CaptionML=[DEU=Registrierungs-ID;
ENU=Registration ID] }
{ 11005; ;Export Cancellation Lines;Boolean ;CaptionML=[DEU=Stornozeilen exportieren;
ENU=Export Cancellation Lines] }
// Adding the following lines.
{ 11006; ;Company Name ;Text100 }
{ 11007; ;Company Address ;Text30 }
{ 11008; ;Company City ;Text30 }
// End of the added lines.
}
KEYS
{
{ ;Primary key ;Clustered=Yes }
... -
更改属性中 (743) 增值税报表设置窗体中的代码,如下所示︰
现有代码...}
PROPERTIES
{
Width=11990;
// Delete the following line.
Height=6490;
// End of the deleted line.
CaptionML=[DEU=MwSt.-Berichtseinrichtung;
ENU=VAT Report Setup];
InsertAllowed=No;
DeleteAllowed=No;
...替换代码
...}
PROPERTIES
{
Width=11990;
// Add the following line.
Height=8690;
// End of the added line.
CaptionML=[DEU=MwSt.-Berichtseinrichtung;
ENU=VAT Report Setup];
InsertAllowed=No;
DeleteAllowed=No;
... -
更改控件中 (743) 增值税报表设置窗体中的代码,如下所示︰
现有代码 1...}
CONTROLS
{
// Deleting the following line.
{ 1 ;TabControl ;220 ;220 ;11550;5280 ;HorzGlue=Both;
// End of the deleted line.
VertGlue=Both;
PageNamesML=[DEU=Allgemein,Nummerierung;
ENU=General,Numbering] }
{ 4 ;CheckBox ;3850 ;990 ;440 ;440 ;ParentControl=1;
...替换代码 1
...}
CONTROLS
{
// Adding the following line.
{ 1 ;TabControl ;220 ;220 ;11550;7480 ;HorzGlue=Both;
// End of the added line.
VertGlue=Both;
PageNamesML=[DEU=Allgemein,Nummerierung;
ENU=General,Numbering] }
{ 4 ;CheckBox ;3850 ;990 ;440 ;440 ;ParentControl=1;
...现有代码 2
...InPage=0;
ShowCaption=No;
SourceExpr="Export Cancellation Lines" }
{ 1140013;Label ;440 ;4840 ;3300 ;440 ;ParentControl=1140012 }
{ 7 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=1;
InPage=1;
SourceExpr="No. Series" }
{ 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }
...替换代码 2
...InPage=0;
ShowCaption=No;
SourceExpr="Export Cancellation Lines" }
{ 1140013;Label ;440 ;4840 ;3300 ;440 ;ParentControl=1140012 }
// Adding the following lines.
{ 1140015;TextBox ;3850 ;5390 ;2750 ;440 ;Name=Company Name;
ParentControl=1;
InPage=0;
SourceExpr="Company Name" }
{ 1140014;Label ;440 ;5390 ;3300 ;440 ;ParentControl=1140015 }
{ 1140017;TextBox ;3850 ;5940 ;2750 ;440 ;ParentControl=1;
InPage=0;
SourceExpr="Company Address" }
{ 1140016;Label ;440 ;5940 ;3300 ;440 ;ParentControl=1140017 }
{ 1140019;TextBox ;3850 ;6490 ;2750 ;440 ;ParentControl=1;
InPage=0;
SourceExpr="Company City" }
{ 1140018;Label ;440 ;6490 ;3300 ;440 ;ParentControl=1140019 }
// End of the added lines.
{ 7 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=1;
InPage=1;
SourceExpr="No. Series" }
{ 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }
...现有代码 3
...{ 7 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=1;
InPage=1;
SourceExpr="No. Series" }
{ 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }
// Deleting the following line.
{ 6 ;CommandButton;9570 ;5720 ;2200 ;550 ;HorzGlue=Right;
// End of the deleted line.
VertGlue=Bottom;
PushAction=FormHelp }
}
CODE
...替换代码 3
...{ 7 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=1;
InPage=1;
SourceExpr="No. Series" }
{ 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }
// Adding the following line.
{ 6 ;CommandButton;9570 ;7920 ;2200 ;550 ;HorzGlue=Right;
// End of the added line.
VertGlue=Bottom;
PushAction=FormHelp }
}
CODE
... -
按如下所述更改导出 VIES 报告报告 (11008) 中的MakeLineRecord函数中的代码︰
现有代码 1...END;
PROCEDURE MakeLineRecord@1140004(VATReportHeader@1140001 : Record 740;VATReportLine@1140000 : Record 741);
BEGIN
TempDataExportBuffer."Entry No." := NextLineNo;
TempDataExportBuffer."Field Value" :=
GetRecordType('1') +
PADSTR(VATReportHeader."VAT Registration No.",11) +
...替换代码 1
...END;
PROCEDURE MakeLineRecord@1140004(VATReportHeader@1140001 : Record 740;VATReportLine@1140000 : Record 741);
BEGIN
// Adding the following lines.
IF (VATReportLine.Base = 0) AND (VATReportLine."Line Type" <> VATReportLine."Line Type"::Correction) THEN
EXIT;
// End of the added lines.
TempDataExportBuffer."Entry No." := NextLineNo;
TempDataExportBuffer."Field Value" :=
GetRecordType('1') +
PADSTR(VATReportHeader."VAT Registration No.",11) +
...现有代码 2
...TempDataExportBuffer."Entry No." := NextLineNo;
TempDataExportBuffer."Field Value" :=
GetRecordType('1') +
PADSTR(VATReportHeader."VAT Registration No.",11) +
// Deleting the following line.
GetReportType(VATReportLine) +
// End of the deleted line.
GetReportPeriod(VATReportHeader) +
PADSTR(VATReportLine.GetVATRegNo,14) +
FormatBaseForExport(VATReportLine,12) +
GetTurnoverType(VATReportLine) +
...替换代码 2
...TempDataExportBuffer."Entry No." := NextLineNo;
TempDataExportBuffer."Field Value" :=
GetRecordType('1') +
PADSTR(VATReportHeader."VAT Registration No.",11) +
// Adding the following line.
GetReportType(VATReportLine,VATReportHeader) +
// End of the added line.
GetReportPeriod(VATReportHeader) +
PADSTR(VATReportLine.GetVATRegNo,14) +
FormatBaseForExport(VATReportLine,12) +
GetTurnoverType(VATReportLine) +
... -
按如下所述更改导出 VIES 报告报告 (11008) 中的MakeTotalRecord函数中的代码︰
现有代码...GetRecordType('2') +
PADSTR(VATReportHeader."VAT Registration No.",11) +
GetReportPeriod(VATReportHeader) +
FormatAmountForExport(VATReportHeader."Total Base",14) +
// Deleting the following line.
FormatAmountForExport(VATReportHeader."Total Number of Lines",5) +
// End of the deleted line.
PADSTR('',85);
TempDataExportBuffer.INSERT;
NextLineNo := NextLineNo + 1;
END;
...替换代码
...GetRecordType('2') +
PADSTR(VATReportHeader."VAT Registration No.",11) +
GetReportPeriod(VATReportHeader) +
FormatAmountForExport(VATReportHeader."Total Base",14) +
// Adding the following lines.
FormatAmountForExport(
VATReportHeader."Total Number of Lines" -
GetZeroBaseNewLineCount(VATReportHeader."No.") +
GetExportCancellationLineCount(VATReportHeader."No."),5) +
// End of the added lines.
PADSTR('',85);
TempDataExportBuffer.INSERT;
NextLineNo := NextLineNo + 1;
END;
... -
按如下所述更改导出 VIES 报告报告 (11008) 中的GetReportType函数中的代码︰
现有代码...BEGIN
EXIT(RecordType);
END;
// Deleting the following lines.
PROCEDURE GetReportType@1140007(VATReportLine@1140000 : Record 741) : Text[2];
BEGIN
// End of the deleted lines.
CASE VATReportLine."Line Type" OF
VATReportLine."Line Type"::New:
EXIT('10');
VATReportLine."Line Type"::Cancellation,
...替换代码
...BEGIN
EXIT(RecordType);
END;
// Adding the following lines.
PROCEDURE GetReportType@1140007(VATReportLine@1140000 : Record 741;VATReportHeader@1140001 : Record 740) : Text[2];
BEGIN
IF VATReportHeader."VAT Report Type" = VATReportHeader."VAT Report Type"::Corrective THEN
EXIT('11');
// End of the added lines.
CASE VATReportLine."Line Type" OF
VATReportLine."Line Type"::New:
EXIT('10');
VATReportLine."Line Type"::Cancellation,
... -
按如下所述更改导出 VIES 报告报告 (11008) 中的GetZeroBaseNewLineCount函数中的代码︰
现有代码...EXIT('p');
END;
PROCEDURE FormatDate@1140002(Date@1140000 : Date) : Text[8];
BEGIN
EXIT(FORMAT(Date,8,'<Year4><Month,2><Day,2>'));
END;
...替换代码
...EXIT('p');
END;
// Adding the following lines.
LOCAL PROCEDURE GetZeroBaseNewLineCount@1140020(ReportNo@1140001 : Code[20]) : Integer;
VAR
VATReportLine@1140000 : Record 741;
BEGIN
WITH VATReportLine DO BEGIN
SETRANGE("VAT Report No.",ReportNo);
SETRANGE(Base,0);
SETFILTER("Line Type",'<>%1',"Line Type"::Correction);
EXIT(COUNT);
END;
END;
LOCAL PROCEDURE GetExportCancellationLineCount@1140021(ReportNo@1140001 : Code[20]) : Integer;
VAR
VATReportLine@1140000 : Record 741;
BEGIN
IF NOT VATReportSetup."Export Cancellation Lines" THEN
EXIT(0);
WITH VATReportLine DO BEGIN
SETRANGE("VAT Report No.",ReportNo);
SETRANGE("Line Type","Line Type"::Cancellation);
EXIT(COUNT);
END;
END;
// End of the added lines.
PROCEDURE FormatDate@1140002(Date@1140000 : Date) : Text[8];
BEGIN
EXIT(FORMAT(Date,8,'<Year4><Month,2><Day,2>'));
END;
...
系统必备组件
您必须将 Microsoft Dynamics 导航 2009 R2 的德语版或要应用此修补程序安装 SP1。
删除信息
您不能删除此修补程序。
状态
Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。
注意:这是直接从创建 Microsoft 支持部门内的"快速发布"的文章。此处包含的信息是作为为了响应新出现的问题而提供的。由于以使其可用的速度,而材料可能包含印刷错误,恕不另行通知,随时可能进行修订。其他考虑因素,请参阅使用条款。