Переход на ставку НДС 20% в конфигурации «Управление производственным предприятием» (УПП) редакции 1.3 потребовал значительных изменений как в метаданных, так и в программных модулях. Разберем подробно, что именно изменилось в коде, как исправить возможные ошибки в логике фискализации и каким инструментом воспользоваться для автоматического обновления данных в справочниках.
Первое и самое очевидное изменение коснулось перечисления СтавкиНДС. В состав значений были добавлены новые элементы: НДС20 и НДС20_120. Однако простого добавления элементов в дерево метаданных недостаточно. Для корректного формирования отчетности и работы алгоритмов определения ставок необходимо обновить модуль менеджера этого перечисления.
Проанализируем функцию СтавкиПоОперациямОтражаемымВКнигеПродаж, которая находится в модуле менеджера перечисления СтавкиНДС. В обновленных релизах (начиная со 114-го) она выглядит следующим образом:
Функция СтавкиПоОперациямОтражаемымВКнигеПродаж(ВерсияПостановленияНДС1137) Экспорт
МассивСтавок = Новый Массив;
МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС0);
МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС10);
МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС10_110);
МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС18);
МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС18_118);
МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС20); // Добавлено в новом релизе
МассивСтавок.Добавить(Перечисления.СтавкиНДС.НДС20_120); // Добавлено в новом релизе
Если ВерсияПостановленияНДС1137 < 3 Тогда
МассивСтавок.Добавить(Перечисления.СтавкиНДС.БезНДС);
КонецЕсли;
Возврат МассивСтавок;
КонецФункции
Важный момент: порядок ставок в перечислении также претерпел изменения. В последних релизах ставка 20% выведена на первые позиции для удобства выбора пользователем, что может привести к «сдвигу» индексов, если ваша система обмена с торговым оборудованием (например, ККМ-Offline) опирается на порядковый номер значения в списке.
Помимо модуля менеджера перечисления, изменения затронули ключевые общие модули. Если вы ведете разработку на «кастомизированной» (сильно измененной) конфигурации, вам потребуется вручную перенести изменения в следующие точки:
УчетНДСПереопределяемый:
ЗаполнитьСписокВыбораСтавокНДС необходимо добавить новые значения 20% и 20/120 в визуальные списки выбора документов.УстановитьУсловноеОформлениеДляНДСпоСтавкам4и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%». Найти его можно через меню Операции -> Обработки.
Рассмотрим алгоритм работы с этим помощником:
Номенклатура (основная ставка).Номенклатурные группы.Договоры контрагентов (если там зафиксирована ставка).Установка цен номенклатуры. Это критически важно, так как при увеличении ставки НДС на 2% сумма «включая НДС» может измениться, либо потребуется пересчет чистой стоимости.Важное замечание для пользователей БИТ.ФИНАНС: Если ваша УПП дополнена модулями БИТа, обычного обновления типовой части может быть недостаточно. БИТ.ФИНАНС часто использует собственные регистры для хранения аналитики НДС в целях бюджетирования. Убедитесь, что вы обновили и надстройку, иначе данные в регламентированном и управленческом учете начнут расходиться.
Проанализируем ситуацию с корректировочными счетами-фактурами. В коде УПП реализована логика, согласно которой ставка в корректировке зависит от даты исходного документа отгрузки. Если товар был отгружен в 2018 году по ставке 18%, то даже если возврат или корректировка происходят в 2019 году, в документе должна фигурировать ставка 18%. Система определяет это автоматически, анализируя документ-основание.
Что касается авансов: при зачете аванса, полученного в 2018 году (под 18%), в счет отгрузки 2019 года (под 20%), возникает разница в 2%. В 115-м релизе УПП были доработаны механизмы отражения доплат НДС от покупателей, позволяющие корректно закрыть эту разницу в регистрах накопления НДС Начисленный и НДС Расчеты с покупателями.
В завершение отметим, что релиз 1.3.114 содержал ряд недоработок в части работы с ЭДО и справочником ПакетЭДПрисоединенныеФайлы, поэтому крайне рекомендуется обновляться сразу до версии 1.3.115 или выше, где большинство описанных выше «детских болезней» перехода было исправлено разработчиками 1С.