Как вычесть НДС из оборотов при построении отчета в 1С

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

При разработке отчетов в системе 1С:Предприятие 8, особенно в конфигурациях на базе Бухгалтерия предприятия 2.0, программисты часто сталкиваются с задачей получения «чистой» выручки. По умолчанию на счете 90.01 («Выручка») в бухгалтерском учете суммы отражаются с учетом НДС. Если отчет строится на основе виртуальных таблиц регистра бухгалтерии, таких как ХозрасчетныйОборотыДтКт, простое извлечение ресурса Сумма выдаст значение, включающее налог. Ситуация осложняется тем, что в разных документах НДС может начисляться по-разному: либо «в сумме», либо «сверху».

Разберем детально несколько способов решения этой задачи, проанализируем их плюсы и минусы, а также выясним, какой метод является наиболее точным и производительным.

Способ 1: Использование ресурсов налогового учета (НУ)

Это самый элегантный и быстрый способ для типовых конфигураций (БП 2.0, УПП, КА 1.1). Рассмотрим логику работы системы: в бухгалтерском учете (БУ) на счете 90.01 сумма фиксируется с НДС. Однако в налоговом учете по налогу на прибыль (ресурс СуммаНУ) на этом же счете выручка отражается уже без НДС. Это обусловлено требованиями Налогового кодекса РФ, согласно которым доходы от реализации для целей налога на прибыль определяются за вычетом косвенных налогов.

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

Проанализируем пример кода:


ВЫБРАТЬ
    ХозрасчетныйОборотыДтКт.СубконтоКт3 КАК Номенклатура,
    ХозрасчетныйОборотыДтКт.СуммаОборот КАК СуммаСНДС,
    // Используем СуммаНУ для получения данных без НДС
    ХозрасчетныйОборотыДтКт.СуммаНУОборотКт КАК СуммаБезНДС,
    ХозрасчетныйОборотыДтКт.КоличествоОборотКт КАК Количество
ИЗ
    РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(
        &НачПер, 
        &КонПер, 
        Регистратор, , , 
        СчетКт = &Сч90_01, , 
        Организация = &Организация) КАК ХозрасчетныйОборотыДтКт

Важные нюансы этого метода:

  1. Проверка ведения НУ: Метод работает только в том случае, если в организации ведется налоговый учет и документы проводятся по регистру бухгалтерии с заполненными суммами НУ.
  2. Спецрежимы: Если организация применяет УСН или находилась на ЕНВД, данные на счетах налогового учета могут отсутствовать или заполняться иначе.
  3. Точность: Данные НУ в 99% случаев совпадают с расчетом «БУ минус НДС», так как формируются автоматически при проведении первичных документов (Реализация товаров и услуг, Отчет о розничных продажах).

Способ 2: Вычитание оборотов счета 90.03

Если по каким-то причинам доверять налоговому учету нельзя, рассмотрим классический бухгалтерский подход. Сумма НДС, начисленная с продаж, отражается по дебету счета 90.03 («Налог на добавленную стоимость») в корреспонденции со счетом 68.02. Сумма без НДС — это Оборот Кт 90.01 - Оборот Дт 90.03.

Однако здесь возникает техническая сложность. В БП 2.0 счет 90.01 обычно имеет аналитику по номенклатуре (если это включено в настройках) и номенклатурным группам. Счет 90.03 чаще всего ведется только в разрезе номенклатурных групп. Если вам нужен отчет с детализацией до конкретного товара (номенклатуры), простое вычитание оборотов счетов в запросе потребует левого соединения по регистратору и дополнительного распределения НДС, что может существенно замедлить отчет.

Пример структуры запроса для получения НДС со счета 90.03:


ВЫБРАТЬ
    Продажи.Номенклатура,
    Продажи.СуммаБур КАК СуммаСНДС,
    ЕСТЬNULL(НДС.СуммаНДС, 0) КАК СуммаНДС,
    Продажи.СуммаБур - ЕСТЬNULL(НДС.СуммаНДС, 0) КАК СуммаЧистая
ИЗ
    (ВЫБРАТЬ... ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты... ГДЕ СчетКт = &Сч90_01) КАК Продажи
ЛЕВОЕ СОЕДИНЕНИЕ
    (ВЫБРАТЬ... ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты... ГДЕ СчетДт = &Сч90_03) КАК НДС
ПО Продажи.Регистратор = НДС.Регистратор

Способ 3: Использование специализированных регистров НДС

Рассмотрим ситуацию, когда автор темы пытался соединить данные с регистром накопления НДСЗаписиКнигиПродаж. Это правильное направление, так как именно в регистрах НДС хранится точная информация о ставках и суммах налога. Но при соединении возникла проблема «безумно странных цифр».

Выясним причину: в регистре бухгалтерии по одной реализации может быть одна строка (если это общая сумма выручки по номенклатурной группе), а в регистре НДСЗаписиКнигиПродаж — несколько строк (например, если в документе были товары с разными ставками НДС или разные виды ценностей). Происходит «размножение» строк при соединении (Cartesian product), и суммы задваиваются или застраиваются.

Как правильно реализовать это соединение:

  1. Сначала необходимо подготовить подзапрос по регистру НДС, в котором данные будут сгруппированы по регистратору (и, если возможно, по номенклатуре).
  2. Использовать ЛЕВОЕ СОЕДИНЕНИЕ, чтобы не потерять продажи без НДС.
  3. В СКД лучше всего использовать связи наборов данных, где один набор — это выручка, а второй — данные по НДС.

Пример правильной группировки перед соединением:


ВЫБРАТЬ
    НДС.Регистратор,
    СУММА(НДС.СуммаБезНДС) КАК СуммаБезНДС,
    СУММА(НДС.НДС) КАК СуммаНДС
ИЗ
    РегистрНакопления.НДСЗаписиКнигиПродаж КАК НДС
ГДЕ
    НДС.Период МЕЖДУ &НачПер И &КонПер
СГРУППИРОВАТЬ ПО
    НДС.Регистратор

Способ 4: Математический расчет через «Вычисляемые поля» СКД

Если небольшая погрешность (в копейках из-за округления) не критична, можно воспользоваться формулой прямо в настройках компоновки данных. Рассмотрим этот вариант для случаев, когда нужно быстро получить результат без изменения текста запроса.

Разберем шаги настройки:

  1. Перейдем на вкладку «Вычисляемые поля» в СКД.
  2. Добавим поле СуммаБезНДС.
  3. В колонку «Выражение» впишем формулу. Если мы знаем, что основная ставка 20%, формула будет: Сумма / 1.2.
  4. Если ставка НДС хранится в справочнике Номенклатура, выражение станет более гибким: Сумма / (1 + СтавкаНДС / 100).

Внимание: Этот метод крайне опасен, если в базе есть документы со ставками «Без НДС», «0%» или если ставка налога менялась законодательно в течение периода отчета (например, переход с 18% на 20%). Мы рекомендуем использовать его только для оперативных проверок, но не для официальной финансовой отчетности.

Резюме и рекомендации

Проанализировав все подходы, можно сделать следующие выводы:

Использование правильного ресурса из регистра бухгалтерии (СуммаНУ) позволяет сократить время разработки отчета в несколько раз и гарантирует, что данные будут соответствовать стандартным оборотно-сальдовым ведомостям по налоговому учету.

← На главную