С 1 января 2025 года вступают в силу значительные изменения налогового законодательства, согласно которым плательщики на УСН с доходом более 60 миллионов рублей становятся плательщиками НДС. Для многих компаний, работающих на старых, но стабильных версиях 1С:Управление торговлей 10.3, это создает серьезный технический вызов. Официальная поддержка конфигурации ограничена, поэтому комплексное обновление УТ 10.3 с поддержкой НДС 5% и 7% ложится на плечи технических специалистов. В этой статье мы подробно разберем, как реализовать этот функционал, не нарушив логику работы системы.
Проанализируем ситуацию: многие пользователи ошибочно полагают, что достаточно просто заменить старую ставку 18% на новую 5% или добавить одно значение в перечисление. Однако УТ 10.3 — это сложная система, где НДС участвует не только в расчетах внутри документа, но и в формировании печатных форм, обмене с бухгалтерскими программами и, что самое важное, в передаче данных на контрольно-кассовую технику (ККТ). Рассмотрим пошагово, какие изменения необходимо внести для полноценной поддержки новых ставок.
Первым делом нам необходимо добавить новые значения в метаданные. Это фундамент, на котором будет строиться вся дальнейшая логика. Найдем в дереве конфигурации перечисление СтавкиНДС. Нам потребуется добавить следующие значения:
Важный момент: простого добавления недостаточно. Система должна понимать, какое числовое значение соответствует каждому элементу перечисления.
Разберем работу общего модуля УчетНДС. Именно здесь сосредоточена логика преобразования перечисления в число. Нам необходимо найти функцию, которая возвращает ставку числом (обычно это ПолучитьСтавкуНДСЧислом), и дополнить её. Рассмотрим пример кода, который необходимо внедрить:
Функция ПолучитьСтавкуНДСЧислом(СтавкаНДС) Экспорт
Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
Возврат 20;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
Возврат 18;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС5 Тогда
Возврат 5;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС5_105 Тогда
Возврат 5;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС7 Тогда
Возврат 7;
// ... и так далее для остальных ставок
КонецЕсли;
КонецФункции
Также проанализируем модуль РаботаСДиалогами. В нем часто прописаны фильтры для выбора ставок в формах документов. Если не добавить новые значения туда, пользователь просто не увидит ставку 5% в выпадающем списке документа "Реализация товаров и услуг".
Это самый критический этап. Даже если 1С правильно посчитает сумму налога, кассовый аппарат может выдать ошибку или пробить чек с неверным налогом. Выясним причину: драйвер ККТ (например, АТОЛ или Штрих-М) сопоставляет ставку из 1С с номером налоговой секции в настройках кассы.
Нам потребуется внести изменения в обработки обслуживания ККТ. Чтобы избежать ошибок формата "items[0].tax.type", рекомендуется использовать актуальную обработку обслуживания для АТОЛ под НДС 5% и 7%. В коде нужно прописать маппинг. Обычно для ставки 5% используется тег ФФД со значением налоговой группы 5, но это строго зависит от прошивки вашей кассы. Рассмотрим пример логики:
Если СтавкаНДС_1С = Перечисления.СтавкиНДС.НДС5 Тогда
НалоговаяГруппаККТ = 5; // Значение согласно документации драйвера
ИначеЕсли СтавкаНДС_1С = Перечисления.СтавкиНДС.НДС7 Тогда
НалоговаяГруппаККТ = 6;
КонецЕсли;
Внимание: перед запуском обязательно проверьте версию компоненты 1C:Печать чеков. Старые версии могут не поддерживать передачу новых ставок даже при корректном коде в 1С.
Добавление ставки в перечисление не гарантирует её автоматическое появление в печатных формах. В УТ 10.3 макеты счетов-фактур часто содержат жесткую привязку к тексту. Для корректного отображения данных можно использовать внешнюю печатную форму Счет-фактура с изменениями 2025-2026 года или аналогичный УПД для УТ 10.3, которые поддерживают автоподбор ставок и работу с авансами.
Если вы правите формы вручную, выполните следующие действия:
РеализацияТоваровУслуг).НДС5 в колонку "Ставка" попадает строка "5%", а не пустое значение.Проанализируем ситуацию, когда в одной базе ведется учет по нескольким фирмам с разными режимами налогообложения (например, одна на ОСНО с 20%, а другая на УСН с 5%). Использование реквизита "Ставка НДС" в справочнике Номенклатура становится неудобным, так как для одного и того же товара ставка будет разной в зависимости от продавца.
В этом случае рекомендуется доработать механизм заполнения документов. При выборе организации в документе система должна автоматически пересчитывать ставку НДС в табличной части, игнорируя значение по умолчанию из карточки товара. Это можно реализовать через подписку на событие или в процедуре ПриИзмененииОрганизации.
Если вы используете типовой обмен через Конвертацию данных, помните: правила обмена (XML) не знают о существовании ваших новых ставок. Рассмотрим риски: при выгрузке документа реализация со ставкой 5% в 1С:Бухгалтерию 3.0, программа-приемник либо выдаст ошибку, либо подставит ставку "Без НДС".
Чтобы этого избежать, необходимо отредактировать правила обмена в конфигурации "Конвертация данных", добавив соответствие (ПКС) для перечисления СтавкиНДС. Вы можете использовать готовое правило обмена для УТ10 и БП 3.0 со ставками НДС 5% и 7% или обновить типовые правила обмена для НДС 5, 7 и 22%. Нужно сопоставить ваше новое значение НДС5 со значением НДС5 в Бухгалтерии.
Как мы видим, задача "просто добавить 5%" превращается в полноценный проект доработки системы. Для полноценной реализации необходимо:
Для тех, кто не готов к таким глубоким изменениям кода вручную, существуют так называемые "альтернативные ветки обновлений" — готовые сборки от сообщества разработчиков, которые включают в себя не только поддержку новых ставок НДС, но и работу с маркировкой "Честный знак" для старых версий УТ 10.3. Однако, какой бы путь вы ни выбрали, всегда делайте полную резервную копию базы перед внесением изменений в структуру данных.