Столкнулся я недавно с необходимостью расчёта НДС. При том не только в виде "вычислить 18% от цены", а в виде просчёта НДС для счетов-фактур и других официальных документов, где необходим просчёт по позициям. Смысл статьи в описании 2х основных моментов, которые мной были замечены.

Введение

Существует 2 основные проблемы при расчёте НДС:

  1. Необходимость просчётов в вариантах, когда НДС уже включен в цену товара, и варианта, когда НДС будет просчитан сверху, из цены товара.
  2. Проблемы связанные с погрешностью округления. Эта погрешность может создать различие между НДС расчитанным по позициям товара, и НДС получающийся из общей суммы товара.

Вроде бы всё просто, но давайте разберёмся с этими примерами поподробнее.

Варианты просчёта НДС

В любимой нами всеми программе от существует 2 вариант просчёта НДС:

  1. НДС в сумме. Это когда НДС уже содержится в цене товара и для его просчёта используется формула:

    СуммаНДС = Сумма * 18 / 118

    Формула это выходит из логики начальной школы. Сначала высчитываем сколько будет рублей в 1% (Сумма/118), затем умножаем на 18, и получаем 18% (из расчёта того, что НДС 18%. хотя он не всегда бывает таковым).

  2. НДС сверху. В этом варианте необходимо расчитать сумму НДС исходя из цены товара без НДС, т.е.:

    СуммаНДС = Сумма * 0.18

    или

    СуммаНДС = Сумма * 18 / 100

    Тут думаю всё понятно.

А теперь немного о самой проблеме: "Различия в расчётах между двумя этим видами".

Цена с НДС

В общем мои наблюдения показали, что в случае расчёта в сумме, вся счёт-фактура расчитывается исходя из цены с НДС, и цена за единицу товара без НДС, может не быть несколько округлённой. Т.е. вся счёт фактура подстраивается под сумму с НДС, без предварительного расчёта цены без НДС. Например, чтобы расчитать цену за единицу товара мы используем формулу:

Цена_за_единицу_товара = Округление( (Сумма_с_НДС - Сумма_НДС) / Количество_товара )

Мы не расчитываем сумму товара, умножением его цены на количество. Это не верный путь, для данного варианта расчёта НДС.

Сумму НДС мы можем расчитать следующим образом:

Сумма_НДС = Округление( Сумма_с_НДС * 18 / 118 )

Затем, мы используем следующую формулу для расчёта суммы товара без НДС:

Сумма_без_НДС = Округление( Сумма_с_НДС - Сумма_НДС )

Таким образом, мы явно видим, что все цены подогнаны под сумму с НДС.

Цена без НДС

Если же счёт-фактура расчитывается исходя из цены без НДС, то все расчёты ведутся по логике действий. Сначала вычисляется сумма без НДС, затем из суммы без НДС, вычисляется сумма НДС и соответственно, в итоговой сумме пишется просто "Сумма_без_НДС + Сумма_НДС".

Если вы захотите заного просчитать счёт-фактуру, изходя из данных полученных после прошлого просчёта (где НДС расчитывался другим способом), вы можете увидеть некоторую разницу в расчётах. В моём случае разница составляла одну копейку. Позже, я постораюсь добавить пример, на котором всё это хорошо видно.