Преминете към съдържание

Българска локализация за Odoo 18: Конфигурация

Модул l10n_bg_tax_admin за Odoo 18 — фискални позиции, данъци, протоколи, митници
1 април 2026 г. от
Българска локализация за Odoo 18: Конфигурация
BL Consulting Ltd, Boyan Yordanov

Конфигурация на българската локализация

Модул l10n_bg_tax_admin за Odoo 18 — фискални позиции, данъци, протоколи, митници

Съдържание

1. Обща архитектура

Модулът управлява обработката на данъчни документи чрез три слоя:

Ниво 1: Фискална позиция

account.fiscal.position

Определякой данък да замени кой. Автоматично прилагане по държава, група, приоритет.

Ниво 2: Картографиране на данъчни действия

account.fiscal.position.tax.action

Определякой документда генерира: протокол митница частен стандарт

Ниво 3: Данъци

Линии на разпределение

Определякак да се запишеи в кои NRA клетки да се поставят (чрез тагове).

2. Фискални позиции

Приоритетна йерархия

ПоследователностФискална позицияДържава / ГрупаКога да се прилага
0OSS B2C (по държава)Специфична страна от ЕСB2C продажби в ЕС с регистрация по OSS
10Вътрешен🇧🇬 БългарияТранзакции с български контрагенти
20ЕС B2C🇪🇺 Група ЕвропаПродажби на физически лица в ЕС (без OSS)
30ЕС B2B🇪🇺 Група ЕвропаСделки с компании от ЕС (B2B)
40Извън ЕС🌍 НеограниченоВнос/износ извън ЕС
600% Чл. 69(2)🇪🇺 Група ЕвропаДоставки до друга страна от ЕС
610% Чл. 82(2)🇪🇺 Група ЕвропаУслуги, получени от ЕС

Важно:Последователността определя приоритета. По-ниска стойност = по-висок приоритет. OSS (последователност=0) се прилага преди ЕС B2B (последователност=30).

ЕС B2B (последователност=30) — GP

Продажби(изходящи фактури)

Данък върху добавената стойностЗаменен сЕтикет
20% ДДС0% ЕС (ВОДА)+15
20% Лично ползване0% ЕС (ВОДА)+15
9% ДДС0% ЕС (ВОДА)+15
9% Лично ползване0% ЕС (ВОДА)+15
0% Освободен0% ЕС (ВОДА)+15

Покупки(входящи фактури)

Данък върху добавената стойностЗаменен сТип
20% OTC (без DK)20% EU PTC (ICA)група
20% FTC (пълен DC)20% EU PTC (ICA)група
20% PTC (частичен DC)20% EU PTC (ICA)група

ICA (Вътрешнообщностно придобиване):Групов данък с две деца — вземания и задължения — които се самоотменят чрез сметка 430000.

Извън ЕС (seq=40) — Вход/Износ

Продажби(експорт)

Данък върху добавената стойностЗаменен сЕтикет
20% ДДС0% EX (Експорт)+14
20% Лично ползване0% EX+14
9% ДДС0% EX+14
0% Освободен0% EX+14

Покупки(вноски)

Данък върху добавената стойностЗаменен сТип
20% OTCМитническа тарифа + ДДСмито+ДДС
20% FTCМитническа тарифа + ДДСмито+ДДС
20% PTCМитническа тарифа + ДДСмито+ДДС

Митническа тарифа + ДДС:Групов данък с customs_ratechild (мито) и percentchild (20% ДДС върху митническата стойност).0% Чл. 69(2)— Място извън България

Всички данъци върху продажбите0% По чл. 69(2)
Попада вклетка 23от справката-декларация (етикет +23)

0% Чл. 82(2)— Получени услуги от ЕС

Всички данъци върху продажбите0% ПТК Чл. 80(2)
Обратен данък с етикет +12_2 →клас 12

5. Етикети → Клетки от ДДС декларация

Всеки етикет (account.account.tag) съответства на конкретна клетка отДДС декларацията(чл. 125, ал. 1).

Раздел А — Данък начислен (Журнал на продажбите)

