วันที่เราเลิก Post GL
- Sathit Jittanupat
- 4 วันที่ผ่านมา
- ยาว 1 นาที

ปัญหาไม่ได้อยู่ที่การลงบัญชี แต่อยู่ที่การเก็บความจริงไว้สองแห่ง
นักบัญชีที่เคยวางระบบ ERP น่าจะคุ้นเคยกับคำว่า Post GL เป็นอย่างดี
ฝ่ายขายออกใบกำกับสินค้า
ฝ่ายจัดซื้อบันทึกบิล
ฝ่ายการเงินรับชำระหนี้
จากนั้นระบบจึงนำข้อมูลเหล่านั้นไปสร้างรายการบัญชีแยกประเภทอีกครั้ง
ทุกอย่างดูเป็นเรื่องปกติ
จนกระทั่งวันหนึ่ง ผมเริ่มสงสัยว่า
เรากำลังแก้ปัญหาที่ถูกต้องอยู่หรือเปล่า
ลองคิดดู
เมื่อมีการขายสินค้าเกิดขึ้น
ในโลกของธุรกิจ เราเรียกมันว่า "ใบส่งสินค้า"
แต่ในโลกของบัญชี เราเรียกมันว่า
เดบิตลูกหนี้
เครดิตรายได้
เครดิตภาษีขาย
คำถามคือ
มันเป็นคนละเหตุการณ์กันจริงหรือ
หรือเรากำลังอธิบายเหตุการณ์เดียวกันด้วยคนละภาษา
ถ้าเป็นอย่างหลัง
ทำไมเราต้องเก็บข้อมูลไว้สองชุด
แล้วคอยสร้างกระบวนการ Post เพื่อเชื่อมมันเข้าหากัน
คำถามนี้เกิดขึ้นระหว่างการพัฒนา ERP รุ่นใหม่
ก่อนหน้านั้น เราใช้ระบบที่มีการ Post GL ตามแนวทางที่ ERP ส่วนใหญ่ทำกัน
และพบปัญหาเดิมซ้ำแล้วซ้ำเล่า
เอกสารต้นทางถูกแก้ไขย้อนหลัง
มีการยกเลิกบิล
มีการเปลี่ยนภาษี
มีการเปลี่ยนรายละเอียดการรับชำระ
แล้วทุกคนก็กลับมาตามหาคำตอบเดิม
"GL ยังตรงกับเอกสารอยู่หรือไม่"
ยิ่งเอกสารมีจำนวนมากเท่าไร
ต้นทุนในการพิสูจน์ว่าข้อมูลสองชุดยังตรงกันอยู่ ก็ยิ่งสูงขึ้นเท่านั้น
บางองค์กรถึงกับมีรายงานสำหรับตรวจสอบว่า
ข้อมูลฝั่งเอกสาร
และข้อมูลฝั่งบัญชี
ยังตรงกันอยู่หรือไม่
ซึ่งถ้ามองอีกมุมหนึ่ง
นี่เป็นเรื่องแปลกไม่น้อย
เพราะรายงานดังกล่าวมีอยู่เพียงเพื่อพิสูจน์ว่า
"ความจริงสองชุด ยังบังเอิญตรงกันอยู่"
เมื่อเปลี่ยนมาใช้ฐานข้อมูลแบบ Document Database
จึงเกิดความคิดใหม่ขึ้น
ถ้าบิลขายหนึ่งใบ คือเหตุการณ์หนึ่งเหตุการณ์
ทำไมเราไม่เก็บทุกมุมมองของเหตุการณ์นั้นไว้ในเอกสารเดียวกันเลย
ทั้งข้อมูลธุรกิจ
ข้อมูลบัญชี
และหลักฐานประกอบ

แนวคิดนี้กลายมาเป็นกลไกที่เราเรียกว่า DocCompile
เอกสารหนึ่งใบไม่ได้เก็บเพียงรายการสินค้า
แต่เก็บข้อมูลหลายมิติพร้อมกัน เช่น
ritems สำหรับรายการขายหรือรับ
pitems สำหรับรายการซื้อหรือจ่าย
gitems สำหรับรายการบัญชีเดบิตเครดิต
images สำหรับเอกสารแนบและหลักฐาน
ทั้งหมดอยู่ภายในเอกสารเดียวกัน
ไม่ใช่เอกสารหนึ่งชุด
และ GL อีกหนึ่งชุด
แต่เป็นข้อมูลชุดเดียวที่มองได้หลายมุม

