Как добавить ставку НДС 5% и 7% в 1С 7.7 и настроить корректный расчет?

Программист 1С v7.7 1C:Бухгалтерия Налоговый учет
← На главную

Несмотря на то, что платформа 1С 7.7 давно считается устаревшей, многие организации продолжают использовать её (в этом поможет решение для печати чеков на ККМ с новыми ставками НДС из 1С 7.7) для ведения учета. В связи с налоговой реформой 2025 года и введением новых ставок НДС для плательщиков на УСН (5% и 7%), перед программистами встала задача оперативной доработки «семерки». Одной лишь правки справочников здесь недостаточно — необходимо вмешательство в программный код. Рассмотрим подробно, как реализовать этот функционал.

Шаг 1. Изменение метаданных в конфигураторе

Прежде всего, нам необходимо подготовить структуру данных. Разберем по шагам, что нужно изменить в конфигураторе:

  1. Откроем Конфигуратор и найдем ветку Перечисления.
  2. Найдем перечисление СтавкиНДС.
  3. Добавим в него новые значения: НДС5 и НДС7 (и, если требуется, НДС22 для будущих изменений).
  4. Если вы используете конфигурацию «Торговля и Склад» (для которой актуален Счет-фактура с 01.10.2024) или «Комплексная», проверьте настройки пользователя и карточку номенклатуры — там также могут потребоваться ссылки на новые значения перечисления.

Шаг 2. Правка глобального модуля

Основная логика расчета налогов в 1С 7.7 сосредоточена в Глобальном модуле. Нам нужно найти функции, отвечающие за математический расчет сумм. Проанализируем основные функции, которые требуют корректировки.

Найдем функцию глВыделяемыйНДС(Ставка). Она используется для расчета налога «в том числе» (когда НДС выделяется из общей суммы). Для ставки 5% расчетный коэффициент составляет 5/105, а для 7% — 7/107. Добавим соответствующие условия:


Функция глВыделяемыйНДС(Ставка) Экспорт
    Если ПустоеЗначение(Ставка) = 1 Тогда
        Возврат 0;
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.БезНДС) Тогда
        Возврат 0;
    // Добавка для новых ставок
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.НДС5) Тогда
        Возврат 0.0476190476190476; // Это 5/105
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.НДС7) Тогда
        Возврат 0.0654205607476635; // Это 7/107
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.НДС10) Тогда
        Возврат 0.090909090909;
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.НДС20) Тогда
        Возврат 0.166666666667;
    Иначе
        Сообщить("Функция глВыделяемыйНДС(Ставка): неверная ставка");
        Возврат 0;
    КонецЕсли;
КонецФункции

Теперь отредактируем функцию глНачисляемыйНДС(Ставка), которая отвечает за расчет налога «сверху»:


Функция глНачисляемыйНДС(Ставка) Экспорт
    Если ПустоеЗначение(Ставка) = 1 Тогда
        Возврат 0;
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.БезНДС) Тогда
        Возврат 0;
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.НДС5) Тогда
        Возврат 0.05;
    ИначеЕсли (Ставка = Перечисление.СтавкиНДС.НДС7) Тогда
        Возврат 0.07;
    // ... остальные ставки ...
    КонецЕсли;
КонецФункции

Также не забудьте про функцию глСтавкаНДСАванса(пСтавкаНДС), если она присутствует в вашей конфигурации, чтобы корректно обрабатывать авансовые платежи.

Шаг 3. Сложные расчеты в функции глПоказательДокумента

В типовой «Бухгалтерии 4.5» расчеты часто проходят через универсальную функцию глПоказательДокумента. Она учитывает, включен ли НДС в сумму и есть ли налог с продаж (НП). Рассмотрим фрагмент кода, который нужно дополнить:


// Внутри функции глПоказательДокумента находим блок расчета НДС
Если (ВРег(ИмяПоказателя) = ВРег("НДС")) Тогда
    Если ВклНП = 1 Тогда
        Если ВклНДС = 1 Тогда // НДС в сумме, НП в сумме
            Если (СтНДС = 20) или (СтНДС = 18) или (СтНДС = 10) или (СтНДС = 5) или (СтНДС = 7) Тогда
                Результат = Сумма * СтНДС * 100 / (100 + СтНДС) / (100 + СтНП);
            Иначе
                Результат = Сумма * СтНДС / (100 + СтНП);
            КонецЕсли;
        // ... далее по тексту функции добавляем СтНДС = 5 и СтНДС = 7 во все условия сравнения ...
    КонецЕсли;
КонецЕсли;

Важно: Проверьте все вхождения проверки ставок в этой функции. Если ставка числовая (СтНДС = 5), убедитесь, что алгоритм правильно обрабатывает деление на (100 + СтНДС).

Шаг 4. Особенности конфигурации «УСН 1.3»

В конфигурации «Упрощенная система налогообложения» логика может отличаться — для настройки ККТ при переходе на новые ставки НДС есть готовое решение для работы онлайн-касс в 1С при переходе на новые ставки НДС. Проанализируем основные отличия:

Шаг 5. Работа с отчетностью и печатными формами

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

  1. Печатные формы: В макетах Счета-фактуры и УПД (или используя УПД 2024 г. для Бухгалтерии 7.7) проверьте ячейки, где выводится ставка. Если там жестко прописаны значения или стоит ограничение формата, замените их на параметры, принимающие значение из документа. Также имеет смысл сразу подготовиться к будущим периодам и рассмотреть УПД в редакции 2026 года со строкой 5(б) или УПД с новыми правилами указания авансов.
  2. Книга продаж и Книга покупок: Эти отчеты в 7.7 часто имеют жесткую привязку колонок к ставкам 10% и 18/20%. Чтобы новые ставки не попадали в колонку «Прочие», придется модифицировать код отчетов, добавляя новые секции для ставок 5% и 7%.
  3. Декларация по НДС: Регламентированные отчеты в 7.7 являются внешними (папка ExtForms). Автоматическое заполнение для новых ставок в старых релизах работать не будет. Потребуется либо ручная правка модуля выгрузки отчета, либо ручное заполнение строк декларации.

Подведем итог: Добавление ставки НДС 5% или 7% в 1С 7.7 — задача комплексная. Она требует не только изменения Перечисления и Справочника, но и тщательного аудита Глобального модуля на предмет математических формул выделения налога. После внесения изменений обязательно проведите тестовую проводку документа и сверьте копейки — при использовании длинных дробных коэффициентов округление должно быть максимально точным (до 2 знаков после запятой в итоговой сумме). Для этой задачи есть обработка поддержки маркировки и новых ставок НДС в 1С 7.7.

← На главную