ЕтикетКлеткаОписание в справката-декларацияКакво попада
+11клас 11ДДС върху облагаемите доставки с ставка 20%Данъчна основа на всички продажби с 20% ДДС
+12_1клас 12ДО на ВОП и доставки по чл. 82, ал. 2-5Данъчна основа на общия данък върху доходите (ДОД)
+12_2клас 12ДО на ВОП и доставки по чл. 82, ал. 2-5Получени услуги от ЕС по чл. 82(2)
+13клас 13ДДС върху облагаемите доставки с ставка 9%Продажби с 9% ДДС (туризъм)
+14клас 14ДО на доставки по чл. 28, 140, 146 и чл. 173Износи, доставки на злато
+15клас 15Транспорт по водаВътрешнообщностни доставки (продажби на компании от ЕС)
+17клас 17ДО на услуги по чл. 21, ал. 2Услуги с получател в друга държава от ЕС (VIES)
+19клас 19ТО на освободени доставкиОсвободени доставки (чл. 38-50 от Закона за ДДС)
+21клас 21Данък, начислен за доставки по чл. 11ДДС 20% = чл.11 × 20%
+22клас 22Данък, начислен за общи търговски дейности и доставки по клас 12Обратен данък (GPL, чл. 82, чл. 84)
+23клас 23График на доставките по чл. 69, ал. 2Място на изпълнение в друга държава от ЕС
+24клас 24Данък, начислен за доставки по чл. 13ДДС 9% = чл.13 × 9%
+25клас 25ТО на тристранни сделки от посредникТристранни сделки по чл. 15 от Закона за ДДС

Раздел Б — Данъчен кредит (Журнал за покупки)

ЕтикетКлеткаОписание в справката-декларацияКакво попада
+30клас 30ТО на получени доставкибез право на ДКПокупки на гише (OTC)
+31клас 31ТО на получени доставкис право на пълен ДКПокупки с пълен данъчен кредит (FTC)
+32клас 32Към получените доставкис право на частичен ДКПокупки с частичен данъчен кредит (ПДК)
+33клас 33Годишна корекция по чл. 73, ал. 8Корекция при промяна на коефициент
+41клас 41ДДС с право на пълен ДДСДължим ДДС = кл.31 × ставка
+42клас 42ДДС с право на частичен данъчен кредитДължим ДДС = кл.32 × ставка
+43клас 43Годишна корекция по чл. 73, ал. 8Корекция на дължимия ДДС

Резултатни клетки (автоматично изчислени)

КлеткаОписаниеФормула
клас 20Общо дължим данъккл.21 + кл.22 + кл.24
клас 40Общо данъчен кредиткл.41 + кл.42 + кл.43
клас 50ДДС за вноскл.20 − кл.40(ако ≥ 0)
клас 60Възстановяване на ДДСкл.40 − кл.20(ако кл.40 > кл.20)
клас 70Входящ данък — ефективнокл.50 (ако няма приспадане)
клас 80ДДС за възстановяване по чл. 92Ускорено възстановяване
клас 81ДДС за възстановяване по чл. 92, ал. 3Натрупани 2+ периода
клас 82ДДС за възстановяване по чл. 92, ал. 4Спешно възстановяване

+ = фактура, − = възстановяване. Odoo 18: tax_negate. Редовете в сиво не са конфигурирани в демото, но са част от декларацията.

9. Работни потоци

Поток 1:Вътрешнообщностно придобиване (ВОП)

  1. Постъпила фактура от доставчик от ЕС
  2. Автоматично FPЕС B2B
  3. Данък → 20% ЕС ПДК (ВОП)
  4. TAM:l10n_bg_move_type=протокол
  5. Публикация →протокол(10-цифрен номер)

Ден на продажба:

клас 12.1 + клас 22Дата на покупка:

клас 31 + клас 41Поток 2:Внос от трета страна

  1. Постъпила фактура от извън ЕС
  2. Автоматично FPИзвън ЕС
  3. Данък → Митническа тарифа + ДДС
  4. TAM:l10n_bg_move_type=митница
  5. Setl10n_bg_currency_rate
  6. Публикация →митническа декларация

Подкуп= customs_base × tariff_rate

DDS= customs_base × 20%Поток 3:Услуга от ЕС (чл. 82(2))

  1. Постъпила фактура от доставчик на услуги от ЕС
  2. FP0% чл. 82(2)
  3. Данък → 0% ПДК чл. 80(2)
  4. TAM:l10n_bg_move_type=протокол
  5. Записване →протокол

Ден на продажба:

клас 12.2 + клас 22Дата на покупка:

клас 31 + клас 41Поток 4:Лично ползване

  1. Входяща фактура за актив за лично ползване
  2. TAM:l10n_bg_move_type=private
  3. Данък: 20% Лично ползване
  4. Задайте personal_km и total_km
  5. Коефициент = (лично / общо) × 100
  6. Основата = оригинал × (коефициент / 100)
  7. Публикувай →account.move.bg.private

10. OSS (Едно гише)

OSS елементите автоматично заменят българските ДДС ставки с тарифите надържавата на получателяза B2C продажби.

