Gipotetik holat: kompaniya mijozga invoys chiqardi. Odoo har moliyaviy hujjatni jurnal yozuvi qilib saqlaydi. Invoys sotuv jurnaliga tushadi; soliqni hisobga olmaganda, yozuvning bir satri mijozlar qarzi hisobiga, ikkinchisi daromad hisobiga yoziladi. Yozuv qayerda (jurnal) va nima ostida (hisob) saqlanishini ikkita roʻyxat belgilaydi. Birinchisi hisoblar rejasi, ikkinchisi jurnallar. Maqola ikkalasini Odoo 20.0 hujjati va kodi bilan koʻrib chiqadi.
Hisoblar rejasi: roʻyxat va uni belgilovchi uchta maydon
Hisoblar rejasi (chart of accounts) bosh kitobda moliyaviy operatsiyalarni yozish uchun ishlatiladigan barcha hisoblar roʻyxati. Odoo da u Accounting, Configuration, Chart of Accounts yoʻlida turadi. Hisob yaratishda kamida uchta maydon toʻldiriladi: kod, nom va tur.
Rejaning boshlangʻich holati mamlakatga bogʻliq. Baza yoki kompaniya yaratilganda tanlangan mamlakat fiskal lokalizatsiya paketini aniqlaydi, paket esa standart hisoblar rejasini oʻrnatadi. Birorta yozuv postlangandan keyin lokalizatsiyani oʻzgartirib boʻlmaydi.
Hujjat rejani tayyor holda ishlatishga ham, ehtiyojga moslab tahrirlashga ham ruxsat beradi. Get started sahifasida aniq qoida bor: oʻz rejangizdagi hisobga Odoo dagi oʻxshash hisob mos kelsa, uning nomi va kodini oʻzgartiring; mos kelmasa, yangisini yarating yoki import qiling. Standart hisoblarni oʻchirmang va turini oʻzgartirmang. Ular mahsulot, kategoriya, kontakt va sozlamalarda standart hisob sifatida koʻrsatilgan, shuning uchun invoys yaratish kabi oddiy jarayon buzilishi mumkin.
Hisob turi: nomdan koʻra muhimroq
Tur toʻrtta vazifani bajaradi: hisobning maqsadi va xulqi haqida maʼlumot beradi, mamlakatning qonuniy va moliyaviy hisobotlarini hosil qiladi, moliyaviy yilni yopish qoidalarini belgilaydi va ochilish yozuvlarini yaratadi. Hisobning nomi va kodi odam uchun, hisobotlar esa turga qarab ishlaydi.
20.0 kodida account_type maydonining 19 ta qiymati bor. Hujjat jadvalida 18 ta tur koʻrsatilgan: kodda bor “Other Expenses” (expense_other) jadvalda yoʻq. Turlar uch hisobot guruhiga yigʻiladi.
| Hisobot | Kategoriya | Turlar |
|---|---|---|
| Balans | Aktivlar | Receivable, Bank and Cash, Current Assets, Non-current Assets, Prepayments, Fixed Assets |
| Balans | Majburiyatlar | Payable, Credit Card, Current Liabilities, Non-current Liabilities |
| Balans | Kapital | Equity, Current Year Earnings |
| Foyda va zarar | Daromad | Income, Other Income |
| Foyda va zarar | Xarajat | Expenses, Other Expenses, Depreciation, Cost of Revenue |
| Boshqa | Balansdan tashqari | Off-Balance Sheet |
Ikki tur alohida eʼtibor talab qiladi. Receivable va Payable turlari kontragentlar bilan hisob-kitobni tashiydi: sukut boʻyicha mijozlar qarzi uchun bitta, yetkazib beruvchilar qarzi uchun bitta hisob belgilanadi va kontragent kesimidagi hisobot shu orqali chiqadi. Fixed Assets va Non-current Assets turidagi hisoblarda esa avtomatlashtirish yorligʻi bor: hisobga operatsiya postlanganda qoralama asset yozuvi yaratish yoki yaratib tasdiqlash tanlanadi.
20 da asset sozlamalari shu hisoblarga yigʻilgan: release notes asset modellari amortizatsiya modellariga almashganini, kerakli maʼlumot va avtomatik xatti-harakat esa asset hisoblarining oʻzida turishini yozadi.
Hisobning yana bir necha maydoni bor. Valyuta tanlansa, hisobga faqat shu valyutadagi yozuvlar tushadi; tanlanmasa, har qanday valyuta mumkin. Default Taxes maydoni hisob mahsulot sotuvi yoki xaridi uchun tanlanganda qoʻllanadigan soliqlarni belgilaydi. Shared Accounts bir hisobni koʻp kompaniyali muhitda bir nechta kompaniya oʻrtasida ulashadi.
Hisobni oʻchirish masalasi ham aniq: unga operatsiya yozilgach, oʻchirib boʻlmaydi. Buning oʻrniga Deprecated belgisi qoʻyiladi, hisob ishlatib boʻlmaydigan holatga oʻtadi, ammo tarixi saqlanadi.
Kod, guruh va ota hisob: 20 da nima oʻzgargan
19 gacha hisoblarni yigʻma koʻrsatish uchun hisob guruhlari (account groups) ishlatilgan. Hujjat buni shunday izohlaydi: guruh bir necha hisobni kattaroq hisobning quyi hisoblari sifatida roʻyxatlaydi va sinov balansi kabi hisobotlarni yigʻma qiladi. Guruh odatda kod boʻyicha avtomatik aniqlanadi: yangi 131200 hisobi 131000 guruhiga kiradi. 19.0 kodida buning uchun alohida account.group modeli bor.
20 release notes i bu mexanizmni almashtirganini yozadi: hisob guruhlari oʻrniga ota hisoblar (parent accounts) keladi, hisob kodlari esa ixtiyoriy boʻladi. Kodda ham shu koʻrinadi. 20.0 da account.account modelida parent_id maydoni (“Parent Account”) va parent_path bor, model daraxt sifatida saqlanadi (_parent_store). account.group modeli esa account_account.py faylida yoʻq, models jildida account_group.py fayli ham yoʻq.
Manbalar bu joyda bir-biridan farq qiladi. 20.0 hujjat sahifasi hisoblar rejasi haqida hali ham “Account groups” boʻlimini saqlab turibdi, “Parent account” boʻlimi yoʻq. Release notes va kod esa ota hisobni koʻrsatadi. Shuning uchun 20 da guruh yaratish haqidagi hujjat koʻrsatmasiga tayanib boʻlmaydi.
Shunga oʻxshash holat: hujjatda “Allow Reconciliation” belgisi tasvirlangan, 20 release notes i esa uni “Payment Reconciliation” deb qayta nomlanganini yozadi, kodda ham maydon yorligʻi shunday. Belgi yoqilgan hisoblardagi ochiq elementlar bank solishtirish oynasida taklif qilinadi. 20 da qoʻlda solishtirishni har qanday hisobda bajarish mumkin.
Jurnal: yozuvlar daftari va uning oltita turi
Jurnal (journal) yozuvlarni tartibli saqlash uchun daftar vazifasini bajaradi. Odoo oltita turni biladi: sotuv, xarid, bank, kassa, kredit karta va turli (miscellaneous) jurnallar. Kodda type maydonining qiymatlari: sale, purchase, cash, bank, credit va general.
| Tur | Nima uchun | Turga xos maydonlar |
|---|---|---|
| Sales (sale) | mijoz invoyslari | Default Income Account; kredit va debet notalar uchun alohida ketma-ketlik |
| Purchase (purchase) | yetkazib beruvchi hisoblari | Default Expense Account; aralash xarajatning shaxsiy qismi hisobi |
| Bank (bank) | bank tranzaksiyalari, kiruvchi va chiquvchi toʻlovlar | Bank Account, Account Number, Bank Feeds |
| Cash (cash) | naqd pul operatsiyalari | Cash Account, Profit Account, Loss Account |
| Credit Card (credit) | kredit karta operatsiyalari | Journal Account, Bank Feeds |
| Miscellaneous (general) | boshqa turlarga kirmaydigan yozuvlar, masalan soliqni yopish | turga xos maydon yoʻq |
Bir turdagi bir nechta jurnal boʻlishi mumkin. Hujjat ikki bank hisobi uchun ikkita bank jurnalini yoki B2B va B2C daromadini ajratish uchun ikkita sotuv jurnalini misol qiladi. Har jurnalning 1 dan 5 belgigacha noyob kodi bor, u yozuv raqamining prefiksi boʻladi. Allowed accounts maydoni jurnalda qaysi hisoblar ishlatilishini cheklaydi; boʻsh qoldirilsa, hammasi ruxsat etiladi.
Xavfsizlik sozlamasi ham bor: Secure Posted Entries with Hash. U belgilangan jurnalda postlangan yozuvni oʻzgartirish cheklanadi, bu ayrim mamlakat soliq organlari talabi uchun kerak; jurnalda bitta postlangan yozuv paydo boʻlgach, belgini olib tashlab boʻlmaydi. Jurnallar sahifasi bank va kassa jurnallarida bu maydon yoʻq deb yozadi. 20 release notes esa kassa jurnallarini solishtirishda xesh bilan himoyalash imkoniyatini qoʻshganini aytadi.
Bank jurnali: toʻlov va tranzaksiya orasidagi ikki hisob
Bank va kassa jurnallarida ikki tushuncha muhim. Birinchisi suspense hisobi: bank tranzaksiyasi solishtirilmaguncha shu hisobda turadi, solishtirilganda esa mos keladigan hisob bilan almashtiriladi. Har lahzada suspense hisobining qoldigʻi hali solishtirilmagan tranzaksiyalar yigʻindisini koʻrsatadi.
Ikkinchisi outstanding hisoblari. Odoo da toʻlov sukut boʻyicha jurnal yozuvi yaratmaydi. Yozuv hosil boʻlishi uchun toʻlov usulida outstanding receipts yoki outstanding payments hisobi koʻrsatiladi; boʻsh qoldirilsa, yozuv yaratilmaydi. Bunday toʻlovlar bank tranzaksiyasi bilan bogʻlangunicha shu hisoblarda turadi.
20 da qoida qatʼiylashgan: bank hisoblariga taʼsir qiladigan barcha yozuvlar bank tranzaksiyasidan kelishi kerak, bu qoʻlda yozilgan jurnaldan kelib chiqadigan nomuvofiqliklarning oldini oladi.
Oʻzbekiston: tayyor reja va teglar
20.0 hujjatlarida Oʻzbekiston lokalizatsiyasi sahifasi bor. rasmiy Oʻzbekiston lokalizatsiyasi (“Uzbekistan - Accounting”) hisoblar rejasi va asosiy sozlamani, Oʻzbekiston lokalizatsiyasi_reports balans va foyda-zarar hisobotini beradi. Hujjat rejani Oʻzbekiston standartlari va talablariga muvofiq oldindan sozlangan deydi.
Rejaning oʻzi ochiq kodda turadi. 20.0 branchidagi account.account-uz.csv faylida 274 ta hisob bor, kodlar toʻrt xonali, har hisob uchun inglizcha nomdan tashqari oʻzbekcha va ruscha nom ustunlari toʻldirilgan. Eng koʻp uchraydigan turlar: asset_current (59 ta), asset_fixed (32) va asset_non_current (30). Receivable turida 9 ta, payable turida 12 ta hisob bor.
Bu rejaning ishlashi uchun teg tushunchasi hal qiluvchi. Hisobotlar hisoblarni teg orqali satrga bogʻlaydi: masalan, “BS Line 0120” tegli hisob balansning 0120 raqamli satrida chiqadi. Hujjat ogohlantiradi: teg berilmagan hisob balansdan tashqari hisob kabi ishlaydi va na balansda, na foyda-zararda koʻrinadi. Faylda 274 hisobning 258 tasida teg bor. Shu sababli yangi hisob yaratganda tegni belgilash hujjatda alohida eslatiladi.
Bundan nima kelib chiqadi
Quyidagilar tahririyat xulosasi: u manbalardagi faktlardan chiqarilgan, loyiha tajribasi emas.
- Rejani sozlashdan oldin lokalizatsiya paketini tekshiring: birinchi postlangan yozuvdan keyin uni oʻzgartirib boʻlmaydi.
- Standart hisobni oʻchirmang, qayta nomlang va qayta kodlang: ular boshqa maydonlarda sukut boʻyicha hisob sifatida bogʻlangan.
- Turni nomga qarab emas, hisobot va yilni yopish qoidasiga qarab tanlang: ular aynan shu turdan chiqadi.
- Alohida jurnalni “nima uchun kerak” savoli bilan oching: alohida ketma-ketlik, alohida ruxsat etilgan hisoblar yoki alohida bank hisobi sabab boʻlsa, maʼnoli.
20 ga oʻtayotganlar uchun alohida savol qoladi: eski hisob guruhlari yangi ota hisob daraxtiga qanday oʻtadi. Manbalar bu jarayonni tasvirlamaydi, shuning uchun natijani sinov nusxasida tekshirish kerak boʻladi.
Manbalar
Maqola quyidagi manbalarga tayanadi:
- Odoo S.A., Chart of accounts, Odoo 20.0 hujjatlari (Accounting > Get started). https://www.odoo.com/documentation/20.0/applications/finance/accounting/get_started/chart_of_accounts.html (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., Journals, Odoo 20.0 hujjatlari (Accounting > Get started). https://www.odoo.com/documentation/20.0/applications/finance/accounting/get_started/journals.html (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., Odoo 20 Release Notes (Accounting boʻlimi), 2026 sentyabr. https://www.odoo.com/odoo-20-release-notes (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., odoo/odoo, addons/account/models/account_account.py va models/ jildi roʻyxati, 20.0 branchi, GitHub. https://github.com/odoo/odoo/blob/20.0/addons/account/models/account_account.py (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., odoo/odoo, addons/account/models/account_journal.py, 20.0 branchi, GitHub. https://github.com/odoo/odoo/blob/20.0/addons/account/models/account_journal.py (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., Uzbekistan fiscal localization, Odoo 20.0 hujjatlari. https://www.odoo.com/documentation/20.0/applications/finance/fiscal_localizations/uzbekistan.html (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., odoo/odoo, addons/Oʻzbekiston lokalizatsiyasi/data/template/account.account-uz.csv, 20.0 branchi, GitHub. https://github.com/odoo/odoo/blob/20.0/addons/Oʻzbekiston lokalizatsiyasi/data/template/account.account-uz.csv (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., Accounting cheat sheet, Odoo 20.0 hujjatlari (jurnal yozuvlari boʻlimi). https://www.odoo.com/documentation/20.0/applications/finance/accounting/get_started/cheat_sheet.html (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., odoo/odoo, addons/account/models/account_account.py, 19.0 branchi (account.group modeli), GitHub. https://github.com/odoo/odoo/blob/19.0/addons/account/models/account_account.py (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., Accounting: Get started (Chart of accounts boʻlimi), Odoo 20.0 hujjatlari. https://www.odoo.com/documentation/20.0/applications/finance/accounting/get_started.html (koʻrilgan: 15-oktabr, 2026)
- Odoo S.A., Accounting and Invoicing (Accounts receivable and payable), Odoo 20.0 hujjatlari. https://www.odoo.com/documentation/20.0/applications/finance/accounting.html (koʻrilgan: 15-oktabr, 2026)