มีการลงรายการบัญชีธุรกรรมที่ไม่ถูกต้องถ้าธุรกรรม VAT ที่เก็บย้อนกลับที่สร้างขึ้นสําหรับใบแจ้งหนี้การซื้อสําหรับผู้จัดจําหน่าย EU บางส่วนไม่สามารถหัก VAT ออกได้ใน Microsoft Dynamics NAV เวอร์ชันภาษาอิตาลี

บทความนี้ใช้กับ Microsoft Dynamics NAV สําหรับภาษาอิตาลี (it)

อาการ

สมมติว่า คุณเลือกค่า VAT ที่เก็บย้อนกลับ ในฟิลด์ ชนิดการคํานวณ VAT ในกลุ่มการลงรายการบัญชีภาษีมูลค่าเพิ่ม (VAT) ใน Microsoft Dynamics NAV เวอร์ชันภาษาอิตาลี คุณลงรายการบัญชีอินวอยซ์การซื้อสําหรับผู้ขายสหภาพยุโรป (EU) โดยใช้กลุ่มการลงรายการบัญชี ในสถานการณ์นี้ ถ้าธุรกรรม VAT ที่เก็บย้อนกลับบางส่วนไม่สามารถหัก VAT ได้ ธุรกรรมที่ลงรายการบัญชีในตารางรายการดั้งเดิมทั่วไปไม่ถูกต้อง 
ปัญหานี้เกิดขึ้นในผลิตภัณฑ์ต่อไปนี้:

  • Microsoft Dynamics NAV 2009 R2 เวอร์ชันภาษาอิตาลี
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) เวอร์ชันภาษาอิตาลี
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) เวอร์ชันภาษาอิตาลี

การแก้ปัญหา

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว อย่างไรก็ตาม มีไว้เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นําไปใช้กับระบบที่พบปัญหานี้โดยเฉพาะเท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับผลกระทบอย่างร้ายแรงจากปัญหานี้ เราขอแนะนําให้คุณรอ Service Pack ถัดไปของ Microsoft Dynamics NAV หรือ Microsoft Dynamics NAV เวอร์ชันถัดไปที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้

หมายเหตุ ในกรณีพิเศษ ค่าธรรมเนียมสําหรับการโทรติดต่อฝ่ายสนับสนุนตามปกติอาจถูกยกเลิกถ้าผู้เชี่ยวชาญฝ่ายสนับสนุนทางเทคนิคสําหรับ Microsoft Dynamics และผลิตภัณฑ์ที่เกี่ยวข้องระบุว่าการอัปเดตเฉพาะจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนปกติจะใช้กับคําถามและปัญหาการสนับสนุนเพิ่มเติมที่ไม่มีคุณสมบัติสําหรับการอัปเดตเฉพาะที่สงสัย

            
          

ข้อมูลการติดตั้ง

Microsoft แสดงตัวอย่างการเขียนโปรแกรมสําหรับภาพประกอบเท่านั้น โดยไม่มีการรับประกันทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จํากัดเพียงการรับประกันโดยนัยถึงความสามารถในเชิงพาณิชย์หรือความเหมาะสมสําหรับวัตถุประสงค์เฉพาะ บทความนี้จะถือว่าคุณคุ้นเคยกับภาษาการเขียนโปรแกรมที่กําลังแสดงอยู่ และมีเครื่องมือที่ใช้สําหรับสร้างและแก้ไขจุดบกพร่องของกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทํางานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีฟังก์ชันการทํางานที่เพิ่มขึ้นหรือสร้างขั้นตอนต่างๆ เพื่อตอบสนองความต้องการเฉพาะของคุณ

หมายเหตุ ก่อนที่คุณจะติดตั้งโปรแกรมแก้ไขด่วนนี้ ตรวจสอบว่าผู้ใช้ไคลเอนต์ Microsoft Navision ทั้งหมดออกจากระบบ ซึ่งรวมถึงผู้ใช้ไคลเอนต์ Microsoft Navision Application Services (NAS) คุณควรเป็นผู้ใช้ไคลเอนต์เท่านั้นที่เข้าสู่ระบบเมื่อคุณใช้โปรแกรมแก้ไขด่วนนี้

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้