ДържаваКодСтандартенНамаленBG 20% →BG 9% →
🇩🇪 ГерманияОТ19%7%19% ДДС7% ДДС DE
🇫🇷 ФранцияFR20%5.5%20% ДДС FR5.5% ДДС FR
🇦🇹 АвстрияAT20%10%20% И ДДС10% И ДДС
🇮🇹 ИталияIT22%4%22% ДДС IT4% ДДС IT
🇭🇺 УнгарияHU27%5%27% ДДС HU5% ДДС HU
🇷🇴 РумънияRO21%11%21% РО ДДС11% РО ДДС
🇬🇷 ГърцияГР24%13%24% ГР ДДС13% ГР ДДС
🇵🇱 ПолшаПЛ23%8%23% ПЛ ДДС8% ПЛ ДДС
🇪🇸 ИспанияИС21%10%21% ЕС ДДС10% ЕС ДДС
🇳🇱 НидерландияNL21%9%21% NL ДДС9% NL ДДС
🇧🇪 БелгияБЕ21%6%21% ДДС6% ДДС
🇸🇪 ШвецияSE25%6%25% SE ДДС6% SE ДДС
🇩🇰 ДанияДК25%25%25% ДК ДДС25% ДК ДДС
🇫🇮 ФинландияБЕ25.5%10%25.5% FI ДДС10% FI ДДС
🇸🇰 СловакияСК23%19%23% СК ДДС19% УК ДДС
🇨🇿 ЧехияCZ21%12%21% CZ ДДС12% чешки ДДС

OSS елементите също имат seq=0a конкретна страна → прилагане преди EU B2B (seq=30). Данъчна група: OSS XX.X%, последователност 1000.

11. SQL двигател — l10n_bg_reports_audit

Модулът l10n_bg_reports_audit предоставя6-слойна SQL йерархияот модели на само за четене ( _auto=False) за изчисляване на данни за ДДС.

Йерархия на SQL модели

СлойМоделФункцияGROUP BY
1account.bg.calc.sales.lineИзвлича тагове от account_move_linesalesmove_id, дата
1account.bg.calc.purchases.lineИзвлича тагове от account_move_linepurchasesmove_id, дата
2account.bg.info.sale.lineПълна информация за документ (продажба)move_id + партньор
2account.bg.info.purchases.lineПълна информация за документ (покупка)move_id + партньор
3account.bg.vat.result.declarИзчислява cl. 50, 60, 70-82 (ДДС за вход/възстановяване)move_id
4account.bg.vat.calc.declarКомбинира продажби + покупки + резултаткомпания, период
5account.bg.vat.info.declarКраен отчет с данни за компаниятакомпания, период
6account.bg.calc.vies.lineVIES редове по партньор (таг 15, 17, 25)партньор, период

Ключови SQL изчисления

Извличане на тагове(Слой 1)

Всеки таг се извлича от account_account_tag, използвайки CASE:

SUM(CASEWHEN am.state = 'cancel' THEN 0.00Когато aat.tag_name = 11 И НЕ negateТогава aml.balanceИначе 0.00Край) * -1 КАТО account_tag_11

