Как организовать работу со ставками НДС 5% и 7% в старой конфигурации 1С:УПП

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

С 1 января 2025 года налогоплательщики на упрощенной системе налогообложения (УСН) при достижении определенного порога доходов становятся плательщиками НДС со специальными ставками 5% и 7%. Для владельцев старых, сильно кастомизированных или просто необновляемых конфигураций, таких как 1С:Управление производственным предприятием (УПП) ред. 1.3 или УТ 10.3, это становится серьезным техническим вызовом. В данной статье мы разберем комплексный подход к адаптации системы, учитывая, что база используется как управленческая и «печатная машина», а отчетность планируется сдавать из современных конфигураций.

Шаг 1. Модификация метаданных: добавление новых ставок

Первым делом нам необходимо внести изменения в структуру метаданных, чтобы система «узнала» о существовании новых ставок. Разберем, какие объекты необходимо затронуть в первую очередь. Основным объектом является перечисление СтавкиНДС. Проанализируем состав этого перечисления в конфигураторе и добавим новые значения:

  1. НДС5 (Синоним: 5%)
  2. НДС5_105 (Синоним: 5/105) — для расчетных случаев.
  3. НДС7 (Синоним: 7%)
  4. НДС7_107 (Синоним: 7/107) — для расчетных случаев.

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


Функция ПолучитьСтавкуНДСЧислом(СтавкаПеречисление) Экспорт
    Если СтавкаПеречисление = Перечисления.СтавкиНДС.НДС20 Тогда
        Возврат 20;
    ИначеЕсли СтавкаПеречисление = Перечисления.СтавкиНДС.НДС10 Тогда
        Возврат 10;
    ИначеЕсли СтавкаПеречисление = Перечисления.СтавкиНДС.НДС5 Тогда
        Возврат 5;
    ИначеЕсли СтавкаПеречисление = Перечисления.СтавкиНДС.НДС7 Тогда
        Возврат 7;
    // ... и так далее для расчетных ставок
    КонецЕсли;
КонецФункции

Шаг 2. Глобальный аудит программного кода

Одной из самых больших проблем старых конфигураций является «жесткое» прописывание (хардкод) ставок НДС в алгоритмах. Проанализируем ситуацию: разработчики 10-15 лет назад могли не предполагать появления ставок 5% и 7%. Выясним причину возможных ошибок, проведя глобальный поиск по всей конфигурации.

Рекомендуется использовать инструмент «Поиск во всех текстах» в конфигураторе. Нам нужно искать следующие фрагменты:

Разберем типичный пример проблемного кода в обработке табличной части документа:


// Было:
СуммаНДС = ?(Строка.СтавкаНДС = Перечисления.СтавкиНДС.НДС20, Строка.Сумма * 20 / 120, Строка.Сумма * 10 / 110);

// Стало (правильный подход):
ЧисловаяСтавка = ПолучитьСтавкуНДСЧислом(Строка.СтавкаНДС);
СуммаНДС = Строка.Сумма * ЧисловаяСтавка / (100 + ЧисловаяСтавка);

При использовании обычных форм в УПП не забудьте проверить модули форм документов (ЗаказПокупателя, РеализацияТоваровУслуг, СчетФактураВыданный). В них часто содержатся обработчики событий ПриИзменении для колонки СтавкаНДС, которые также потребуют корректировки логики пересчета сумм. Для УТ 10.3 можно использовать готовые формы УПД, в том числе с учетом прослеживаемости и графой 5б.

Шаг 3. Учет движений по регистрам и раздельный учет

Даже если мы научим формы документов рассчитывать 5% НДС, нам нужно обеспечить корректное отражение данных в регистрах. Проанализируем основные регистры накопления, задействованные в цепочке НДС в УПП:

  1. НДС Продажи
  2. НДС Начисленный
  3. НДС Предъявленный (для входящего налога)

Если ваша компания переходит на упрощенный НДС (5% или 7%), важно помнить, что право на налоговый вычет по входящему НДС в большинстве случаев теряется. Это означает, что при поступлении товаров входящий НДС должен включаться в стоимость (режим "НДС включен в стоимость"). Посмотрим, как это реализовано в УПП: за это отвечает флаг УчитыватьНДС и СуммаВключаетНДС в диалоге «Цены и валюта».

Если вы планируете автоматизировать этот процесс, рассмотрите возможность доработки механизма подстановки параметров в документы. Выясним, как система определяет ставку по умолчанию — обычно это берется из настроек номенклатуры. Следовательно, вам придется массово обновить ставку НДС в справочнике Номенклатура для всех позиций, переходящих на новые ставки.

Шаг 4. Печатные формы и ЭДО

Для корректного формирования печатных форм счетов-фактур и УПД необходимо модифицировать функции формирования текста. В УПП за это часто отвечает общая функция СформироватьТекстНДС(). Проанализируем ее код: она должна корректно подставлять строку «5%» или «7%» в колонку «Налоговая ставка» и правильно рассчитывать итоговые суммы.

Особое внимание уделим ЭДО (Электронному документообороту). ФНС предъявляет строгие требования к XML-файлам. Старые механизмы формирования XML в необновляемой УПП не знают о новых кодах ставок. Если вы отправляете документы через ЭДО непосредственно из УПП, вам потребуется вручную внедрить изменения в модули формирования XML (5.03), соответствующие актуальным приказам ФНС. Без этого контрагенты просто не смогут принять ваши документы, так как форматная проверка выдаст ошибку.

Шаг 5. Интеграция с современной базой для отчетности

Как справедливо заметили участники обсуждения, сдавать декларацию по НДС из старой УПП — задача практически невыполнимая из-за постоянно меняющихся форматов выгрузки. Рассмотрим стратегию выгрузки данных в 1С:Бухгалтерию 3.0 (БП).

Для реализации этой схемы нам потребуется:

  1. Добавить аналогичные ставки НДС в приемнике (БП 3.0), если они еще не появились там в рамках обновлений.
  2. Скорректировать Правила конвертации данных (ПКД) в конфигурации «Конвертация данных 2.1».
  3. Настроить сопоставление (мэппинг) перечислений. Рассмотрим пример:

В правилах выгрузки для перечисления СтавкиНДС необходимо прописать соответствие: ваше новое значение НДС5 из УПП должно четко транслироваться в значение НДС5 в БП 3.0. Проанализируем ситуацию, если в БП ставки реализованы по-другому: в таком случае придется писать обработчик ПередВыгрузкой или ПриЗагрузке.


// Фрагмент правила конвертации значения
Если Источник = Перечисления.СтавкиНДС.НДС5 Тогда
    Значение = "НДС5"; // Имя значения в конфигурации-приемнике
КонецЕсли;

Итоги и рекомендации

Подводя итог, можно сказать, что переход на НДС 5% и 7% в старой УПП — это не только визуальное изменение форм. Посмотрим на критические точки, которые мы разобрали:

Выясним финальный объем работ: если ваша база используется только для внутреннего учета и выписки первичных документов на бумаге, объем правок минимален. Однако, если задействованы механизмы ККТ (кассы), ЭДО или автоматическое заполнение книги продаж, приготовьтесь к масштабному рефакторингу участков кода, отвечающих за налоговый учет.

← На главную