Как добавить ставку НДС 20% в старые конфигурации 1С на обычных формах (УТ 10.3, УПП 1.3)

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

Переход на новую ставку НДС 20% для владельцев сильно кастомизированных или старых версий конфигураций (таких как Управление торговлей 10.3, Управление производственным предприятием 1.3 или Комплексная автоматизация 1.1) представляет собой серьезную техническую задачу. Простого добавления нового значения в перечисление зачастую недостаточно. В этой статье мы подробно разберем, как комплексно подойти к этой задаче, проанализируем необходимые изменения в коде и разберем нюансы работы с торговым оборудованием.

Шаг 1: Модификация метаданных и перечислений

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

  1. Добавим значение НДС20 (со значением 20%).
  2. Добавим расчетную ставку НДС20_120 (для работы с межрасчетными суммами).

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

Шаг 2: Глобальный поиск и устранение «говнокода»

Проанализируем ситуацию, когда разработчики прошлых лет использовали «магические числа» прямо в тексте модулей. Рассмотрим пример кода, который часто встречается в обработках выгрузки данных или формирования XML-отчетов:


Если НовыйФормат Тогда
    ЗаписьXML.ЗаписатьАтрибут("SumTAXNone", XMLСтрока(ОбщиеПараметры.СуммаБезНДС)); 
    ЗаписьXML.ЗаписатьАтрибут("SumTAX0", XMLСтрока(ОбщиеПараметры.СуммаНДС0));
    ЗаписьXML.ЗаписатьАтрибут("SumTAX10", XMLСтрока(ОбщиеПараметры.СуммаНДС10)); 
    ЗаписьXML.ЗаписатьАтрибут("SumTAX18", XMLСтрока(ОбщиеПараметры.СуммаНДС18)); 
    ЗаписьXML.ЗаписатьАтрибут("SumTAX110", XMLСтрока(ОбщиеПараметры.СуммаНДС110)); 
    ЗаписьXML.ЗаписатьАтрибут("SumTAX118", XMLСтрока(ОбщиеПараметры.СуммаНДС118));
КонецЕсли;

В данном случае система просто проигнорирует ставку 20%, так как для нее не предусмотрен атрибут. Нам необходимо выполнить глобальный поиск по всей конфигурации по следующим ключам:

Выясним причину использования таких конструкций. Чаще всего это связано с внешними печатными формами или специфическими обменами. Все подобные участки кода нужно привести к универсальному виду или дополнить условиями для новой ставки 20%.

Шаг 3: Настройка работы с контрольно-кассовой техникой (ККТ)

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

Если в ККТ ставка 20% зарегистрирована под индексом «1», а в коде 1С передается индекс, соответствующий старой ставке 18%, касса либо выдаст ошибку, либо пробьет чек с неверным налогом. Выясним, как это исправить:

  1. Необходимо обновить драйвер ККТ до версии, поддерживающей ФФД 1.05 или выше.
  2. В модуле ОбщиеПараметрыЧека (или аналогичном в вашей конфигурации) нужно сопоставить новое значение перечисления Перечисления.СтавкиНДС.НДС20 с соответствующим номером налоговой группы в настройках драйвера.

Шаг 4: Математика перехода и обновление цен

Проанализируем вопрос изменения цен. Если ваша компания работает «от розничной цены» (включающей НДС), то автоматическое изменение ставки с 18% на 20% при неизменной конечной цене приведет к уменьшению вашей чистой прибыли. Рассмотрим, как правильно пересчитать цены, чтобы сохранить доходность без изменения цены «без НДС».

Воспользуемся формулой: НоваяЦена = СтараяЦена / 1.18 * 1.20.

Для массового обновления цен в справочнике Номенклатура или в документе Установка цен номенклатуры следует использовать коэффициент 1,01695. Разберем пример:


// Пример расчета наценки в процентах
Коэффициент = 1.20 / 1.18; // ~1.016949
ПроцентНаценки = (Коэффициент - 1) * 100; // ~1.695%

Рекомендуем использовать групповую обработку справочников и документов для массового изменения ставок НДС в карточках товаров с 18% на 20% перед началом нового отчетного периода.

Шаг 5: Печатные формы и отчетность

Посмотрим на макеты печатных форм. В старых конфигурациях заголовки колонок в счетах-фактурах или ТОРГ-12 часто содержат статичный текст «в т.ч. НДС 18%». Проанализируем алгоритм исправления:

Если ваша база сильно отстала от обновлений, лучшим решением будет «подсмотреть» логику формирования этих отчетов в актуальном релизе УТ 10.3 или БП 2.0 (на обычных формах) и перенести соответствующие изменения в свою конфигурацию.

Шаг 6: Работа в переходный период

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

  1. Возвраты: Если товар отгружен в прошлом году по ставке 18%, возврат должен оформляться также по ставке 18%. Система должна корректно отрабатывать выбор ставки в зависимости от даты первичного документа.
  2. Корректировочные счета-фактуры: При изменении стоимости отгрузок, совершенных до перехода, используется ставка, действовавшая на момент отгрузки.
  3. Авансы: Если аванс получен при 18%, а отгрузка идет при 20%, необходимо корректно настроить регламентные документы по зачету НДС (например, Регистрация счетов-фактур на аванс), чтобы не возникло расхождений на счетах учета.

Таким образом, переход на НДС 20% — это не просто добавление строчки в список, а комплексная проверка всей логики системы: от формирования XML-пакетов до правильности округления копеек в печатных формах.

← На главную