ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

บทความนี้นำไปใช้กับ Microsoft Dynamics NAV สำหรับประเทศทั้งหมดและตำแหน่งที่ตั้งภาษาทั้งหมด

อาการ

เมื่อคุณปรับรุ่นจาก Microsoft Dynamics NAV 2009 เพื่อ 2013 NAV Dynamics ล่วง ฟิลด์ VAT ยอดเงินในอินวอยซ์ (LCY) ขาดหายไปในการขายและบรรทัดการซื้อ ถ้ามีการลงรายการบัญชีใบแจ้งหนี้การชำระเงินล่วงหน้าก่อนการปรับปรุง และคุณพยายามที่จะสร้างใบลดหนี้สำหรับใบแจ้งหนี้การชำระเงินล่วงหน้า คุณได้รับข้อความไม่สอดคล้องกันเมื่อคุณลงรายการบัญชีใบลดหนี้การชำระเงินล่วงหน้า

การแก้ปัญหา

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

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

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

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

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

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

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

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

  • สิทธิ์การปรับเปลี่ยนสำหรับออปเจ็กต์ที่คุณจะสามารถเปลี่ยน

  • สิทธิ์ในการดำเนินการ สำหรับออบเจ็กต์5210 รหัสวัตถุของระบบและระบบ 9015 ID ของวัตถุ

    วัตถุ

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

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

หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่คุณนำไปใช้แก้ไขปัญหากับคอมพิวเตอร์ของคุณผลิต

เมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:

  1. เปลี่ยนแปลงรหัสนี้ในฟังก์ชันการอัพเกรดในการปรับรุ่นใหม่รุ่นโค้ดยูนิต (104048) เป็นดังนี้:
    รหัสที่มีอยู่

    ...UpdateItemLedgerEntry(StateIndicator);
    UpdateDOCreditCard(StateIndicator);
    UpdateSalesOrderDate(StateIndicator);
    UpdateOutlookSynchFilter(StateIndicator);
    UpdateOutlookSynchField(StateIndicator);
    DeleteRemovedPermissions(StateIndicator);
    ...

    รหัสแทน

    ...UpdateItemLedgerEntry(StateIndicator);
    UpdateDOCreditCard(StateIndicator);
    UpdateSalesOrderDate(StateIndicator);

    // Add the following lines.
    UpdateSalesLines(StateIndicator);
    UpdatePurchLines(StateIndicator);
    // End of the added lines.

    UpdateOutlookSynchFilter(StateIndicator);
    UpdateOutlookSynchField(StateIndicator);
    DeleteRemovedPermissions(StateIndicator);
    ...
  2. เพิ่มฟังก์ชันต่อไปนี้:

    LOCAL PROCEDURE UpdateSalesLines@62(VAR StateIndicator@1000 : Record 104037);VAR
    SalesLine@1001 : Record 37;
    LastDocumentNo@1002 : Code[20];
    PrepmtInvReminderAmount@1003 : Decimal;
    BEGIN
    WITH SalesLine DO
    IF StateIndicator.UpdateTable(TABLENAME) THEN BEGIN
    TimeLog.TimeLogInsert(TimeLog,TABLENAME,TRUE);
    SETCURRENTKEY("Document Type","Document No.","Line No.");
    IF FINDSET THEN
    REPEAT
    StateIndicator.Update;
    IF ("Document Type" = "Document Type"::Order) AND ("Prepayment Amount" <> "Prepmt. Amt. Incl. VAT") THEN BEGIN
    IF "Document No." <> LastDocumentNo THEN BEGIN
    LastDocumentNo := "Document No.";
    PrepmtInvReminderAmount := 0;
    END;
    IF ("Prepmt. Amount Inv. (LCY)" <> 0) AND ("Prepmt. VAT Amount Inv. (LCY)" = 0) THEN BEGIN
    "Prepmt. VAT Amount Inv. (LCY)" :=
    CalcRndedAmount("Prepmt. Amount Inv. (LCY)","Prepayment VAT %" / 100,PrepmtInvReminderAmount);
    MODIFY;
    END;
    END;
    UNTIL NEXT = 0;
    TimeLog.TimeLogInsert(TimeLog,TABLENAME,FALSE);
    StateIndicator.EndUpdateTable(TABLENAME);
    END;

    LOCAL PROCEDURE UpdatePurchLines@63(VAR StateIndicator@1000 : Record 104037);
    VAR
    PurchaseLine@1001 : Record 39;
    LastDocumentNo@1002 : Code[20];
    PrepmtInvReminderAmount@1003 : Decimal;
    BEGIN
    WITH PurchaseLine DO
    IF StateIndicator.UpdateTable(TABLENAME) THEN BEGIN
    TimeLog.TimeLogInsert(TimeLog,TABLENAME,TRUE);
    IF FINDSET THEN
    REPEAT
    StateIndicator.Update;
    IF ("Document Type" = "Document Type"::Order) AND ("Prepayment Amount" <> "Prepmt. Amt. Incl. VAT") THEN BEGIN
    IF "Document No." <> LastDocumentNo THEN BEGIN
    LastDocumentNo := "Document No.";
    PrepmtInvReminderAmount := 0;
    END;
    IF ("Prepmt. Amount Inv. (LCY)" <> 0) AND ("Prepmt. VAT Amount Inv. (LCY)" = 0) THEN BEGIN
    "Prepmt. VAT Amount Inv. (LCY)" :=
    CalcRndedAmount("Prepmt. Amount Inv. (LCY)","Prepayment VAT %" / 100,PrepmtInvReminderAmount);
    MODIFY;
    END;
    END;
    UNTIL NEXT = 0;
    TimeLog.TimeLogInsert(TimeLog,TABLENAME,FALSE);
    StateIndicator.EndUpdateTable(TABLENAME);
    END;

    LOCAL PROCEDURE CalcRndedAmount@64(LineAmount@1000 : Decimal;Ratio@1001 : Decimal;VAR Reminder@1002 : Decimal) RndedAmount : Decimal;
    VAR
    Amount@1003 : Decimal;
    BEGIN
    Amount := Reminder + LineAmount * Ratio;
    RndedAmount := ROUND(Amount);
    Reminder := Amount - RndedAmount;
    END;


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

คุณต้องมี Microsoft Dynamics NAV 2013 ติดตั้งอยู่เพื่อใช้โปรแกรมแก้ไขด่วนนี้

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

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

สถานะ

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

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

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

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

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

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

ขอบคุณสำหรับคำติชมของคุณ!

×