ผมเคยเล่าถึงไอเดีย Low Code Accounting มีข้อสมมติฐานว่าการลงบัญชีแบบ double entry นั้นต้องใช้รหัสบัญชี ไม่สะดวกสำหรับนักบัญชีที่ทำงานให้กิจการหลายแห่งในเวลาเดียวกัน เพราะผังบัญชีจะมีรหัสบัญชีบางส่วนที่ไม่เหมือนกัน จึงตั้งคำถามว่า เป็นไปได้ไหมที่การบันทึกบัญชีทำโดยไม่ต้องผูกกับรหัสบัญชี
จากที่สังเกตเห็นการทำงานในสำนักงานบัญชี เมื่อขึ้นงานบริษัทใหม่จะเลือกผังบัญชีตั้งต้นจากกิจการที่คล้ายคลึงกันมาใช้ หรือผังต้นแบบที่มีโครงรหัสบัญชีคร่าว ๆ แล้วเติมรหัสเพิ่มตามต้องการ แสดงว่าในการบันทึกบัญชีมีโอกาสที่ผังบัญชีของแต่ละที่ตั้งรหัสบัญชีที่งอกเพิ่มมาเป็นรหัสเหมือนกัน แต่ความหมายต่างกัน เช่น การแจกแจงค่าใช้จ่าย และ ค่าใช้จ่ายค้างจ่าย ที่การแยกย่อยและลำดับของเลขแล้วแต่ผังนั้น ๆ รวมทั้งกรณีบัญชีเงินฝากธนาคาร ที่แต่ละกิจการมีไม่เหมือนกันด้วย
ย้อนกลับไปสมัยก่อน แบบฟอร์มใบสำคัญต่าง ๆ ที่เป็นเอกสารทางบัญชีจะมีสองท่อน ด้านบนสำหรับเขียนรายละเอียดรับหรือจ่าย สำหรับคนที่ไม่ใช่นักบัญชี ส่วนด้านล่างจะเป็นส่วนที่เอาไว้เขียนวิธีการลงบัญชีคู่ ว่าต้องเดบิต หรือเครดิต รหัสบัญชีอะไรบ้าง คนที่เป็นเสมียน (Book Keeper) ทำหน้าที่เขียนรายการท่อนบน แล้วนักบัญชี (Accountant) เขียนวิธีลงบัญชีไว้ในตารางด้านล่าง เพื่อให้เสมียนเอาไปบันทึกลงสมุดแยกประเภทอีกทีหนึ่ง
ปัจจุบันเมื่อมีโปรแกรมบัญชีใช้งานกันแพร่หลาย เชื่อว่าไม่มีนักบัญชีคนไหนที่ไม่ใช้คอมพิวเตอร์ กระบวนการบันทึกบัญชีจึงเปลี่ยนจากเขียนลงใบสำคัญก่อน เป็นอินพุทเข้าคอมพิวเตอร์ให้นักบัญชีตรวจได้เลย แล้วค่อยพิมพ์ออกมาเป็นใบสำคัญ แบบฟอร์มใบสำคัญจึงไม่จำเป็นต้องมีท่อนการลงบัญชีให้สั่งงาน การแยกคนทำงานบัญชีเป็น Book Keeper กับ Accountant เริ่มไม่จำเป็น เพราะมีคอมพิวเตอร์เข้ามาช่วย Post รายการลงบัญชีอัตโนมัติ แล้วสรุปออกมาเป็นแยกประเภทได้เลย งานที่ไม่ใหญ่มาก นักบัญชีคนเดียวสามารถทำจนออกมาเป็นงบได้เลย
แนวทางของ Low Code Accounting แยกงานเป็น 2 ขั้นตอน ส่วนอินพุทข้อมูลของเอกสารชั้นต้น เทียบได้กับรายการท่อนบนของใบสำคัญที่สามารถทำโดยเสมียนที่ไม่ต้องรู้ว่าลงบัญชีอย่างไร หลังจากนั้นนักบัญชีจึงเข้ามาตรวจแล้วใส่วิธีลงบัญชีให้ แต่คราวนี้เป็นการทำงานในคอมพิวเตอร์ จึงไม่ต้องให้ใครมาบันทึกเข้าแยกประเภทอีก เพราะคอมพิวเตอร์สามารถสร้างรายการลงบัญชีอัตโนมัติ
ข้อแตกต่างอยู่ตรงที่ นักบัญชีไม่จำเป็นต้องบอกละเอียดระดับรหัสบัญชี และเดบิต/เครดิตทุกรายการ สามารถใช้คำอธิบายย่อ ๆ เหมือนกับแนะนำนักบัญชีรุ่นน้อง ให้หลักการด้วยชื่อบัญชี โดยไม่ต้องรู้ว่าเป็นรหัสบัญชีอะไร
ผมเรียกคำอธิบายย่อ ๆ ที่บอกให้คอมพิวเตอร์ตีความเพื่อลงบัญชีว่า "Prompt" เหมือนกับคำอธิบายเพื่อบอกให้ AI Midjourney วาดรูป เราสามารถพัฒนาให้คอมพิวเตอร์เข้าใจ Prompt และสร้างรายการลงบัญชีที่ถูกต้องได้แค่ไหน เป็นเรื่องที่ต้องพิสูจน์
ต่อไปนี้เป็นสเปคคร่าว ๆ สำหรับต้นแบบตีความเพื่อลงบัญชีแบบ Low Code ทำออกมาแบบง่าย ๆ เพื่อพิสูจน์หลักการ (Proof of Concept) ยังไม่ถึงระดับ AI และเป็นตัวอย่างให้นักบัญชีได้ทดสอบ
รูปแบบ (format)
คำอธิบายใช้สัญญลักษณ์ "/" เป็นตัวแบ่ง ส่วนแรกบอกว่า เรื่องเกี่ยวกับอะไร ส่วนที่สองบอกว่า มีผลทำให้ได้หรือเสียอะไร เช่น "รายได้จากการขาย/เงินสด"
รูปแบบย่อ (short format)
ไม่ต้องมีสัญญลักษณ์ "/" บอกแค่ว่าเป็นเรื่องเกี่ยวกับอะไร โดยละส่วนที่สองไว้ โปรแกรมจะตีความว่าเป็น "/เงินสด"
คำอัตโนมัติ (default prompt)
กรณีไม่มีคำอธิบาย โปรแกรมจะกำหนดค่าอัตโนมัติ ตามประเภทของเอกสารดังนี้
"รายได้/เงินสด" (ใบกำกับภาษีขาย, ขายอื่น)
"รับชำระจากลูกหนี้/เงินสด" (รับ)
"ซื้อ/เงินสด" (ใบกำกับภาษีซื้อ, ซื้ออื่น)
"ค่าใช้จ่าย/เงินสด" (จ่าย)
"บัญชีย่อย" และเคาะวรรค
บัญชีย่อย คือ คำอธิบายที่อยู่หลังเคาะวรรคแรก หรือ คำอธิบายที่โปรแกรมไม่สามารถตีความ เช่น "รายได้ ค่าบริการ/ลูกหนี้", "ค่าทำความสะอาด/เงินสด"
ข้อความ "เรื่อง" กับการลงบัญชี
ขึ้นต้นด้วย "ทรัพย์สิน.." หรือ "ซื้อทรัพย์สิน.." หรือ "ขายทรัพย์สิน.." ลงบัญชี ทรัพย์สินถาวร
"..ต้นทุน.." อยู่ภายในข้อความ ลงบัญชี ซื้อ
"..มัดจำ.." หรือ "..ล่วงหน้า.." อยู่ภายในข้อความ ลงบัญชี เงินรับล่วงหน้า (ใบกำกับภาษีขาย, ขาย, รับ) หรือ ลงบัญชี เงินจ่ายล่วงหน้า (ใบกำกับภาษีซื้อ, ซื้ออื่น, จ่าย)
"..ค้างรับ.." อยู่ภายในข้อความ ลงบัญชี รายได้ค้างรับ
"..เจ้าหนี้.." อยู่ภายในข้อความ ลงบัญชี เจ้าหนี้
"..ลูกหนี้.." อยู่ภายในข้อความ ลงบัญชี ลูกหนี้
ขึ้นต้นด้วย "ซื้อ.." ลงบัญชี ซื้อ
ขึ้นต้นด้วย "จ่าย.." ลงบัญชี ค่าใช้จ่ายค้างจ่าย
ขึ้นต้นด้วย "รับ.." ลงบัญชีลูกหนี้ หรือรายได้ค้างรับ ถ้าระบุบัญชีย่อย
ข้อความที่ไม่สามารถตีความได้ ขึ่นอยู่กับประเภทเอกสาร
ข้อความใด ๆ ลงบัญชี รายได้ (ภาษีขาย, ขายอื่น, รับ)
ข้อความใด ๆ ลงบัญชี ค่าใช้จ่าย (ภาษีซื้อ, ซื้ออื่น, จ่าย)
ข้อความ "สิ่งที่ได้หรือเสีย" กับการลงบัญชี
"/เงินสด" ลงบัญชี เงินสด
"/บัตรเครดิต" ลงบัญชี บัตรเครดิต
"/เข้าบัญชี" หรือ "/หักบัญชี" หรือ "/เงินโอน" ลงบัญชี เงินฝากธนาคาร สามารถเคาะวรรค ระบุชื่อย่อและเลขบัญชีธนาคาร เป็นบัญชีย่อย
"/เช็ค" ลงบัญชี เช็ครับ หรือ เช็คจ่าย ขึ้นอยู่กับประเภทเอกสาร
"/..ลูกหนี้.." ลงบัญชี ลูกหนี้
"/..เจ้าหนี้.." ลงบัญชี เจ้าหนี้
"/..มัดจำ.." หรือ "/..ล่วงหน้า.." ลงบัญชี เงินรับล่วงหน้า หรือ จ่ายล่วงหน้า ขึ้นอยู่กับประเภทเอกสาร
ผังบัญชีกลาง
ผลลัพธ์ของการตีความ จะกลายมาเป็นรายการลงบัญชีที่มีเดบิต และเครดิต โดยใช้ผังบัญชีกลาง ซึ่งมีแต่โครงแยกประเภทเป็นกลุ่มของหัวบัญชีคร่าว ๆ ใช้เหมือนกันทุกกิจการ (Generic Account) แต่การแยกคุมยอดบัญชีเพื่อแยกประเภทในระดับละเอียด ไม่ใช้วิธีเพิ่มรหัสใหม่เข้าไปในผังบัญชี เหมือนกับวิธีสร้างผังบัญชีที่นิยมทำกัน เพราะโปรแกรมสามารถสรุปงบ และแยกยอดตามบัญชีย่อยที่เป็นข้อความได้
ยกตัวอย่าง หัวบัญชีค่าใช้จ่าย ผังบัญชีกลางใช้รหัสหัวบัญชี "EXPENSE" สำหรับค่าใช้จ่ายทุกประเภท และ "BANK" สำหรับเงินฝากธนาคาร (เจตนาใช้รหัสหัวบัญชีเป็นตัวอักษร เพื่อแยกให้เห็นว่าแตกต่างจากตัวเลขรหัสบัญชีที่นักบัญชีคุ้นเคย)
เมื่อใช้คำอธิบาย "ค่าไฟฟ้า/หักบัญชี SCB SA-123"
จะได้รายการลงบัญชีเป็น "EXPENSE : ค่าไฟฟ้า" กับ "BANK : SCB SA-123"
ผังบัญชีสำหรับผู้สอบ
จากผังบัญชีกลาง ที่มีบัญชีย่อยเป็นข้อความ เราสามารถสร้างแผนผังเพื่อให้โปรแกรมแปลเป็นรหัสบัญชีเป็นตัวเลขตามต้องการ เพื่อให้ออกงบตามผังบัญชีนักบัญชีทั่วไปและผู้สอบบัญชีคุ้นเคย
สักวันหนึ่ง..
เมื่อนักบัญชียอมรับการปิดงบด้วยผังบัญชีกลางและบัญชีย่อย การออกแบบผังบัญชีด้วยรหัสบัญชีอาจไม่จำเป็นอีกต่อไป เหมือนฟอร์มใบสำคัญที่ไม่ต้องมีท่อนลงบัญชีให้นักบัญชีเขียนต่อท้าย
Comments