ข้อความแสดงข้อผิดพลาดเมื่อคุณลงรายการบัญชีบันทึกสินเชื่อการซื้อที่ใช้มิติใน SP3 4.0 การนำทาง Dynamics Microsoft รุ่นโปรตุเกส: "ธุรกรรมไม่สามารถเสร็จสมบูรณ์ได้เนื่องจากจะทำให้ไม่สอดคล้องกันในตารางรายการ G/L"


บทความนี้นำไปใช้กับ Microsoft Dynamics NAV สำหรับระบบภาษาโปรตุเกส (pt)

อาการ


ในรุ่นโปรตุเกสของ Microsoft Dynamics NAV 4.0 Service Pack 3 (SP3), สมมติว่า คุณตั้งค่าชนิดการคำนวณ VAT เป็น "VAT ปกติ" และตั้งค่า VAT ภาษีมูลค่าเพิ่ม (VAT) การตั้งค่าการลงรายการบัญชีแล้ว เมื่อคุณลงรายการบัญชีบันทึกสินเชื่อการซื้อที่ใช้มิติ คุณได้รับข้อความแสดงข้อผิดพลาดที่สอดคล้องกันดังต่อไปนี้:
ธุรกรรมไม่สามารถเสร็จสมบูรณ์ได้เนื่องจากจะทำให้ไม่สอดคล้องกันในตารางรายการ G/L
ตรวจสอบสถานที่ และลักษณะให้ใช้ฟังก์ชันสอดคล้องกันในธุรกรรมเพื่อค้นหาสาเหตุของข้อผิดพลาด
ติดต่อผู้ดูแลระบบของคุณ
ตารางสามารถทำเครื่องหมายเป็นไม่สอดคล้องกันระหว่างงานที่ครอบคลุม เช่นการลงรายการบัญชี ซึ่งป้องกันข้อมูลจากการปรับปรุงอย่างไม่ถูกต้อง

การแก้ปัญหา


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

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

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



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

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

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

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมีสิทธิ์การใช้งานสำหรับนักพัฒนา

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


หมายเหตุ คุณไม่จำเป็นต้องมีสิทธิ์ไปยังร้านค้าข้อมูลยกเว้นว่าคุณจำเป็นต้องซ่อมแซมข้อมูล

การเปลี่ยนแปลงรหัส

หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่คุณนำไปใช้แก้ไขปัญหากับคอมพิวเตอร์ของคุณผลิต
เมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:
  1. เพิ่มตัวแปรส่วนกลางต่อไปนี้ในการทั่วไปงานสมุดรายวัน-ลงรายการบัญชีบรรทัดโค้ดยูนิต (12):
    • ชื่อ: TempVATAmount
    • ชนิดข้อมูล: เลขฐานสิบ

  2. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันInitVatในแบบทั่วไปงานสมุดรายวัน-ลงรายการบัญชีบรรทัดโค้ดยูนิต (12) ดัง:
    เพิ่มตัวแปรท้องถิ่นดังต่อไปนี้:
    • ชื่อ: TempVATDAmount
    • ชนิดข้อมูล: เลขฐานสิบ
    รหัส Exsiting 1
    ...                     GLEntry.Amount := "VAT Base Amount (LCY)" + "VAT Difference";
    GLEntry."VAT Amount" := "Amount (LCY)" - GLEntry.Amount;

    GLEntry.Amount :=
    GLEntry.Amount + ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %")

    + "ND Difference" - "VAT Difference";
    ...

    รหัสแทนที่ 1
    ...                      GLEntry.Amount := "VAT Base Amount (LCY)" + "VAT Difference";
    GLEntry."VAT Amount" := "Amount (LCY)" - GLEntry.Amount;

    TempVATDAmount := ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %");
    GLEntry.Amount :=
    GLEntry.Amount + GLEntry."VAT Amount" - TempVATDAmount

    + "ND Difference" - "VAT Difference";
    ...


    รหัส Exsiting 2
    ...                     + "ND Difference" - "VAT Difference";  

    GLEntry."VAT Amount" :=
    GLEntry."VAT Amount" - ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %")

    + "VAT Difference";

    GLEntry."Additional-Currency Amount" := "Source Curr. VAT Base Amount";
    ...

    รหัสแทนที่ 2
    ...                                 + "ND Difference" - "VAT Difference";

    GLEntry."VAT Amount" := TempVATDAmount

    + "VAT Difference";

    GLEntry."Additional-Currency Amount" := "Source Curr. VAT Base Amount";
    ...


    รหัส Exsiting 3
    ...     //--PT----
    IF VATPostingSetup."VAT D. %" > 0 THEN BEGIN


    GLEntry."VAT Amount" := ROUND(GLEntry.Amount * VATPostingSetup."VAT D. %" / 100);


    AddCurrGLEntryVATAmt :=
    ROUND(
    GLEntry."Additional-Currency Amount" * VATPostingSetup."VAT D. %" / 100,
    ...

    รหัสแทนที่ 3
    ...    //--PT----
    IF VATPostingSetup."VAT D. %" > 0 THEN BEGIN


    TempVATAmount := ROUND(GLEntry.Amount * VATPostingSetup."VAT %" / 100);
    GLEntry."VAT Amount" := ROUND(GLEntry.Amount * VATPostingSetup."VAT D. %" / 100);
    TempVATDAmount := GLEntry."VAT Amount";


    AddCurrGLEntryVATAmt :=
    ROUND(
    GLEntry."Additional-Currency Amount" * VATPostingSetup."VAT D. %" / 100,
    ...


    รหัส Exsiting 4
    ...                                     ROUND(
    GLEntry."Additional-Currency Amount" * VATPostingSetup."VAT D. %" / 100,
    AddCurrency."Amount Rounding Precision");
    END ELSE BEGIN
    GLEntry."VAT Amount" := ROUND(GLEntry.Amount * VATPostingSetup."VAT N.D. %" / 100);
    AddCurrGLEntryVATAmt :=
    ...

    รหัสแทนที่ 4
    ...                                    ROUND(
    GLEntry."Additional-Currency Amount" * VATPostingSetup."VAT D. %" / 100,
    AddCurrency."Amount Rounding Precision");

    // Add the following line.
    GLEntry.Amount := ROUND(GLEntry.Amount + TempVATAmount - TempVATDAmount);
    // End of the added line.

    END ELSE BEGIN
    GLEntry."VAT Amount" := ROUND(GLEntry.Amount * VATPostingSetup."VAT N.D. %" / 100);
    AddCurrGLEntryVATAmt :=
    ...


    รหัส Exsiting 5
    ...                                      GLEntry."Additional-Currency Amount" * VATPostingSetup."VAT N.D. %" / 100,
    AddCurrency."Amount Rounding Precision");
    GenJnlLine."UE Aquisition Not Accep." := TRUE;
    END;
    ...

    รหัสแทนที่ 5
    ...                                     GLEntry."Additional-Currency Amount" * VATPostingSetup."VAT N.D. %" / 100,
    AddCurrency."Amount Rounding Precision");
    GenJnlLine."UE Aquisition Not Accep." := TRUE;

    // Add the following lines.
    GLEntry.Amount :=
    ROUND(
    GLEntry.Amount * (1 + VATPostingSetup."VAT N.D. %" / 100));
    // End of the added lines.

    END;
    ...


    รหัส Exsiting 6
    ...                              END;

    GLEntry.Amount :=
    ROUND(
    GLEntry.Amount * (1 + VATPostingSetup."VAT N.D. %" / 100));

    GLEntry."Additional-Currency Amount" :=
    ROUND(
    GLEntry."Additional-Currency Amount" * (1 + VATPostingSetup."VAT N.D. %" / 100));
    ...

    รหัสแทน 6
    ...                                  END;


    GLEntry."Additional-Currency Amount" :=
    ROUND(
    GLEntry."Additional-Currency Amount" * (1 + VATPostingSetup."VAT N.D. %" / 100));
    ...


    รหัส Exsiting 7
    ...                    GLEntry."VAT Amount" := "VAT Amount (LCY)";

    //--PT----

    IF VATPostingSetup."VAT %"<>0 THEN BEGIN
    GLEntry.Amount := GLEntry.Amount +
    (GLEntry."VAT Amount" - ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")) +
    "ND Difference";


    IF VATPostingSetup."VAT Calculation Type" = VATPostingSetup."VAT Calculation Type"::"Reverse Charge VAT" THEN BEGIN
    ...

    รหัสแทนที่ 7
    ...                    GLEntry."VAT Amount" := "VAT Amount (LCY)";

    //--PT----

    TempVATAmount := GLEntry."VAT Amount";
    IF VATPostingSetup."VAT %" <>0 THEN BEGIN
    TempVATDAmount := ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %");
    GLEntry.Amount := GLEntry.Amount + GLEntry."VAT Amount" - TempVATDAmount + "ND Difference";


    IF VATPostingSetup."VAT Calculation Type" = VATPostingSetup."VAT Calculation Type"::"Reverse Charge VAT" THEN BEGIN
    ...


    รหัส Exsiting 8
    ...   
    IF VATPostingSetup."VAT Calculation Type" = VATPostingSetup."VAT Calculation Type"::"Reverse Charge VAT" THEN BEGIN

    IF "ND Difference" > 0 THEN BEGIN
    IF VATPostingSetup."VAT D. %" > 0 THEN
    GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %") - "ND Difference"
    ELSE BEGIN
    GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %") - "ND Difference";
    "UE Aquisition Not Accep." := TRUE;
    END;
    END ELSE BEGIN
    IF VATPostingSetup."VAT D. %" > 0 THEN
    GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")
    ELSE BEGIN
    GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %");
    "UE Aquisition Not Accep." := TRUE;
    END;
    END;

    END ELSE BEGIN
    IF "ND Difference" > 0 THEN
    IF VATPostingSetup."VAT D. %" > 0 THEN
    ...

    รหัสแทนที่ 8
    ...  
    IF VATPostingSetup."VAT Calculation Type" = VATPostingSetup."VAT Calculation Type"::"Reverse Charge VAT" THEN BEGIN

    IF VATPostingSetup."VAT D. %" > 0 THEN
    GLEntry."VAT Amount" := TempVATDAmount
    ELSE
    "UE Aquisition Not Accep." := TRUE;
    IF "ND Difference" > 0 THEN
    GLEntry."VAT Amount" := GLEntry."VAT Amount" - "ND Difference";

    END ELSE BEGIN
    IF "ND Difference" > 0 THEN
    IF VATPostingSetup."VAT D. %" > 0 THEN
    ...


    รหัส Exsiting 9
    ...                           GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")
    ELSE

    GLEntry."VAT Amount" :=
    GLEntry."VAT Amount" - ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT N.D. %" / VATPostingSetup."VAT %")
    + "VAT Difference";

    END;
    END;
    ...

    รหัสแทนที่ 9
    ...                           GLEntry."VAT Amount" :=
    ROUND(GLEntry."VAT Amount" * VATPostingSetup."VAT D. %" / VATPostingSetup."VAT %")
    ELSE

    GLEntry."VAT Amount" := TempVATDAmount + "VAT Difference";

    END;
    END;
    ...

  3. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันInsertVATในแบบทั่วไปงานสมุดรายวัน-ลงรายการบัญชีบรรทัดโค้ดยูนิต (12) ดัง:
    รหัส Exsiting
    ...                           InitGLEntry(
    VATPostingSetup."Return VAT account (Sales)",
    // -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,

    ROUND(-GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100),

    // -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,
    ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),
    TRUE,TRUE);
    ...

    รหัสแทน
    ...                            InitGLEntry(
    VATPostingSetup."Return VAT account (Sales)",
    // -GLEntryVATAmount - VATBase * VATPostingSetup."VAT N.D. %" / 100,

    -TempVATAmount,

    // -SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100,
    ROUND(-SrcCurrGLEntryVATAmt - SrcCurrVATBase * VATPostingSetup."VAT N.D. %" / 100),
    TRUE,TRUE);
    ...




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

คุณต้องมีรุ่นโปรตุเกสของ Microsoft Dynamics NAV 4.0 Service Pack 3 (SP3) ติดตั้งไว้เพื่อใช้โปรแกรมแก้ไขด่วนนี้

ข้อมูลการเอาออก

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

สถานะ


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