Переход на новую ставку НДС — это не просто изменение цифры в справочнике. Для систем на базе 1С, особенно для нетиповых и сильно кастомизированных решений (таких как УПП или самописные конфигурации), этот процесс требует комплексного подхода: от аудита программного кода до изменения логики работы с государственными контрактами и кассовым оборудованием. В этой статье мы подробно разберем, какие шаги необходимо предпринять программисту и администратору системы для корректного перехода.
Начнем с самого очевидного, но критически важного этапа — актуализации нормативно-справочной информации. Если в вашей системе ставка 20% уже заведена в перечислении или справочнике, это упрощает задачу, но не решает её полностью.
Разберем последовательность действий в интерфейсе и метаданных:
Номенклатура. В большинстве конфигураций ставка НДС привязана к конкретной позиции. Необходимо массово обновить значение ставки с 18% на 20%. Это можно сделать с помощью обработки "Групповое изменение реквизитов". Однако будьте внимательны: изменения должны вступать в силу строго с даты перехода (например, 1 января).В нетиповых конфигурациях разработчики часто используют "быстрые решения", которые могут привести к ошибкам при расчетах. Нам необходимо провести глобальный поиск по всей конфигурации.
Проанализируем программный код на наличие жестко заданных чисел. Особое внимание уделим поиску строк, содержащих значения 18 и 118. В старых системах расчет суммы НДС часто прописывался формулой:
// Пример ошибочного кода с жесткой привязкой ставки
СуммаНДС = СуммаДокумента * 18 / 118;
Такой подход недопустим. Разберем, как правильно реализовать расчет. Программа должна динамически получать числовой коэффициент из объекта ставки НДС. Рассмотрим пример корректного извлечения данных:
// Правильный подход: получение ставки из реквизита документа
ЧислоСтавки = НалоговыйУчет.ПолучитьСтавкуНДС(СтавкаНДС); // Условная функция получения числа
СуммаНДС = СуммаДокумента * ЧислоСтавки / (100 + ЧислоСтавки);
Выясним причины возможных сбоев в запросах. Если в системе есть отчеты, построенные на прямых запросах к базе данных или использующие условия вида ГДЕ СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18), их необходимо переработать, чтобы они учитывали обе ставки (и 18%, и 20%) в зависимости от периода отчета.
Одной из самых сложных задач является корректный учет НДС в ситуациях, когда оплата и отгрузка происходят в разные периоды. Посмотрим на алгоритм работы с авансами:
Повышение ставки неизбежно влечет за собой обновление форм отчетности. Согласно Постановлению Правительства № 1137, изменения затрагивают практически все документы учета НДС:
Счета-фактуры и книги продаж/покупок:
Если конфигурация нетиповая, вам придется вручную модифицировать макеты печатных форм. Проанализируем ситуацию: часто в макетах заголовки колонок (например, "НДС 18%") прописаны текстом. Их нужно заменить на параметры, которые будут меняться в зависимости от даты документа.
Ситуация с возвратами после смены ставки часто вызывает путаницу. Выясним причину: ФНС указала, что при возврате товара, отгруженного до повышения ставки, необходимо использовать ставку, действовавшую на момент отгрузки (18%).
Для программиста это означает, что документ возврата (или корректировки реализации) должен обладать "памятью". Рассмотрим по шагам:
Если ваша 1С работает с фискальными регистраторами, просто поменять настройки в программе недостаточно. Разберем критический момент: с 1 января чек с указанием ставки 18% является нарушением.
Необходимо проверить:
Посмотрим на пример логики в коде обработки торгового оборудования:
// Проверка периода для передачи правильного тега на ФР
Если ДатаДокумента >= ДатаПерехода Тогда
ОбъектДрайвера.СтавкаНДС = 20;
Иначе
ОбъектДрайвера.СтавкаНДС = 18;
КонецЕсли;
Адаптация нетиповой системы — это процесс, требующий тесного взаимодействия программиста и бухгалтера. Рекомендуется начать с полного аудита всех мест в коде, где встречается расчет налога, и плавно переходить к обновлению печатных форм и механизмов выгрузки отчетности. Помните, что главной сложностью будет не само число "20", а корректная обработка документов переходного периода и возвратов по старым сделкам.