tag_name се извлича от името:REGEXP_REPLACE(name#>>'{en_US}', '\D','','g')::numeric

Формули за декларация(Слой 4)

клас 10Σ(11 + 12_1 + 12_2 + 13 + 14 + 15 + 16)
клас 20Σ(21 + 22 + 23 + 24)
клас 40Σ(41 + 42 × коеф.33 + 43)
клас 50Ако (кл.20 - кл.40) > 0 Тогава ABS
клас 60Ако (кл.20 - кл.40) < 0 Тогава ABS

кл.50/60 зависи от l10n_bg_odoo_compatible: ако е True — изчислено от SQL, ако е False — от декларирани стойности.

Информационни тагове — метаданни на документа

Продажби лог(info_tag_0-9)

info_tag_0Идентификатор на компанията (ДДС / УИК)
info_tag_1Данъчен период (YYYYMM)
info_tag_2Код на клон
info_tag_3Номер на реда (ROW_NUMBER)
info_tag_4Тип на документа (01, 02, 03...)
info_tag_5Номер на документа
info_tag_6Дата на документа
info_tag_7ДДС номер на получателя
info_tag_8Име на получателя (многоезично)
info_tag_9Описание (наратив)

Дневник на покупките(info_tag_1-10)

info_tag_1Данъчен период (YYYYMM)
info_tag_2Идентификатор на компанията
info_tag_3Код на клон
info_tag_4Сериен номер
info_tag_5Тип документ
info_tag_6Номер на документа
info_tag_7Дата на документа
info_tag_8Данъчен номер на доставчика
info_tag_9Име на доставчика
info_tag_10Описание на доставката

12. EE — l10n_bg_vat_reports (Enterprise)

На базата на account_reportsa рамка с персонализирани обработчици. Авто-инсталация на l10n_bg+ account_reports.

Поток от данни

SQL изгледи

_table_query

_build_l10n_bg_query()

dictfetchall()

_create_report_line()

× N реда

WEB / PDF

CSV / ZIP

4 отчета с с handler класове

Декларация

Секции A/B/C/D

50+

Клетки PDF в портретен формат

Declaration.txt

Дата на покупка

16 колони

80/страница

PDF в ландшафтен формат

Purchases.txt

Ден на продажба

26 колони

80/страница

PDF в ландшафтен формат

Prodagbi.txt

НАЧИНИ

6 колони

По партньор

PDF в портретен формат

Vies.txt

Формати за експортиране

ФорматМетодКодиранеШифрованеОписание
УЕБКомпоненти на фронтендаИнтерактивен изглед с детайли за документите
PDF_export_to_pdf_base()QWeb → wkhtmltopdf, пейзаж за дневници
CSVget_l10n_bg_csv()CP1251Фиксирана ширина, формат на НАП
ZIPl10n_bg_export_csvs_zip()CP1251AES-256 (pyzipper)4 CSV файла, без Zip64

Форматиране на CSV полета:parce_str_15() за текст 15 символа, parce_fload_15_2() за суми 15 символа с 2 десетични знака, parce_date_10() за дата dd/mm/yyyy. КодиранеCP1251(Windows-1251) за съвместимост с Националната агенция за приходите.

13. CE — l10n_bg_report_vat (Общност)

Подход, базиран на магьосник —не зависиот . account_reportsUses account_financial_report++ report_csv.report_zip

Процес: Магьосник → Доклад → Експорт

Магьосник

Дата от/до

на базата на

_print_report()

Избор на формат

_get_l10n_bg_results()

SQL изгледи

PDF / CSV

ZIP / XLSX

Сравнение на EE срещу CE

АспектEE (l10n_bg_vat_reports)CE (l10n_bg_report_vat)
Рамкаaccount_reports + персонализирани обработчициМагьосник + account_financial_report
UI моделВграден преглед на отчети с инструментариумМодален магьосник → Печат/Изтегляне
ИнтерактивностЖиво филтриране, задълбочаванеРъчно стартиране на магьосника
Достъп до данниHandler _get_dynamic_lines_data()Mixin_get_l10n_bg_results()
SQL изгледиИдентични— и двете usel10n_bg_reports_audit
PDF експортиранеQWeb → wkhtmltopdfQWeb → wkhtmltopdf
CSV експортиранеget_l10n_bg_csv()report.report_csv.abstract
ZIP експортиранеpyzipper AES-256report.report_zip.abstract + криптиране
XLSXreport.report_xlsx.abstract(деактивиран)
ТабоветеОтделни записи на отчетиBootstrap nav-tabs в QWeb
Зависимостиaccount_reports (само EE)account_financial_report, report_csv, report_zip(BAЩА)
ЦенаВключено в EE лицензия250 EUR (OPL-1)

CE модели на отчети (5-ти клас)

BGVATQwebReport

Основен QWeb PDF/HTML отчет. Пътища към 4 под-шаблона чрез active_tabcontext.

  • declar → Портрет
  • sales → Пейзаж
  • purchase→ Пейзаж
  • vies→ Пейзаж

BgVat*Csv(4-ти клас)

report.report_csv.abstractТе също наследяват l10n.bg.export.file.

  • BgVatDeclarationCsv→ Deklar.txt
  • BgVatSalesCsv → Prodagbi.txt
  • BgVatPurchaseCsv→ Pokupki.txt
  • BgVatViesCsv → Vies.txt

BgVatBookZip

Наследява report.report_zip.abstract. Генерира ZIP с 4 CSV файла.

  • Извиква get_l10n_bg_csv()
  • prepare_zip_payload() за криптиране
  • Интеграция с l10n_bg_bank_wallet

Ключ:SQL моделите на изгледите саобщиза EE и CE. Единствената разлика е в слоя на представяне — EE използва framework за account_reports, CE използва wizard + OCA библиотеки за отчети.

Генерирано от анализа на модули l10n_bg_tax_admin, l10n_bg_reports_audit, l10n_bg_vat_reports, l10n_bg_report_vat — Българска локализация за Odoo 18

Споделете тоЗи пост
Получаване на стоки в Odoo — Какво се случва в счетоводството
BL Consulting Март 2026 8 мин четене Серия: Информация в реално време