Một bạn kế toán mô tả tình cảnh của mình trên cộng đồng Odoo Việt Nam, gọn và đau:
Khoản trả trước khi ghi nhận thì không thể hiện trên bill, muốn xem phải vào sổ chi tiết. Từ phiên bản 18, 19 trở đi báo cáo equity không tách vốn chủ sở hữu ra riêng mà trộn chung với lợi nhuận chưa phân phối. Em tự bỏ tiền liên hệ 4, 5 developer khắp mọi miền mà không ai sửa được dứt điểm. Thành ra giờ vừa làm trên Odoo vừa làm Excel, một việc làm hai ba lần.
Phe bênh Odoo trong thread nói đây là lỗi bên triển khai. Phe kia nói Odoo dở.
Cả hai đều nhìn sai chỗ. Đây không phải bug, và cũng không phải năng lực của một developer cụ thể. Đây là chuyện thiếu nguyên một lớp phần mềm — và khi thiếu cả một lớp thì thuê thêm người thứ sáu cũng vậy thôi.
Câu trả lời ngắn
Odoo được xây cho thị trường quốc tế. Gói bản địa hóa Việt Nam có sẵn (l10n_vn) chỉ làm đúng hai việc: nạp hệ thống tài khoản theo Thông tư 200 và khai báo các loại thuế GTGT cơ bản.
Toàn bộ lớp biểu mẫu pháp lý Việt Nam — báo cáo tài chính theo mẫu, sổ kế toán đúng mẫu in, khấu hao TSCĐ, tờ khai thuế, kết chuyển cuối kỳ — không có sẵn ở cả bản Community lẫn Enterprise, và phải xây thêm.
Cách xây quyết định việc bạn có phải làm lại mỗi năm hay không: xếp lớp lên trên, không sửa lõi.
Cái gì còn thiếu, và vì sao bắt buộc phải có
| Cái còn thiếu trên bản gốc | Vì sao doanh nghiệp bắt buộc phải có |
|---|---|
| Báo cáo tài chính đúng mẫu: B01 Bảng cân đối kế toán, B02 Kết quả kinh doanh, B03 Lưu chuyển tiền tệ, B09 Thuyết minh | Bắt buộc nộp theo biểu mẫu Bộ Tài chính |
| Sổ kế toán đúng mẫu in: Nhật ký chung S03a, Sổ Cái, sổ chi tiết, bảng cân đối tài khoản | Phục vụ lưu trữ, thanh tra, kiểm toán |
| Tài sản cố định và khấu hao theo Thông tư 45 | Trích khấu hao đúng quy định, theo dõi nguyên giá – hao mòn – giá trị còn lại |
| Công cụ dụng cụ và chi phí trả trước, tài khoản 242 | Phân bổ dần đúng kỳ thay vì tính hết vào một tháng |
| Tờ khai thuế GTGT mẫu 01/GTGT theo Thông tư 80 | Kê khai thuế định kỳ |
| Kết chuyển lãi lỗ cuối kỳ qua tài khoản 911 | Odoo dồn lợi nhuận tự động, không sinh bút toán — kế toán Việt Nam cần bút toán này |
| Khóa sổ theo kỳ và dấu vết kiểm toán | Luật Kế toán 88/2015, Điều 26 và 27 |
Dòng cuối đáng chú ý nhất. Odoo có khái niệm khóa kỳ, nhưng cách kế toán Việt Nam làm việc — khóa sổ hết tháng, mở tạm có thời hạn để điều chỉnh, khóa cứng sau quyết toán — là một quy trình riêng cần dựng.
Vì sao vá lẻ vào lõi thì tháng sau hỏng lại
Đây là phần giải thích trực tiếp câu "sửa được một tháng, tháng sau bị lại".
Khi thiếu cả một lớp mà mỗi developer chỉ được thuê vá một chỗ, cách nhanh nhất với họ là sửa thẳng vào mã nguồn lõi Odoo. Nó chạy ngay, nghiệm thu xong, ai cũng vui.
Vấn đề: Odoo ra phiên bản mới mỗi năm. Mỗi lần nâng cấp, mã lõi thay đổi, các bản vá bị ghi đè hoặc xung đột. Người thứ hai vào không biết người thứ nhất đã vá gì, vá ở đâu, vá theo logic nào. Sau vài lượt, không ai còn dám nâng cấp — hệ thống đóng băng ở một phiên bản cũ, và mọi lỗi mới đều phải tự sửa.
Cách đúng là xếp lớp:
- Module bổ sung Việt Nam — BCTC · Sổ kế toán · TSCĐ TT45 · Tờ khai GTGT TT80 · Khóa sổ — lớp tự xây
- l10n_vn — bản địa hóa VN — Hệ thống tài khoản TT200, thuế GTGT — Odoo cung cấp
- Odoo CE — lõi kế toán quốc tế — Không đụng vào một dòng nào
Module mới nằm bên trên, gọi vào lõi chứ không sửa lõi. Khi Odoo cập nhật, lớp dưới thay đổi mà lớp trên vẫn còn nguyên, chỉ cần kiểm lại các điểm nối.
⚠️ Warning: Câu hỏi để kiểm tra đối tác triển khai: "Các báo cáo Việt Nam nằm trong module riêng hay sửa trực tiếp vào addons lõi của Odoo?" Nếu là vế sau, hãy hỏi tiếp ai chịu chi phí khi Odoo lên phiên bản kế tiếp. Bạn đang mua một hệ thống hay đang thuê một khoản nợ kỹ thuật, câu trả lời nằm ở đó.
Số liệu đi từ nghiệp vụ lên báo cáo như thế nào
Đây là điều làm ERP khác phần mềm kế toán thuần: bút toán tự sinh từ nghiệp vụ gốc, không nhập tay lần hai.
- Nghiệp vụ — Hóa đơn bán / mua · Thu chi thanh toán · Khấu hao TSCĐ · Phân bổ CCDC
- Sổ kế toán — Nhật ký chung → Sổ Cái → Sổ chi tiết → Bảng cân đối tài khoản
- Đầu ra pháp lý — B01 · B02 · B03 · B09 · Tờ khai 01/GTGT
Ba chế độ kế toán: chọn theo công ty và theo năm
Đây là chỗ nhiều dự án làm sai vì tưởng chỉ có một chuẩn.
| Chế độ | Dùng cho | Cách chọn |
|---|---|---|
| TT200/2014 | Năm tài chính trước 2026 | Tự động theo năm |
| TT99/2025 | Năm tài chính từ 2026 trở đi, thay TT200 | Tự động theo năm |
| TT133/2016 | Doanh nghiệp nhỏ và vừa, mẫu B01a-DNN, B02-DNN | Đặt cố định ở hồ sơ công ty |
Nguyên tắc phân biệt: TT200 và TT99 khác nhau theo thời gian nên hệ thống tự nhận diện theo năm tài chính; TT133 khác theo loại hình doanh nghiệp nên đặt cố định trên từng công ty.
Khác biệt giữa các chế độ nằm ở lớp mapping và mẫu in, không phá dữ liệu gốc. Ví dụ cụ thể về chỉ tiêu tổng tài sản: TT200 là mã 270, TT99 là mã 280, TT133 mẫu B01a-DNN là mã 200. Cùng một bộ số liệu, ba cách trình bày.
Riêng TT133 còn cho doanh nghiệp chọn một trong hai mẫu bảng cân đối: B01a-DNN sắp theo thanh khoản giảm dần, hoặc B01b-DNN tách rõ ngắn hạn và dài hạn. Cả hai đều hợp lệ, và kế toán thường thích B01b vì nhìn ra cấu trúc tài sản nhanh hơn.
Bốn nhóm tính năng đã xây
1. Báo cáo tài chính
B01 — Bảng cân đối kế toán. Hai cột số cuối kỳ và số đầu năm, đầy đủ cấu trúc chỉ tiêu theo mẫu. Điểm kỹ thuật đáng nói là xử lý tài khoản lưỡng tính 131 và 331 tách theo từng đối tượng: khách hàng dư Nợ vào Phải thu khách hàng (131) bên Tài sản, khách trả trước dư Có vào Người mua trả trước (312) bên Nguồn vốn; nhà cung cấp tương tự với 311 và 132. Nhiều hệ thống làm tắt bằng cách lấy số dư ròng của cả tài khoản — kết quả là bảng cân đối vẫn cân nhưng sai bản chất.
Hệ thống tự kiểm tra cân đối và báo khi lệch.
B02 — Kết quả kinh doanh. Có cột năm trước để so sánh. Kiểm chéo bắt buộc: lợi nhuận sau thuế trên B02 phải bằng chỉ tiêu 421 trên B01.
B03 — Lưu chuyển tiền tệ. Cả phương pháp trực tiếp và gián tiếp, đều đối chiếu được: dòng tiền thuần bằng biến động số dư tiền thực tế.
B09 — Thuyết minh. Chín bảng số liệu tự điền từ B01, kèm cột diễn giải tự sinh cho người không học kế toán đọc, và cho nhập tay ghi chú trước khi in.
2. Sổ kế toán
Sổ Nhật ký chung mẫu in S03a — đầy đủ các thành phần bắt buộc của mẫu in pháp lý: dòng "Số trang trước chuyển sang", cột số thứ tự dòng, cột "Đã ghi Sổ Cái". Tự kiểm tra tổng phát sinh Nợ bằng tổng phát sinh Có.
Sổ Cái có tùy chọn gom theo tài khoản chính ba số đầu — thay vì để 1311, 1312, 1120 nằm rời rạc thì gom về nhóm 131, 112 kèm dòng tổng cộng nhóm.
Sổ tiền gửi ngân hàng S08 riêng cho tài khoản 112, cột Thu / Chi / Tồn theo từng chứng từ — doanh nghiệp thu chủ yếu qua ngân hàng cần sổ này thay vì mượn Sổ Cái.
Kết chuyển lãi lỗ cuối kỳ qua TK 911. Tất toán toàn bộ tài khoản doanh thu và chi phí đầu 5, 6, 7, 8 qua 911, chênh lệch sang 4212. Ba đặc tính quan trọng: tạo bút toán nháp để kế toán duyệt; bấm lại cùng kỳ không tạo trùng; và B02 không bị về 0 sau chốt sổ vì báo cáo tự loại bút toán kết chuyển khỏi phát sinh trong kỳ.
3. Tài sản cố định và công cụ dụng cụ
TSCĐ theo Thông tư 45. Khai báo nhóm tài sản một lần với tài khoản nguyên giá 211/213, hao mòn 214, chi phí khấu hao 627/641/642 và số năm khấu hao; mỗi tài sản chọn nhóm là tự điền. Tự lập bảng khấu hao theo tháng, làm tròn kỳ cuối để tổng khấu hao khớp đúng nguyên giá. Đến kỳ tự sinh bút toán Nợ chi phí / Có 214.
Thanh lý và nhượng bán tự ghi hai vế: ghi giảm tài sản Nợ 214 / Nợ 811 / Có 211, và thu từ bán Nợ 112 / Có 711 / Có 3331.
CCDC và chi phí trả trước qua TK 242. Những khoản chi một lần nhưng dùng nhiều kỳ — bàn ghế, công cụ, phí thuê trả trước, bảo hiểm — đưa vào 242 rồi phân bổ đều. Tự lập lịch phân bổ và tự hạch toán Nợ chi phí / Có 242 từng kỳ.
4. Tờ khai thuế GTGT 01/GTGT
Tự tổng hợp thuế mua vào và bán ra theo từng thuế suất từ các dòng thuế của hóa đơn đã ghi sổ trong kỳ, điền vào đúng chỉ tiêu từ [22] đến [43] — bao gồm cả thuế suất 8% ở chỉ tiêu [32b] và [33b] theo nghị quyết giảm thuế.
Kèm nút tạo bút toán kết chuyển VAT cuối kỳ: lấy số nhỏ hơn giữa thuế đầu vào được khấu trừ (TK 133) và đầu ra phải nộp (TK 3331), tạo bút toán nháp Nợ 3331 / Có 133 để kế toán duyệt. Bấm lần hai không tạo trùng.
Xuất được HTML, PDF, Excel và XML cho eTax.
⚠️ Warning: Phần XML eTax hiện ở trạng thái chạy được nhưng chưa đối chiếu với bản XSD mới nhất của Tổng cục Thuế. Chưa nên dùng để nộp thuế thật cho tới khi đối chiếu xong. Chúng tôi ghi rõ điều này thay vì để nó nằm im trong danh sách tính năng.
Công cụ trả lời câu hỏi "B01 không cân, số này ở đâu ra"
Đây là tính năng tôi nghĩ kế toán trưởng sẽ quan tâm nhất, và nó phòng ngừa một lỗi rất khó phát hiện.
Báo cáo B01 lấy số bằng cách map tiền tố tài khoản vào chỉ tiêu — ví dụ 111 và 112 vào chỉ tiêu [110] Tiền. Rủi ro âm thầm: nếu một tài khoản có số dư nhưng không được gán vào chỉ tiêu nào, số dư đó biến mất khỏi báo cáo mà B01 vẫn cân — vì thiếu cả hai vế.
Nói cách khác: "B01 cân" không có nghĩa là "B01 đầy đủ".
Màn hình Debug mapping liệt kê mọi tài khoản có số dư kèm trạng thái:
| Trạng thái | Ý nghĩa |
|---|---|
| ✅ OK | Tài khoản đã map đúng một chỉ tiêu |
| ✅ Lưỡng tính | 131 và 331 tách Nợ/Có theo đối tượng, map hai chỉ tiêu là đúng |
| 🔴 Chưa map | Nguy hiểm — số dư sẽ bị bỏ sót khỏi B01 |
| ⚠️ Map trùng | Tài khoản bị đếm vào nhiều hơn một chỉ tiêu |
Nó tự nhận chế độ kế toán đang áp dụng và đọc mapping trực tiếp từ cấu trúc báo cáo thật, sắp tài khoản chưa map lên đầu. Giá trị thực tế: khi nạp sổ của một doanh nghiệp mới mà phát sinh tài khoản lạ chưa được map, màn hình này chỉ ra ngay — thay vì phát hiện sau khi đã nộp báo cáo.
Khóa sổ và dấu vết kiểm toán
Căn cứ Luật Kế toán 88/2015, Điều 26 về khóa sổ và Điều 27 về sửa sổ. Bốn thao tác:
| Thao tác | Khi nào dùng | Chuyện gì xảy ra |
|---|---|---|
| Khóa sổ đến hết một ngày | Xong số liệu tháng hoặc quý | Chứng từ có ngày trước đó không sửa, xóa, thêm được nữa |
| Mở sổ | Cần lùi ngày khóa — hiếm | Bắt buộc ghi lý do, lưu vết ai mở và lúc nào |
| Mở tạm có thời hạn | Điều chỉnh một khoản trong kỳ đã khóa | Chỉ một người được sửa, trong N giờ, có lý do; hết giờ tự khóa lại |
| Khóa cứng | Năm đã quyết toán và nộp BCTC | Không ai mở lại được, kể cả quản trị |
Kèm hai lớp bảo vệ: bảo toàn chứng từ bằng chuỗi hash — đóng dấu niêm phong điện tử lên bút toán đã ghi sổ, mọi sửa hoặc xóa lùi về sau đều làm gãy chuỗi và bị phát hiện; và nhật ký hệ thống ghi ai thêm sửa xóa danh mục nhạy cảm như tài khoản, thuế suất, đối tác, người dùng và quyền, kèm giá trị cũ và mới.
Cơ chế mở tạm có thời hạn đáng chú ý vì nó bám đúng tinh thần Điều 27: điều chỉnh, không sửa đè.
Trạng thái thật — đọc kỹ phần này
Chúng tôi giữ nguyên mức độ trung thực của tài liệu nội bộ thay vì làm đẹp cho bài viết:
| Hạng mục | Trạng thái |
|---|---|
| Kết chuyển 911, kết chuyển VAT, khóa sổ, hash, nhật ký hệ thống | ✅ Đã kiểm thử tự động, chạy thật |
| TSCĐ, CCDC: bảng khấu hao, hạch toán tự động, thanh lý, báo cáo | ✅ Chạy được |
| Debug mapping — kiểm 0 tài khoản bị bỏ sót trên hai công ty demo | ✅ |
| TT133 đối chiếu từng mã số với văn bản gốc, có cả B01a và B01b | ✅ Khớp Phụ lục 2 |
| Bốn báo cáo B01, B02, B03, B09 chạy ra số, kiểm chéo nhất quán | 🟡 Trên dữ liệu mẫu |
| Sổ NKC, Sổ Cái, sổ chi tiết khớp B01 | 🟡 Trên dữ liệu mẫu |
| XML eTax | 🟡 Chờ đối chiếu XSD chính thức |
| Đối chiếu số với sổ sách thật của một doanh nghiệp cụ thể | ❌ Việc quan trọng nhất còn lại |
Ký hiệu: ✅ đã chạy thật và kiểm được bằng số · 🟡 chạy đúng trên dữ liệu mẫu, chưa đối chiếu số thật · ❌ chưa làm.
Đừng dùng để nộp cơ quan thuế khi chưa đối chiếu số thật. Đây không phải câu rào đón — đối chiếu sổ sách thật là việc chỉ làm được cùng kế toán của doanh nghiệp cụ thể, và nó là điều kiện cuối để chuyển toàn bộ 🟡 thành ✅.
Nếu bạn đang ở tình cảnh vừa Odoo vừa Excel
Ba việc đáng làm theo thứ tự:
Một, xác định phần vá đang nằm ở đâu. Mở mã nguồn ra xem các báo cáo Việt Nam là module riêng hay sửa vào lõi. Nếu là vế sau, mọi việc tiếp theo đều phải tính tới chi phí bóc ra.
Hai, chốt chế độ kế toán. TT200, TT133 hay TT99 — chốt trước khi làm bất cứ điều gì khác, vì nó quyết định toàn bộ mẫu biểu.
Ba, chạy song song một kỳ. Nạp số dư đầu kỳ từ hệ cũ, đối chiếu từng tài khoản với bảng cân đối tài khoản hiện tại, chạy song song một kỳ đầy đủ. Khi số khớp mới cắt chuyển. Không có bước này thì không có cách nào biết hệ thống mới đúng hay sai.
Còn nếu đang phân vân giữa Odoo và phần mềm kế toán đóng gói, xem đối chiếu chi tiết ở Odoo kế toán vs MISA SME — có cả phần MISA đang làm tốt hơn.
Đặt lịch soát bộ biểu mẫu kế toán — mang theo bộ báo cáo đang dùng, một buổi là biết còn thiếu gì và vá ở đâu.
Câu hỏi thường gặp
Odoo có làm được báo cáo tài chính theo Thông tư 200 không?
Không có sẵn. Gói bản địa hóa l10n_vn chỉ nạp hệ thống tài khoản theo Thông tư 200 và thuế GTGT cơ bản. Bảng cân đối kế toán B01, Kết quả kinh doanh B02, Lưu chuyển tiền tệ B03 và Thuyết minh B09 phải xây thêm bằng module bổ sung. Điều này đúng với cả bản Community lẫn Enterprise.
Vì sao developer sửa Odoo được một tháng rồi tháng sau lỗi lại?
Thường là do vá trực tiếp vào mã nguồn lõi Odoo. Odoo ra phiên bản mới mỗi năm, mỗi lần nâng cấp mã lõi thay đổi khiến các bản vá bị ghi đè hoặc xung đột. Cách bền vững là xếp lớp: đặt module bổ sung bên trên lõi và gọi vào lõi thay vì sửa lõi.
Thông tư 99 khác Thông tư 200 thế nào và khi nào áp dụng?
Thông tư 99/2025 thay Thông tư 200 từ năm tài chính 2026 trở đi. Khác biệt nằm ở cấu trúc chỉ tiêu và mã số trên báo cáo — ví dụ chỉ tiêu tổng tài sản là mã 270 theo TT200 nhưng là mã 280 theo TT99. Hệ thống nên tự nhận diện theo năm tài chính thay vì bắt kế toán chọn tay.
Doanh nghiệp nhỏ và vừa dùng Thông tư 133 chọn mẫu B01a hay B01b?
Cả hai đều hợp lệ. B01a-DNN sắp tài sản theo thanh khoản giảm dần và không nhóm; B01b-DNN tách rõ ngắn hạn và dài hạn. Kế toán thường thích B01b vì nhìn ra cấu trúc tài sản nhanh hơn. Hệ thống nên cho chọn ngay trên màn hình báo cáo.
Bảng cân đối kế toán cân rồi thì có chắc đúng không?
Không chắc. Nếu một tài khoản có số dư nhưng chưa được gán vào chỉ tiêu nào của báo cáo, số dư đó biến mất khỏi B01 mà bảng vẫn cân vì thiếu cả hai vế. Cần công cụ soát mapping từ tài khoản xuống chỉ tiêu để phát hiện tài khoản bị bỏ sót — đặc biệt quan trọng khi nạp sổ của một doanh nghiệp mới.
Odoo có kết chuyển lãi lỗ cuối kỳ qua tài khoản 911 không?
Bản gốc không có. Odoo dồn lợi nhuận tự động mà không sinh bút toán, trong khi kế toán Việt Nam cần bút toán kết chuyển qua 911 sang 4212. Đây là một trong các nghiệp vụ phải xây thêm, và nên làm dưới dạng tạo bút toán nháp cho kế toán duyệt, có chống tạo trùng khi bấm lại.
Đọc tiếp trong series
- Odoo dở hay bên triển khai gà? Vì sao dự án ERP thất bại
- Odoo kế toán vs MISA SME: đối chiếu 24 danh mục
- Odoo Community hay Enterprise: bóc chi phí thật
- Cho AI đọc sổ kế toán: hỏi tiếng Việt, ra Bảng cân đối kế toán
- Đang chạy LarkSuite, thêm Odoo có phải bỏ Lark không?
Nguồn tham khảo
- Thông tư 200/2014/TT-BTC — Chế độ kế toán doanh nghiệp
- Thông tư 133/2016/TT-BTC — Chế độ kế toán doanh nghiệp nhỏ và vừa
- Thông tư 99/2025/TT-BTC — thay TT200 từ năm tài chính 2026
- Thông tư 45/2013/TT-BTC — Quản lý và trích khấu hao tài sản cố định
- Thông tư 80/2021/TT-BTC — Quản lý thuế, mẫu tờ khai 01/GTGT
- Luật Kế toán 88/2015/QH13 — Điều 26 khóa sổ, Điều 27 sửa chữa sổ kế toán
- Odoo Localization Việt Nam (
l10n_vn): https://github.com/odoo/odoo/tree/19.0/addons/l10n_vn
Bài viết hữu ích?
Chia sẻ để nhiều người biết đến!
>_ LLM-Friendly Copy
Copy as Markdown to use with ChatGPT, Claude, or other AI tools



