Как правильно рассчитать сумму с НДС и устранить расхождения в накладных с торговыми сетями

Программист 1С v7.7 Бухгалтерский учет Торговля и дистрибуция
← На главную

При отгрузке товаров в крупные торговые сети поставщики регулярно сталкиваются с ситуацией, когда итоговые суммы в первичных документах 1С не сходятся с расчетами учетной системы покупателя на несколько копеек или даже рублей. Типичный пример: поставщик отгружает штучный товар в количестве 1728 единиц по цене 100,13 руб. без налога при ставке НДС 18% (или 20%). В учетной системе поставщика итоговая сумма составляет 204 169,08 руб., а сеть требует предоставить документы на сумму 204 163,20 руб. Разберем методологию законодательства, выясним причины такого поведения сетей и рассмотрим технические способы решения проблемы в программе 1С.

Анализ математики и причин расхождения

Проанализируем, откуда берется эта разница. В основе проблемы лежат два принципиально разных математических алгоритма расчета налога:

  1. Алгоритм типовой конфигурации 1С: сначала определяется стоимость товара без налога (налоговая база) путем умножения количества на цену без НДС (1728 × 100,13 = 173 024,64 руб.). Затем от полученной базы исчисляется налог (173 024,64 × 18% = 31 144,4352 руб., с округлением до копеек — 31 144,44 руб.). Итоговая сумма накладной получается сложением стоимости без налога и суммы налога: 173 024,64 + 31 144,44 = 204 169,08 руб.
  2. Алгоритм торговой сети: сеть сначала рассчитывает цену за единицу товара с учетом НДС и сразу округляет ее до копеек: 100,13 × 1,18 = 118,1534 руб., что после округления дает ровно 118,15 руб. за единицу. Затем сеть перемножает полученную округленную цену на объем поставки: 1728 × 118,15 = 204 163,20 руб. В результате накопления погрешности округления в 0,34 копейки на каждой из 1728 единиц возникает разрыв в 5 рублей 88 копеек.

Законодательная методология расчета НДС

Выясним, какой из двух подходов является юридически и методологически верным с точки зрения налогового законодательства РФ:

  1. Статья 154 НК РФ: регламентирует, что налоговая база при реализации товаров определяется как стоимость этих товаров, исчисленная исходя из согласованных цен без включения в них налога. Налог всегда начисляется на общую стоимость партии (базу), а не на единичную цену.
  2. Постановление Правительства РФ № 1137: устанавливает жесткий порядок заполнения счета-фактуры и УПД. В графе 5 отражается стоимость всего количества товаров без налога (графа 3 × графа 4). В графе 8 рассчитывается сумма НДС исходя из налоговой базы (графа 5) и действующей налоговой ставки. Итоговая стоимость с налогом (графа 9) вычисляется строго как сумма граф 5 и 8. Прямой расчет «цена с НДС × количество» правилами заполнения счетов-фактур не предусмотрен.

Таким образом, алгоритм, заложенный в типовые конфигурации 1С, является строго правильным по нормам Налогового кодекса. Однако торговые сети используют централизованные западные ERP-системы (например, SAP или Oracle), где первичной сущностью является цена товара на розничной полке (с уже включенным НДС). Кроме того, приемка товара в распределительных центрах автоматизирована через шлюзы электронного документооборота (EDI). Робот сверяет входящий УПД с заказом сети (ORDERS/DESADV), и при расхождении даже в одну копейку поставка автоматически блокируется.

При этом, согласно пункту 2 статьи 169 НК РФ и разъяснениям Минфина, ошибки округления в несколько копеек или рублей не препятствуют налоговым органам идентифицировать продавца, покупателя, ставку и сумму налога, поэтому не могут служить основанием для отказа в вычете НДС. Это дает возможность адаптировать расчеты под требования сети без риска налоговых санкций.

Способ 1. Проверка спецификации и переход на договорную цену с НДС

Прежде чем менять программный код, поднимем договор поставки и спецификацию цен с сетью. Рассмотрим два сценария:

  1. Если в договоре цена закреплена «в том числе НДС» (например, 118,15 руб.), то поставщик обязан выставить документы именно на конечную сумму сети. В этом случае в 1С для данного контрагента необходимо использовать тип цен с признаком «Цена включает НДС».
  2. Если цена согласована «без НДС» (100,13 руб.), расхождение является следствием внутренних округлений учетной системы покупателя. Поставщик вправе инициировать сверку протокола цен через категорийного менеджера сети, предоставив расчет по правилам Постановления № 1137.

Способ 2. Увеличение разрядности реквизита цены в конфигурации

В типовых конфигурациях платформы «1С:Предприятие 7.7» (включая конфигурацию «Производство + Услуги + Бухгалтерия») реквизиты Цена, Сумма и НДС имеют тип Число(10, 2) или Число(14, 2). Если сеть требует итоговую сумму 204 163,20 руб. за 1728 единиц, реальная цена без НДС составляет 204 163,20 / 1,18 / 1728 ≈ 100,127118 руб.

При сохранении цены с точностью до 2 знаков (100,13 руб.) ошибка неизбежна. Решением является расширение точности цен в метаданных конфигурации 1С 7.7:

  1. Откроем конфигурацию в режиме «Конфигуратор».
  2. В справочнике Цены и табличных частях документов реализации (например, РасходнаяНакладная) изменим точность реквизита Цена с 2 до 4 знаков после запятой (длина 15, точность 4).
  3. При расчете по цене 100,1271 руб. итоговая база без НДС составит 173 019,64 руб., НДС 18% — 31 143,54 руб., а сумма с НДС — ровно 204 163,18 руб., что сводит расхождение к минимуму. Законодательство не запрещает указывать цену в графе 4 счета-фактуры с более чем двумя знаками после запятой.

Способ 3. Индивидуальный алгоритм расчета под конкретную сеть

Если мы не хотим менять общую логику для других клиентов и не планируем глобально перестраивать метаданные, реализуем расчет от суммы с НДС индивидуально для контрагента. Добавим в справочник Договоры или Контрагенты флаг (реквизит типа «Число» или «Булево») РасчетПоСети.

В модуле формы документа отгрузки при изменении количества или цены добавим процедуру расчета, которая сначала определяет итоговую сумму с налогом, а затем расчетным методом выделяет НДС и сумму без налога:


// Пример расчета строки документа по алгоритму торговой сети
Если Договор.РасчетПоСети = 1 Тогда
    // 1. Вычисляем округленную цену с НДС
    ЦенаСНДС = Окр(Цена * (1 + СтавкаНДС / 100), 2);
    
    // 2. Рассчитываем итоговую сумму строки с НДС
    СуммаСНДС = Окр(ЦенаСНДС * Количество, 2);
    
    // 3. Выделяем НДС расчетным методом из итоговой суммы
    СуммаНДС = Окр(СуммаСНДС * СтавкаНДС / (100 + СтавкаНДС), 2);
    
    // 4. Получаем сумму без налога вычитанием
    Сумма = СуммаСНДС - СуммаНДС;
Иначе
    // Стандартный алгоритм 1С (по Налоговому кодексу РФ)
    Сумма = Окр(Количество * Цена, 2);
    СуммаНДС = Окр(Сумма * СтавкаНДС / 100, 2);
    СуммаСНДС = Сумма + СуммаНДС;
КонецЕсли;

Такой подход обеспечивает идеальное совпадение строк документа с требованиями шлюза торговой сети, исключает отказы в автоматической приемке EDI и одновременно сохраняет корректный расчет по Налоговому кодексу для всех остальных покупателей предприятия.

← На главную