ผลที่ตามมาคือ
เมื่อแก้ไขเอกสาร
รายการบัญชีก็เปลี่ยนตาม
เมื่อยกเลิกเอกสาร
ผลกระทบทางบัญชีก็หายไปพร้อมกัน
ไม่มีคำถามว่า Post ใหม่หรือยัง
ไม่มีคำถามว่า GL ตรงกับเอกสารหรือไม่
เพราะทั้งสองอย่างไม่เคยแยกจากกันตั้งแต่ต้น
แน่นอนว่าระบบยังต้องตอบคำถามสำคัญ
รายการนี้ควรลงบัญชีอะไร
คำตอบของ DocCompile คือการสร้างภาษากลางขึ้นมาก่อน
แทนที่จะรีบผูกกับผังบัญชีจริง
ระบบจะเริ่มต้นด้วย Pseudo Account
เช่น
*DEFERRED
ยอดเงินที่รอการอธิบาย
*VAT
ยอดภาษีมูลค่าเพิ่ม
*DEFERRED-VAT
ภาษีที่ยังไม่เป็นใบกำกับภาษี
*UNPAID
ยอดที่ทำให้รายการสมดุล
Pseudo Account เหล่านี้ยังไม่ใช่บัญชีจริง
แต่เป็นความหมายของธุรกรรม
หลังจากนั้นจึงใช้ Alias แปลความหมายต่อ
เช่น
สำหรับบิลเงินสด
*UNPAID
อาจหมายถึงเงินสด
แต่สำหรับใบส่งสินค้าขายเครดิต
Pseudo Account ตัวเดียวกัน
อาจหมายถึงลูกหนี้การค้า
ความหมายไม่ได้ถูกกำหนดจากรหัสบัญชี
แต่ถูกกำหนดจากบริบทของเอกสาร
Alias สามารถกำหนดได้สามระดับ
หมวดบิล
ประเภทเอกสาร
ทั่วไป
และสามารถเรียกซ้อนกันแบบ Recursive ได้
ทำให้การวางระบบมีความยืดหยุ่นสูง
ผู้วางระบบสามารถสร้างภาษากลางของธุรกิจขึ้นมาก่อน
แล้วค่อยแปลเป็นผังบัญชีจริงภายหลัง
ข้อดีที่ผมชอบเป็นพิเศษคือ
เมื่อ Alias ยังไม่สมบูรณ์
Pseudo Account จะยังปรากฏอยู่ใน GL
มันไม่หายไปเงียบ ๆ
ไม่ถูกบังคับให้เดาผิด
แต่แสดงตัวออกมาอย่างตรงไปตรงมา
ราวกับกำลังบอกนักบัญชีว่า
"ผมรู้ว่ามีเหตุการณ์นี้เกิดขึ้น แต่คุณยังไม่ได้บอกว่าควรตีความมันอย่างไร"
ซึ่งในความเห็นของผม
นี่เป็นพฤติกรรมที่ซื่อสัตย์กว่าการพยายามลงบัญชีผิดบัญชีเพียงเพื่อให้ระบบเดินต่อได้
สิ่งที่น่าสนใจที่สุดของ DocCompile ไม่ใช่เรื่องเทคนิค
ไม่ใช่เรื่อง Alias
ไม่ใช่เรื่อง Recursive Mapping
แต่เป็นคำถามที่มันโยนกลับมาหาเรา
ตลอดหลายสิบปีที่ผ่านมา
ERP จำนวนมากถูกออกแบบโดยมีสมมติฐานว่า
ธุรกิจสร้างข้อมูลชุดหนึ่ง
บัญชีสร้างข้อมูลอีกชุดหนึ่ง
และต้องมีขั้นตอน Post เพื่อเชื่อมทั้งสองโลกเข้าหากัน
แต่ DocCompile เริ่มต้นจากสมมติฐานตรงกันข้าม
มันมองว่าการขายหนึ่งครั้ง
การซื้อหนึ่งครั้ง
หรือการจ่ายเงินหนึ่งครั้ง
คือ Business Event เพียงเหตุการณ์เดียว
บัญชีแยกประเภทเป็นเพียงหนึ่งในหลายมุมมองของเหตุการณ์นั้น
ไม่ต่างจากรายงานขาย
รายงานสต็อก
หรือรายงานลูกหนี้
ดังนั้นวันที่เราเลิก Post GL
จึงไม่ใช่วันที่เราเปลี่ยนวิธีลงบัญชี
แต่เป็นวันที่เราเลิกเชื่อว่า
เอกสารธุรกิจ
และบัญชีแยกประเภท
คือความจริงคนละชุดกัน



ความคิดเห็น