เราขอแนะนําให้ใช้บัญชีผู้ใช้ในหน้าต่าง ล็อกอินของ Windows หรือในหน้าต่าง ล็อกอินของฐานข้อมูล ถูกกําหนด ID บทบาท "SUPER" หากบัญชีผู้ใช้ไม่สามารถกําหนดรหัสบทบาท "SUPER" ได้ คุณต้องตรวจสอบว่าบัญชีผู้ใช้มีสิทธิ์ต่อไปนี้:

  • สิทธิ์ในการปรับเปลี่ยนสําหรับวัตถุที่คุณจะเปลี่ยนแปลง
  • สิทธิ์ Execute สําหรับวัตถุ System Object ID 5210 และสําหรับวัตถุ System Object ID 9015

                
หมายเหตุ คุณไม่มีสิทธิ์ในที่เก็บข้อมูล เว้นแต่คุณจะต้องดําเนินการซ่อมแซมข้อมูล

การเปลี่ยนแปลงโค้ด

หมายเหตุ ทดสอบการแก้ไขรหัสเสมอในสภาพแวดล้อมที่ควบคุมก่อนที่คุณจะนําการแก้ไขไปใช้กับคอมพิวเตอร์การผลิตของคุณ
เมื่อต้องการแก้ไขปัญหานี้ ให้เปลี่ยนรหัสในฟังก์ชัน InsertVAT ใน Codeunit InsertVAT (12) ดังนี้:
รหัสที่มีอยู่ 1

...
VATEntry."Entry No." := NextVATEntryNo;
VATEntry.Type := VATEntry.Type::Sale;
VATEntry."Reverse Sales VAT" := TRUE;

// Delete the following lines.
VATEntry.Base := -(VATEntry.Base + VATEntry."Nondeductible Base");
VATEntry."Nondeductible Base" := 0;
VATEntry.Amount := -(VATEntry.Amount + VATEntry."Nondeductible Amount");
VATEntry."Nondeductible Amount" := 0;
VATEntry."Deductible %" := 100;
VATEntry."Additional-Currency Base" :=
-(VATEntry."Additional-Currency Base" + VATEntry."Add. Curr. Nondeductible Base");
VATEntry."Add. Curr. Nondeductible Base" := 0;
VATEntry."Additional-Currency Amount" :=
-(VATEntry."Additional-Currency Amount" + VATEntry."Add. Curr. Nondeductible Amt.");
VATEntry."Add. Curr. Nondeductible Amt." := 0;
// End of the lines.

IF GenJnlLine."Reverse Sales VAT No." <> '' THEN BEGIN
VATEntry."Document No." := GenJnlLine."Reverse Sales VAT No.";
VATEntry."No. Series" := GenJnlLine."Reverse Sales VAT No. Series";
...

รหัสทดแทน 1

...
VATEntry."Entry No." := NextVATEntryNo;
VATEntry.Type := VATEntry.Type::Sale;
VATEntry."Reverse Sales VAT" := TRUE;

// Add the following lines.
VATEntry.Base := -VATEntry.Base;
VATEntry."Nondeductible Base" := -VATEntry."Nondeductible Base";
VATEntry.Amount := -VATEntry.Amount;
VATEntry."Nondeductible Amount" := -VATEntry."Nondeductible Amount";
VATEntry."Additional-Currency Base" := -VATEntry."Additional-Currency Base";
VATEntry."Add. Curr. Nondeductible Base" := -VATEntry."Add. Curr. Nondeductible Base";
VATEntry."Additional-Currency Amount" := -VATEntry."Additional-Currency Amount";
VATEntry."Add. Curr. Nondeductible Amt." := -VATEntry."Add. Curr. Nondeductible Amt.";
// End of the lines.

IF GenJnlLine."Reverse Sales VAT No." <> '' THEN BEGIN
VATEntry."Document No." := GenJnlLine."Reverse Sales VAT No.";
VATEntry."No. Series" := GenJnlLine."Reverse Sales VAT No. Series";
...

รหัสที่มีอยู่ 2

...
VATPostingSetup."Purchase VAT Account",
VATAmount,SrcCurrVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);

