Амортизація основних засобів і нематеріальних активів

Окремої кнопки розрахунку амортизації немає — нарахування виконує регламент «Бухгалтерія → Закриття місяця» за обраний період (як у 1С). Регламент ідемпотентний: повторне закриття того самого місяця не задвоює знос. Стор

Як нараховується (з 2026-08: лише «Закриття місяця»)

Окремої кнопки розрахунку амортизації немає — нарахування виконує регламент «Бухгалтерія → Закриття місяця» за обраний період (як у 1С). Регламент ідемпотентний: повторне закриття того самого місяця не задвоює знос. Сторінка «Амортизація» у розділі «Необоротні активи» — журнал створених документів нарахування. Детальніше про життєвий цикл активу: «fixed-assets-lifecycle».


Як працює прямолінійний метод

Формула

amortizable = primary_cost - liquidation_value
monthly = amortizable / useful_life_months

де:

  • primary_cost — первісна (балансова) вартість активу
  • liquidation_value — ліквідаційна вартість (скільки залишиться у кінці)
  • useful_life_months — корисний термін експлуатації у місяцях

Приклад

Купили офісний принтер за 10 000 грн. Корисний термін — 5 років (60 міс), ліквідаційна вартість — 1 000 грн.

amortizable = 10000 - 1000 = 9000 грн
monthly = 9000 / 60 = 150 грн/міс

Кожен місяць у calc-документі ви побачите 150 грн на цей принтер, поки 9000 не спишуться повністю (60 місяців).

Hybrid формула для імпортованих/модернізованих активів

Якщо актив імпортовано з 1С з накопиченим списанням (accumulated_depreciation > 0, але elapsed_periods = 0), наша формула використовує залишковий термін:

remaining_amount = depreciable - accumulated_depreciation
remaining_months = useful_life_months - elapsed_periods
monthly_by_remaining = remaining_amount / remaining_months
monthly_by_total = depreciable / useful_life_months
monthly = max(monthly_by_remaining, monthly_by_total)

Це не помилка — це свідома логіка. Без неї імпортовані активи амортизувалися б на 12+ зайвих місяців. З max() ми гарантуємо що сумарна амортизація = depreciable, але швидше списується.

⚠️ Незначна розбіжність з 1С — 1С УТП тут обирає одну формулу (не max). Якщо ви порівнюєте місяць-у-місяць, можуть бути копійки різниці. Сума за весь термін експлуатації — однакова.


Інші методи (реалізовано 2026-06-01)

Метод стандарт бухобліку Коли використовувати Status
Зменшення залишкової (DECLINING_BALANCE) п.26.2 Швидше списання у перші роки. Тех. устаткування що швидко зношується. ✅ Потребує liquidation_value > 0
Прискорене зменшення (ACCELERATED_DECLINING) п.26.3 Подвоєна швидкість. Найшвидше списання. ✅
Кумулятивний (CUMULATIVE) п.26.4 Плавне швидке списання, без різких піків. ✅
Виробничий (PRODUCTION) п.26.5 Прив'язано до фактичного виробництва. ⚠️ Поля додано, але actual_volume per period — окрема порція

З 2026-06-01 всі 5 методів активні у довіднику. Для PRODUCTION поки що працює тільки скіп (немає UI для введення фактичного обсягу виробництва за місяць — окрема порція).

Формули детально

DECLINING_BALANCE (Зменшення залишкової):

annual_rate = 1 - (LiquidationValue / PrimaryCost) ^ (1/N_years)
monthly = (PrimaryCost - AccumulatedDepreciation) × annual_rate / 12

⚠️ Працює тільки коли liquidation_value > 0. Якщо 0 — формула некоректна (степінь 0). Виставлено CHECK у БД + skip_reason у service.

Приклад: primary=10000, liquidation=1000, useful_life=3 роки.

  • annual_rate = 1 - (1000/10000)^(1/3) = 1 - 0.4642 = ~0.5358 (53.58%/рік)
  • monthly у перший місяць = 10000 × 0.5358 / 12 = ~446.50 грн

