Как отразить переход на ставку НДС 20% в 1С:УПП 1.3 и какие изменения произошли в коде

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

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

Изменения в перечислении СтавкиНДС

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

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


Функция СтавкиПоОперациямОтражаемымВКнигеПродаж(ВерсияПостановленияНДС1137) Экспорт
    
    МассивСтавок = Новый Массив;
    
    МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС0);
    МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС10);
    МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС10_110);
    МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС18);
    МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС18_118);
    МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС20); // Добавлено в новом релизе
    МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС20_120); // Добавлено в новом релизе
        
    Если ВерсияПостановленияНДС1137 < 3 Тогда
        МассивСтавок.Добавить(Перечисления.СтавкиНДС.БезНДС);
    КонецЕсли;
    
    Возврат МассивСтавок;
    
КонецФункции

Важный момент: порядок ставок в перечислении также претерпел изменения. В последних релизах ставка 20% выведена на первые позиции для удобства выбора пользователем, что может привести к «сдвигу» индексов, если ваша система обмена с торговым оборудованием (например, ККМ-Offline) опирается на порядковый номер значения в списке.

Корректировка программных модулей для работы с НДС 20%

Помимо модуля менеджера перечисления, изменения затронули ключевые общие модули. Если вы ведете разработку на «кастомизированной» (сильно измененной) конфигурации, вам потребуется вручную перенести изменения в следующие точки:

  1. Общий модуль УчетНДСПереопределяемый:
    • В процедуре ЗаполнитьСписокВыбораСтавокНДС необходимо добавить новые значения 20% и 20/120 в визуальные списки выбора документов.
    • В процедуре УстановитьУсловноеОформлениеДляНДСпоСтавкам4и2 нужно прописать логику выделения цветом или шрифтом новых ставок.
  2. Общий модуль ЦенообразованиеКлиентСервер:
    • В функции ПолучитьСтавкуНДСЧислом необходимо добавить обработку новых значений перечисления, чтобы система понимала: Перечисления.СтавкиНДС.НДС20 соответствует числу 20.

Исправление ошибок фискализации чеков

В релизе 1.3.114 была замечена досадная ошибка: в функции ПолучитьСтавкуНДСДляФискализацииЧека (которая обычно находится в модуле управления торговым оборудованием или специализированных модулях печати чеков) разработчики «забыли» добавить обработку ставки 20%. Это приводило к тому, что при печати чека ставка либо не определялась, либо вызывала ошибку драйвера ККТ.

Рассмотрим, как должен выглядеть исправленный блок кода в этой функции:


Функция ПолучитьСтавкуНДСДляФискализацииЧека(СтавкаНДС, ПорядокНалогообложения = "") Экспорт
    
    Если СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС") 
        ИЛИ СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.ПустаяСсылка")
        ИЛИ ВРег(ПорядокНалогообложения) = "ЕНВД" Тогда
        Результат = "";
    ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС10") Тогда
        Результат = 10;
    ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС18") Тогда
        Результат = 18;
    ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20") Тогда // Добавляем условие
        Результат = 20;
    ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС10_110") Тогда
        Результат = 110;
    ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС18_118") Тогда
        Результат = 118;
    ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20_120") Тогда // Добавляем условие
        Результат = 120;
    КонецЕсли;
        
    Возврат Результат;
    
КонецФункции

Обратите внимание: для корректной работы со ставкой 20% версия вашего Формата Фискальных Данных (ФФД) должна быть не ниже 1.05, а прошивка самой кассы должна поддерживать новые теги. Без обновления прошивки ККТ даже при правильном коде в 1С касса может выдать ошибку «Неверная налоговая ставка».

Работа с Помощником перехода на НДС 20%

Для того чтобы не менять ставку НДС в каждой карточке товара вручную, в типовую конфигурацию УПП встроен специальный инструмент — «Помощник замены ставки НДС на 20%». Найти его можно через меню Операции -> Обработки.

Рассмотрим алгоритм работы с этим помощником:

  1. Вызовите обработку и выберите дату перехода (по умолчанию 01.01.2019).
  2. Система автоматически найдет объекты, где установлена ставка 18%. К ним относятся:
    • Справочник Номенклатура (основная ставка).
    • Справочник Номенклатурные группы.
    • Справочник Договоры контрагентов (если там зафиксирована ставка).
  3. Помощник также предложит обновить цены в документах Установка цен номенклатуры. Это критически важно, так как при увеличении ставки НДС на 2% сумма «включая НДС» может измениться, либо потребуется пересчет чистой стоимости.
  4. После нажатия кнопки «Выполнить» система произведет групповую замену значений.

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

Особенности переходного периода

Проанализируем ситуацию с корректировочными счетами-фактурами. В коде УПП реализована логика, согласно которой ставка в корректировке зависит от даты исходного документа отгрузки. Если товар был отгружен в 2018 году по ставке 18%, то даже если возврат или корректировка происходят в 2019 году, в документе должна фигурировать ставка 18%. Система определяет это автоматически, анализируя документ-основание.

Что касается авансов: при зачете аванса, полученного в 2018 году (под 18%), в счет отгрузки 2019 года (под 20%), возникает разница в 2%. В 115-м релизе УПП были доработаны механизмы отражения доплат НДС от покупателей, позволяющие корректно закрыть эту разницу в регистрах накопления НДС Начисленный и НДС Расчеты с покупателями.

В завершение отметим, что релиз 1.3.114 содержал ряд недоработок в части работы с ЭДО и справочником ПакетЭДПрисоединенныеФайлы, поэтому крайне рекомендуется обновляться сразу до версии 1.3.115 или выше, где большинство описанных выше «детских болезней» перехода было исправлено разработчиками 1С.

← На главную