อาการ
การแก้ไขสำหรับใบแจ้งหนี้ในรายการขายใน EU ที่ลืมไม่ได้ถูกสร้าง ด้วยวิธีถูกต้องใน Microsoft Dynamics NAV 2009 รุ่นภาษาเยอรมัน หน่วยงานจัดเก็บภาษีได้รับการยืนยันว่า ในรายงานที่รายการขายใน EU แก้ไขระเบียนทั้งหมดของชนิดระเบียน 1 ต้องแสดงค่า "11" สำหรับการแก้ไขของการปรับปรุงในฟิลด์ "ชนิดของคำสั่ง" นอกจากนี้ ในชนิดของเรกคอร์ดที่ 2 ฟิลด์ "จำนวนของเรกคอร์ดของเรกคอร์ดที่พิมพ์ 1" ดังกล่าวต้องแสดงจำนวนเรกคอร์ดที่ถูกต้อง ปัญหานี้เกิดขึ้นในผลิตภัณฑ์ต่อไปนี้:
-
Microsoft Dynamics NAV 2009 R2 รุ่นภาษาเยอรมัน
-
Microsoft Dynamics NAV 2009 Service Pack 1 รุ่นภาษาเยอรมัน
การแก้ปัญหา
ข้อมูลโปรแกรมแก้ไขด่วน
โปรแกรมแก้ไขด่วนจะพร้อมใช้งานได้ในขณะนี้จาก Microsoft อย่างไรก็ตาม มีเป้าหมายเพียงเพื่อการแก้ไขปัญหาที่อธิบายไว้ในบทความนี้ นำวิธีนี้ไปใช้กับระบบที่ประสบกับปัญหาที่เฉพาะเจาะจงเท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณจะไม่รุนแรงได้รับผลกระทบจากปัญหานี้ เราขอแนะนำให้ คุณรอ service pack ถัดไปของ Microsoft Dynamics NAV 2009 หรือเวอร์ชันถัดไป Microsoft Dynamics NAV ที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้
หมายเหตุ ในกรณีพิเศษ ค่าธรรมเนียมค่าใช้จ่ายสำหรับการสนับสนุนโทรศัพท์อาจถูกยกเลิกถ้า Technical Support Professional สำหรับ Microsoft Dynamics และผลิตภัณฑ์ที่เกี่ยวข้องตรวจพบว่าการปรับปรุงเฉพาะจะแก้ปัญหาของคุณ ค่าใช้จ่ายในการสนับสนุนตามปกติจะใช้กับคำถามและปัญหาในการสนับสนุนเพิ่มเติมซึ่งไม่สอดคล้องตามเกณฑ์สำหรับโปรแกรมปรับปรุงเฉพาะที่เกี่ยวข้อง
ข้อมูลการติดตั้ง
Microsoft ให้ตัวอย่างการเขียนโปรแกรมไว้สำหรับประกอบการอธิบายเท่านั้นโดยไม่มีการรับประกันไม่ว่าจะโดยชัดแจ้งหรือโดยนัย กรณีนี้รวมถึงแต่มิได้จำกัดเพียงแค่การการรับประกันโดยนัยเกี่ยวกับการจำหน่ายเป็นสินค้าหรือความเหมาะสำหรับวัตถุประสงค์เฉพาะ บทความนี้ตั้งสมมติฐานว่าคุณมีความคุ้นเคยกับภาษาการเขียนโปรแกรมที่กำลังแสดงและคุ้นเคยกับเครื่องมือที่ใช้ใน การสร้างและแก้จุดบกพร่องของขั้นตอนการดำเนินการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายเกี่ยวกับหน้าที่การใช้งานของกระบวนการเฉพาะ อย่างไรก็ตาม จะไม่แก้ไขตัวอย่างเหล่านี้เพื่อเพิ่มฟังก์ชัน หรือสร้างขั้นตอนเพื่อตอบสนองความต้องการเฉพาะของคุณ
หมายเหตุ ก่อนที่คุณติดตั้งโปรแกรมแก้ไขด่วนนี้ โปรดตรวจสอบว่า ผู้ใช้ไคลเอนต์ของ Microsoft Dynamics NAV ทั้งหมดเข้าสู่ระบบออกจากระบบ ข้อมูลนี้รวมถึงบริการ Microsoft Dynamics NAV แอพพลิเคชันเซิร์ฟเวอร์ (NAS) คุณควรไคลเอ็นต์เฉพาะผู้ใช้ที่เข้าสู่ระบบเมื่อคุณใช้โปรแกรมแก้ไขด่วนนี้
เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมีสิทธิ์การใช้งานสำหรับนักพัฒนา
เราขอแนะนำว่า บัญชีผู้ใช้ ในหน้าต่างล็อกอินของ Windows หรือ ในหน้าต่างล็อกอินฐานข้อมูลสามารถกำหนดรหัสการเข้าถึงข้อมูล "ขั้นสูง" ถ้าบัญชีผู้ใช้ไม่สามารถกำหนดรหัสการบทบาท "SUPER" คุณต้องตรวจสอบว่า บัญชีผู้ใช้มีสิทธิ์ต่อไปนี้:
-
สิทธิ์การปรับเปลี่ยนสำหรับออปเจ็กต์ที่คุณจะสามารถเปลี่ยน
-
สิทธิ์ในการดำเนินการ สำหรับออบเจ็กต์5210 รหัสวัตถุของระบบและระบบ 9015 ID ของวัตถุ
วัตถุ
หมายเหตุ คุณไม่จำเป็นต้องมีสิทธิ์ไปยังร้านค้าข้อมูลยกเว้นว่าคุณจำเป็นต้องซ่อมแซมข้อมูล
การเปลี่ยนแปลงรหัส
หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่คุณนำไปใช้แก้ไขปัญหากับคอมพิวเตอร์ของคุณผลิต
เมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:
-
เปลี่ยนแปลงรหัสนี้ในฟังก์ชันFillCompanyInfoในตารางหัวข้อการรายงาน VAT (740) เป็นดังนี้:
รหัสที่อยู่ 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;
// Add 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");PROCEDURE FillCompanyInfo@1140002();
VAR
CompanyInfo@1140000 : Record 79;
CountryRegion@1140001 : Record 9;
// Add 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.");
// Delete 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.");
// Add 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;
... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชันGetCompanyNameในตารางหัวข้อการรายงาน VAT (740) เป็นดังนี้:
รหัสที่มีอยู่...TESTFIELD(Status,Status::Submitted);
END;
END;
BEGIN
END.
}
}
...รหัสแทน
...TESTFIELD(Status,Status::Submitted);
END;
END;
// Add 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 added lines.
BEGIN
END.
}
}
... -
เปลี่ยนแปลงรหัสนี้ในฟิลด์ในตารางการตั้งค่าการรายงาน VAT (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] }
// Add 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 }
... -
เปลี่ยนแปลงรหัสนี้ในคุณสมบัติในแบบฟอร์มการตั้งค่าการรายงาน VAT (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;
... -
เปลี่ยนแปลงรหัสนี้ในตัวควบคุมในแบบฟอร์มการตั้งค่าการรายงาน VAT (743) เป็นดังนี้:
รหัสที่อยู่ 1...}
CONTROLS
{
// Delete 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
{
// Add 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 }
// Add 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 }
// Delete 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 }
// Add the following line.
{ 6 ;CommandButton;9570 ;7920 ;2200 ;550 ;HorzGlue=Right;
// End of the added line.
VertGlue=Bottom;
PushAction=FormHelp }
}
CODE
... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชันMakeLineRecordในการส่งออกงรายงานรายงาน (11008) เป็นดังนี้:
รหัสที่อยู่ 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
// Add 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) +
// Delete 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) +
// Add the following line.
GetReportType(VATReportLine,VATReportHeader) +
// End of the added line.
GetReportPeriod(VATReportHeader) +
PADSTR(VATReportLine.GetVATRegNo,14) +
FormatBaseForExport(VATReportLine,12) +
GetTurnoverType(VATReportLine) +
... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชันMakeTotalRecordในการส่งออกงรายงานรายงาน (11008) เป็นดังนี้:
รหัสที่มีอยู่...GetRecordType('2') +
PADSTR(VATReportHeader."VAT Registration No.",11) +
GetReportPeriod(VATReportHeader) +
FormatAmountForExport(VATReportHeader."Total Base",14) +
// Delete 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) +
// Add 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;
... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชันGetReportTypeในการส่งออกงรายงานรายงาน (11008) เป็นดังนี้:
รหัสที่มีอยู่...BEGIN
EXIT(RecordType);
END;
// Delete 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;
// Add 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,
... -
เปลี่ยนแปลงรหัสนี้ในฟังก์ชันGetZeroBaseNewLineCountในการส่งออกงรายงานรายงาน (11008) เป็นดังนี้:
รหัสที่มีอยู่...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;
// Add 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 NAV 2009 R2 รุ่นภาษาเยอรมัน
-
SP1 2009 นำทางของ Dynamics Microsoft รุ่นภาษาเยอรมัน
ข้อมูลการเอาออก
คุณไม่สามารถเอาโปรแกรมแก้ไขด่วนนี้
สถานะ
Microsoft ยืนยันว่านี่เป็นปัญหาในผลิตภัณฑ์ของ Microsoft ซึ่งแสดงไว้ในส่วน "นำไปใช้กับ"
ควรมีการอัพเด 743 หน้าโดยใช้เครื่องมือการแปลง จาก 743 ฟอร์มถูกปรับเปลี่ยน
ดูบทความ"อักขระสำหรับแฟ้มที่เลือกทั้งหมดไม่ตรงกับรหัสตรวจพบ" ข้อผิดพลาดใน Microsoft Dynamics NAV 2009 รุ่นภาษาเยอรมันสำหรับข้อมูลเพิ่มเติม
ดูบทความมีรายงานยอดเงินเป็นศูนย์ในรายการขายใน EU เดิมใน SP1 2009 นำทางของ Dynamics Microsoft รุ่นภาษาเยอรมันสำหรับข้อมูลเพิ่มเติม
หมายเหตุ นี่คือบทความ "เผยแพร่เร็ว" ที่สร้างขึ้นโดยตรงจากภายใน Microsoft สนับสนุนองค์กร ข้อมูลในที่นี้ให้ไว้ตามสภาพ เพื่อตอบสนองกับปัญหาที่เกิดขึ้นใหม่ เป็นผลมาจากความเร็วในการทำให้พร้อมใช้งาน วัสดุอาจรวมถึงข้อผิดพลาดการพิมพ์ผิด และอาจแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ดูข้อตกลงการใช้สำหรับข้อควรพิจารณาอื่น ๆ