Списання поступово зменшується (бо зменшується remaining_value).

ACCELERATED_DECLINING (Прискорене зменшення):

annual_rate = 2 / N_years (подвоєна straight-line norm)
monthly = (PrimaryCost - AccumulatedDepreciation) × annual_rate / 12

Приклад: primary=10000, useful_life=5 років.

  • annual_rate = 2/5 = 0.40 (40%/рік)
  • monthly у перший місяць = 10000 × 0.40 / 12 = 333.33 грн

CUMULATIVE (Кумулятивний):

sum_of_years = N × (N+1) / 2
year_rate[k] = (N - k + 1) / sum_of_years (k = поточний рік)
year_amount = (PrimaryCost - LiquidationValue) × year_rate
monthly = year_amount / 12

Приклад: 5 років.

  • sum_of_years = 5×6/2 = 15
  • Рік 1: rate = 5/15 = 33.3%, monthly = 9000/3 = 250 грн
  • Рік 2: rate = 4/15 = 26.7%, monthly = 200 грн -...
  • Рік 5: rate = 1/15 = 6.7%, monthly = 50 грн

Сума за весь термін = depreciable (9000). Працює завжди (не залежить від liquidation).

PRODUCTION (Виробничий):

⚠️ MVP: формула готова, але actual volume per period вводиться вручну у calc-документі — UI ще не реалізовано. Карта активу має поля planned_production_volume + production_uom_code.

planned_amount_per_unit = (PrimaryCost - LiquidationValue) / planned_volume
monthly = planned_amount_per_unit × actual_volume_this_month

Типові питання

Q: Чому амортизація 150.00 грн на місяць — а у 1С 149.97?

A: Округлення. Раніше Python використовував банкірське округлення (0.005 → 0.00), а 1С — математичне (0.005 → 0.01). З 2026-06-01 (TD-B-P5.3) ми перейшли на ROUND_HALF_UP, що збігається з 1С.

Q: Імпортував актив з 1С з накопиченим списанням 5000 грн. Чому наша система списує його швидше за 1С?

A: Hybrid формула (див. вище). Сума амортизації за весь термін — однакова, але розподілена за менше місяців. Бухгалтерсько коректно, законом не заборонено.

Q: Чи можу я перейти з STRAIGHT_LINE на DECLINING_BALANCE серед року?

A: Технічно стандарт бухобліку п.28 дозволяє змінити метод у разі зміни очікуваних економічних вигод. Практично — потрібен наказ керівника система підтримує всі 5 методів — змінити можна.


Чому розрахунок може трохи відрізнятись від 1С

  1. Округлення копійок — з 2026-06-01 узгоджено (ROUND_HALF_UP). До цієї дати — могло бути ±1 коп/міс/актив.

  2. Hybrid формула для імпортованих активів — наша інновація. Сума однакова, місяці різні.

  3. Liquidation value — деякі клієнти вказують 0 у 1С (тоді формула працює як від primary_cost). У нас 0 теж дозволений.

Сумарна амортизація за весь термін — точно однакова. Розподіл по місяцях може коливатися на копійки.


  1. ~~TD-B-P5.3.1: ROUND_HALF_UP~~ ✅ ЗАКРИТО 2026-06-01
  2. ~~TD-B-P5.3.2: DECLINING_BALANCE~~ ✅ ЗАКРИТО 2026-06-01
  3. ~~TD-B-P5.3.3: ACCELERATED_DECLINING~~ ✅ ЗАКРИТО 2026-06-01
  4. ~~TD-B-P5.3.4: CUMULATIVE~~ ✅ ЗАКРИТО 2026-06-01
  5. ⚠️ TD-B-P5.3.5: PRODUCTION — поля + dispatch є, але actual_volume per period не реалізовано (TD-B-P5.3.5b — при client need)

Схожі статті

Онлайн-бухгалтерія для ТОВ