// Delete the following lines.
END;
VATPostingSetup.TESTFIELD("Reverse Chrg. VAT Acc.");
InitGLEntry(
VATPostingSetup."Reverse Chrg. VAT Acc.",
-GLEntryVATAmount,-SrcCurrGLEntryVATAmt,TRUE,TRUE);
InsertGLEntry(TRUE);
IF "Deductible %" <> 100 THEN BEGIN
IF VATPostingSetup."Nondeductible VAT Account" = '' THEN BEGIN
IF "Account Type" <> GenJnlLine."Account Type"::"Fixed Asset" THEN
InitGLEntry(
"Account No.",
NondeducVATAmount,SrcCurrNondeducVATAmount,TRUE,TRUE)
ELSE
InitGLEntry(
FAUndGlAccNo,
NondeducVATAmount,SrcCurrNondeducVATAmount,TRUE,TRUE);
END ELSE BEGIN
VATPostingSetup.TESTFIELD("Nondeductible VAT Account");
InitGLEntry(
VATPostingSetup."Nondeductible VAT Account",
NondeducVATAmount,SrcCurrNondeducVATAmount,TRUE,TRUE);
END;
// End of the lines.

InsertGLEntry(TRUE);
END;
...

รหัสทดแทน 2

...
VATPostingSetup."Purchase VAT Account",
VATAmount,SrcCurrVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);

// Add the following lines.
VATPostingSetup.TESTFIELD("Reverse Chrg. VAT Acc.");
InitGLEntry(
VATPostingSetup."Reverse Chrg. VAT Acc.",
-VATAmount,-SrcCurrVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);
END;
IF "Deductible %" <> 100 THEN BEGIN
IF VATPostingSetup."Nondeductible VAT Account" = '' THEN BEGIN
IF "Account Type" <> GenJnlLine."Account Type"::"Fixed Asset" THEN BEGIN // IT0001
InitGLEntry(
"Account No.",
NondeducVATAmount,SrcCurrNondeducVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);
InitGLEntry(
"Account No.",
-NondeducVATAmount,-SrcCurrNondeducVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);
END ELSE BEGIN
InitGLEntry(
FAUndGlAccNo,
NondeducVATAmount,SrcCurrNondeducVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);
InitGLEntry(
FAUndGlAccNo,
-NondeducVATAmount,-SrcCurrNondeducVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);
END;
END ELSE BEGIN
VATPostingSetup.TESTFIELD("Nondeductible VAT Account");
InitGLEntry(
VATPostingSetup."Nondeductible VAT Account",
NondeducVATAmount,SrcCurrNondeducVATAmount,TRUE,TRUE);
InsertGLEntry(TRUE);
InitGLEntry(
VATPostingSetup."Nondeductible VAT Account",
-NondeducVATAmount,-SrcCurrNondeducVATAmount,TRUE,TRUE);
// End of the lines.

InsertGLEntry(TRUE);
END;
...

รหัสที่มีอยู่ 3

...
InsertGLEntry(TRUE);
END;
END;
END;
VATPostingSetup."VAT Calculation Type"::"Sales Tax":
...

รหัสทดแทน 3

InsertGLEntry(TRUE);
END;

// Add the following line.
END;

END;
END;
VATPostingSetup."VAT Calculation Type"::"Sales Tax":
...

          

ข้อกำหนดเบื้องต้น

คุณต้องติดตั้งผลิตภัณฑ์ใดผลิตภัณฑ์หนึ่งต่อไปนี้เพื่อใช้โปรแกรมแก้ไขด่วนนี้:

  • Microsoft Dynamics NAV 2009 R2 เวอร์ชันภาษาอิตาลี
  • Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) เวอร์ชันภาษาอิตาลี
  • Microsoft Dynamics NAV 5.0 Service Pack 1 (SP1) เวอร์ชันภาษาอิตาลี

ลบข้อมูลออก

คุณไม่สามารถลบโปรแกรมแก้ไขด่วนนี้ได้

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"

หมายเหตุ นี่คือบทความ "เผยแพร่อย่างรวดเร็ว" ที่สร้างขึ้นโดยตรงจากภายในองค์กรสนับสนุนของ Microsoft ข้อมูลที่อยู่ในที่นี้มีให้เพื่อตอบสนองต่อปัญหาที่เกิดขึ้นใหม่ เนื่องจากความเร็วในการทําให้พร้อมใช้งานวัสดุอาจรวมถึงข้อผิดพลาดในการพิมพ์และอาจได้รับการแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ดู ข้อตกลงการใช้งาน สําหรับข้อควรพิจารณาอื่นๆ