Cuối quý, đội kiểm kê ở một công trình chung cư tại Thủ Đức đếm lại kho vật tư và phát hiện thiếu hơn 40 bao xi măng so với con số ghi trong danh mục vật tư trên phần mềm — tương đương gần 8 triệu đồng. Không ai xác định được thiếu từ bao giờ, vì "con số trên phần mềm" đó thực chất là một ô dữ liệu tĩnh, được thủ kho gõ tay lúc khởi tạo danh mục sáu tháng trước và chưa từng tự cập nhật theo bất kỳ phiếu xuất nào kể từ đó. Đây không phải lỗi phần mềm — đây là hậu quả của việc dùng nhầm hai khái niệm tưởng như giống nhau: tồn sổ sách (con số tham chiếu, chỉ đối chiếu lúc kiểm kê) và tồn thực tế (con số sống, phải tính lại từ mọi chứng từ đã duyệt). Rất nhiều nhà thầu vừa và nhỏ ở Việt Nam đang vận hành kho vật tư mà không hề biết mình chỉ có con số đầu, không có con số sau.
📊 Hai Con Số, Một Cái Là Ảo
Thông tư 133/2016/TT-BTC — chế độ kế toán cho doanh nghiệp nhỏ và vừa, áp dụng cho phần lớn nhà thầu xây dựng Việt Nam — cho phép doanh nghiệp chọn một trong hai cách theo dõi nguyên vật liệu tại Tài khoản 152: kê khai thường xuyên (cập nhật tồn kho liên tục theo từng phiếu nhập/xuất phát sinh) hoặc kiểm kê định kỳ (chỉ xác định lại tồn kho vào cuối kỳ bằng cách đếm thực tế). Vấn đề là rất nhiều nhà thầu chọn kê khai thường xuyên trên giấy tờ kế toán, nhưng trong vận hành công trường hàng ngày lại thực chất đang làm theo kiểu kiểm kê định kỳ — vì "tồn kho" trên Excel hay trên phần mềm chỉ là một con số nhập tay ban đầu, không ai cập nhật theo từng phiếu xuất/nhập thực tế trong tháng. Khoảng cách giữa hai cách làm này chính là nơi thất thoát vật tư ẩn náu suốt nhiều tuần mà không ai hay biết.
Một hệ thống quản lý kho đúng chuẩn cần tách bạch rõ hai con số này thay vì gộp chung làm một:
| Con số | Cách tính | Dùng để làm gì |
|---|---|---|
| Tồn sổ sách | Số ghi tay trong danh mục vật tư, không tự đổi | Chỉ dùng làm mốc đối chiếu khi kiểm kê định kỳ |
| Tồn thực tế | Tổng phiếu nhập đã duyệt − tổng phiếu xuất đã duyệt, tính riêng theo từng kho | Cảnh báo sắp hết hàng, tính giá trị tồn, và chặn phiếu xuất vượt số thực có |
Điểm mấu chốt: tồn thực tế phải được máy tính lại mỗi khi có một phiếu nhập hoặc phiếu xuất được duyệt xong — không phải một con số nằm yên chờ ai đó gõ tay cập nhật. Khi hai con số này lệch nhau nhiều tháng liền mà không ai đối chiếu, khoảng lệch đó chính là chỗ vật tư "biến mất" mà không để lại dấu vết nào trong sổ sách.
🚫 "Không Xuất Được Cái Không Có" — Nguyên Tắc Không Có Ngoại Lệ
Nếu tồn kho được tính đúng theo thời gian thực, bước tiếp theo là dùng con số đó để chặn đứng một tình huống rất phổ biến trên công trường: hai tổ đội cùng xin cùng một loại vật tư trong cùng một ngày, kho chỉ đủ cho một tổ, nhưng cả hai đề nghị đều được duyệt vì người duyệt không nhìn thấy đề nghị của nhau tại đúng thời điểm ký. Nguyên tắc kiểm soát đúng ở đây là: không được lập hay ký duyệt bất kỳ phiếu nào khiến tồn kho âm — không có cấu hình nới lỏng, không có ngưỡng cho phép vượt, không có quyền đặc biệt nào bỏ qua được.
Việc kiểm tra tồn kho cần thực hiện ở hai thời điểm, không chỉ một:
- Lúc lập phiếu — thủ kho không thể tạo phiếu xuất vượt số tồn hiển thị tại thời điểm đó.
- Lúc ký duyệt cuối cùng — hệ thống kiểm tra lại lần nữa, vì giữa lúc lập phiếu và lúc người có thẩm quyền ký, có thể vài giờ hoặc vài ngày đã trôi qua, và một phiếu khác đã lấy mất phần hàng còn lại.
Tổ A xin 5 tấn thép lúc 8 giờ sáng, được chỉ huy phó duyệt kỹ thuật ngay nhưng chưa ký tài chính. Tổ B xin 3 tấn thép lúc 9 giờ, kho lúc đó còn 6 tấn nên vẫn duyệt được. Đến 11 giờ, PM ký tài chính cho phiếu của tổ A trước — nếu hệ thống không kiểm lại tồn kho tại đúng thời điểm ký, phiếu của tổ B vẫn được xuất dù kho chỉ còn 1 tấn thực tế.
Đây là lý do việc kiểm tra tồn kho phải lặp lại ở bước ký cuối cùng thay vì chỉ tin vào kết quả kiểm tra lúc lập phiếu. Khi tồn kho hiển thị âm (dù về nguyên tắc không nên xảy ra), một hệ thống thiết kế đúng sẽ cố tình hiển thị con số âm đó ra thay vì che giấu hay tự làm tròn về 0 — vì tồn âm luôn là dấu hiệu có phiếu cũ nhập thiếu hoặc ghi sai, cần rà lại ngay, không phải một lỗi hiển thị nên giấu đi.
🏗️ Bắt Đầu Dùng Phần Mềm Khi Kho Đã Có Sẵn Hàng
Một câu hỏi thực tế mà hầu như nhà thầu nào cũng gặp khi chuyển từ Excel/sổ giấy sang phần mềm quản lý: dự án đang thi công dở, kho đã có sẵn hàng trăm triệu đồng vật tư tồn từ trước — làm sao đưa số tồn đó vào hệ thống mà không phải "bịa" ra một đơn hàng giả để hợp thức hóa?
Cách xử lý đúng là dùng một loại phiếu nhập riêng cho tình huống này — phiếu nhập đầu kỳ. Phiếu này không cần gắn với đơn đặt hàng nào, vì lô hàng này không phát sinh từ một lần mua trong hệ thống, nhưng bắt buộc phải đính kèm biên bản bàn giao hai bên ký xác nhận số lượng thực tế tại thời điểm chuyển đổi, thay cho hóa đơn mua hàng thông thường. Biên bản này đóng vai trò bằng chứng pháp lý: nếu sau này có tranh chấp về số liệu tồn đầu kỳ, đây là căn cứ duy nhất để đối chiếu. Chỉ sau khi phiếu nhập đầu kỳ được duyệt xong, hệ thống mới có tồn kho để bắt đầu tính toán các phiếu xuất tiếp theo — không có "tồn kho ảo" chờ hợp thức hóa dần dần.
↩️ Vật Tư Dùng Không Hết — Phiếu Trả Lại Kho Và 3 Tình Trạng
Vật tư xuất cho công tác thi công không phải lúc nào cũng dùng hết — sắt thép cắt dư, xi măng còn nguyên bao chưa bóc, ván khuôn tháo ra còn dùng lại được. Nếu không có cơ chế trả về kho rõ ràng, số vật tư dư này thường "biến mất" khỏi mọi sổ sách: không còn nằm trong tồn kho (vì đã xuất), cũng không xuất hiện ở đâu khác (vì không ai lập chứng từ ghi nhận việc trả lại).
Phiếu trả lại kho xử lý đúng việc này bằng cách bắt buộc thủ kho khai rõ tình trạng vật tư khi nhận lại, vì mỗi tình trạng có cách xử lý giá trị khác nhau:
| Tình trạng | Xử lý tồn kho | Đơn giá ghi nhận |
|---|---|---|
| Còn nguyên | Vào lại đúng mã vật tư gốc | Nguyên giá như lúc xuất |
| Đã dùng, còn dùng được | Vào mã vật tư "tái sử dụng" riêng | Giá gốc nhân hệ số khấu hao (thấp hơn giá mới) |
| Hỏng / phế liệu | Không vào lại tồn kho | Chỉ ghi nhận là hao hụt, không có giá trị tồn |
Phiếu trả lại kho vẫn phải qua duyệt như một phiếu nhập bình thường, vì bản chất nó làm tăng tồn kho — không phải cứ "trả về" là tự động cộng ngay vào số tồn mà không ai xác nhận. Cách phân loại này giúp công ty không đánh đồng vật tư tái sử dụng với vật tư mới khi tính giá trị tồn kho, đồng thời có số liệu hao hụt thực tế cho từng công tác thay vì gộp chung vào "hao hụt định mức" ước lượng.
🚪 Bốn Con Đường Vật Tư Rời Khỏi Dự Án
Ngoài xuất dùng cho thi công, vật tư còn rời khỏi kho theo nhiều lý do khác — và đây là chỗ nhiều nhà thầu gộp chung thành một loại "phiếu xuất" duy nhất, dẫn đến mất dấu vết khi cần đối chiếu quyết toán hoặc giải trình với đối tác. Có bốn tình huống khác nhau, mỗi tình huống cần đúng một loại giấy tờ và đúng người duyệt riêng:
| Loại phiếu | Áp dụng khi | Yêu cầu bắt buộc |
|---|---|---|
| Trả lại nhà cung cấp | Vật tư sai quy cách, kém chất lượng, giao thừa | Gắn đơn hàng gốc, đơn giá khóa theo đơn hàng, lý do chọn từ danh mục cố định, có biên bản đã ký trước khi nộp duyệt |
| Điều chuyển nội bộ | Chuyển vật tư sang kho khác trong cùng dự án hoặc dự án khác | Duyệt xong tự sinh phiếu nhận chờ xác nhận ở kho đích; lệch số đếm sẽ tự báo ngược lại nơi gửi |
| Hoàn trả Chủ đầu tư / Thầu chính | Vật tư được cấp (không phải công ty tự mua) dùng không hết | Ảnh hưởng trực tiếp đến quyết toán, cần biên bản có chữ ký bên nhận ở bước cuối cùng |
| Thanh lý phế liệu | Bán phế liệu, vật tư hỏng ra ngoài | Phải khai rõ bên mua và giá bán |
Nhầm giữa "trả nhà cung cấp" và "hoàn trả chủ đầu tư" là lỗi hay gặp nhất — vì cả hai đều là "vật tư rời khỏi kho, không dùng cho thi công". Nhưng bản chất tài chính khác hẳn nhau: trả nhà cung cấp là điều chỉnh công nợ mua hàng, còn hoàn trả chủ đầu tư là điều chỉnh trực tiếp vào khối lượng quyết toán hợp đồng — chọn sai loại phiếu có thể khiến hồ sơ quyết toán cuối dự án bị lệch số liệu mà không ai phát hiện cho đến khi đối chiếu với chủ đầu tư.
🏢 Nhiều Kho Trong Một Dự Án — Và Kho Công Ty Khi Cần
Với dự án quy mô lớn — chung cư nhiều block, khu đô thị nhiều giai đoạn — một kho vật tư duy nhất không phản ánh đúng thực tế vận hành. Kho nên được xem là một chiều dữ liệu riêng, không phải một thuộc tính cố định của dự án: một dự án có thể có kho công trường chính, kho phụ theo từng block, kho tạm theo từng giai đoạn thi công. Tồn kho được tính riêng theo từng kho — thép đang nằm ở kho tạm của block B không thể dùng cho block A trên hệ thống, đúng như thực tế hiện trường (di chuyển vật tư giữa hai kho phải qua phiếu điều chuyển nội bộ, không phải tự động cộng trừ). Kho đã đóng (dự án hoặc giai đoạn đã kết thúc) không cho lập phiếu mới nhưng vẫn xem được lịch sử và tồn cuối cùng để phục vụ đối chiếu sau này.
Với công ty có nhiều dự án cùng lúc, có thể bật thêm kho công ty — kho cấp công ty, không thuộc riêng dự án nào, dùng chung cho vật tư mua số lượng lớn để phân bổ dần cho nhiều công trình. Kho này mặc định tắt vì phần lớn nhà thầu vừa và nhỏ không có nhu cầu, và khi bật thì chỉ kế toán trưởng mới có quyền quản lý, chạy theo một trong hai chế độ: kho thật (hàng về phải có người kiểm đếm thực tế) hoặc kho trung chuyển (hàng chỉ đi qua trên sổ sách để phân bổ chi phí, không ai đếm vật lý, nhưng vẫn cần kế toán trưởng duyệt từng phiếu).
📦 Nguồn Gốc Vật Tư — Ai Cấp, Ai Phải Hoàn Trả
Không phải mọi vật tư trong kho đều do nhà thầu tự mua. Ba nguồn gốc phổ biến cần khai rõ ngay ở dòng phiếu nhập: công ty tự mua, Chủ đầu tư cấp, hoặc Thầu chính cấp (trường hợp nhà thầu phụ). Hai nguồn sau mang theo nghĩa vụ hoàn lại phần chưa dùng hết — đây chính là lý do phiếu "Hoàn trả Chủ đầu tư/Thầu chính" ở mục trên phải tách riêng khỏi phiếu trả nhà cung cấp thông thường.
Điểm cần lưu ý: việc phân biệt nguồn gốc chỉ áp dụng ở khâu nhập kho, không áp dụng khi xuất dùng. Khi xuất vật tư cho thi công, thủ kho không cần (và cũng không thể) chọn xem lô thép đó thuộc nguồn nào — không ai truy được cây thép cụ thể đã nằm trong bê tông thuộc lô hàng công ty mua hay lô hàng chủ đầu tư cấp. Hệ thống chỉ cần trả lời được câu hỏi tổng: "bên giao đã cấp bao nhiêu, mình đã hoàn lại bao nhiêu" — đủ để đối chiếu nghĩa vụ hoàn trả khi quyết toán, mà không cần theo dấu từng lô vật tư qua từng công tác cụ thể (một việc không khả thi trong thi công thực tế).
💡 Ví Dụ Thực Tế — Một Dự Án Nhà Xưởng Ở Đồng Nai
Một nhà thầu phụ nhận thi công phần kết cấu thép cho dự án nhà xưởng tại Đồng Nai, được chủ đầu tư cấp trước 200 tấn thép hình trị giá khoảng 3,2 tỷ đồng để đẩy nhanh tiến độ. Nếu quản lý kho không tách nguồn gốc, khi dự án hoàn thành và còn dư 8 tấn thép chưa dùng, khoản chênh lệch này rất dễ bị gộp lẫn vào tồn kho chung của công ty — dẫn đến tranh cãi với chủ đầu tư về số lượng phải hoàn trả lúc quyết toán. Khi khai đúng nguồn gốc ngay từ phiếu nhập, hệ thống tự biết 200 tấn này thuộc diện "chủ đầu tư cấp", và khi lập phiếu hoàn trả 8 tấn dư, phiếu này tự động thuộc loại "Hoàn trả Chủ đầu tư" — kèm biên bản ký nhận, gắn thẳng vào hồ sơ quyết toán mà không cần tra cứu thủ công lại từ đầu.
Theo Điều 24, Thông tư 133/2016/TT-BTC (chế độ kế toán doanh nghiệp nhỏ và vừa), Tài khoản 152 — Nguyên liệu, vật liệu — cho phép doanh nghiệp áp dụng một trong hai phương pháp: kê khai thường xuyên (theo dõi liên tục theo từng lần nhập/xuất) hoặc kiểm kê định kỳ (chỉ xác định lại số tồn vào cuối kỳ bằng kiểm đếm thực tế). Thông tư cũng quy định giá trị nguyên vật liệu thừa/thiếu phát hiện khi kiểm kê phải được ghi nhận đúng theo kết quả kiểm kê thực tế. Quy định này là căn cứ cho nguyên tắc "tồn thực tế phải tính liên tục, tồn sổ sách chỉ để đối chiếu" nêu trong bài — chọn kê khai thường xuyên trên giấy tờ mà vận hành thực tế lại như kiểm kê định kỳ là nơi phát sinh chênh lệch khó truy vết nhất.