Переход на новые ставки НДС — задача, с которой регулярно сталкиваются разработчики и администраторы систем на базе «1С:Предприятие». В отраслевом решении «Альфа-Авто: Автосалон+Автосервис+Автозапчасти» редакции 5.1 эта процедура имеет свои важные архитектурные особенности. Неправильные действия при обновлении ставок могут привести к катастрофическим последствиям: искажению сумм налога в закрытых периодах, расхождениям при выгрузке в бухгалтерские программы и штрафам от налоговых органов.
В этой статье мы подробно разберем, как устроена логика работы со ставками НДС в «Альфа-Авто», почему ручное изменение предопределенных элементов в конфигураторе является грубой ошибкой, и как правильно выполнить переход на новую ставку по умолчанию (например, 20%) штатными и альтернативными методами.
Прежде чем вносить изменения, давайте разберем, как система определяет, какую ставку НДС использовать при создании новой номенклатуры или оформлении документов. В конфигурации «Альфа-Авто» редакции 5 существует справочник СтавкиНДС. В этом справочнике разработчиками «1С-Рарус» заложен предопределенный элемент с программным именем ОсновнаяСтавкаНДС.
При создании нового элемента номенклатуры, карточки услуги или нового документа (например, заказ-наряда, поступления или реализации товаров) система программно обращается к этому предопределенному элементу:
// Пример логики подстановки ставки по умолчанию в Альфа-Авто
НоваяСтрока.СтавкаНДС = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС;
Таким образом, ставка по умолчанию жестко привязана к конкретному предопределенному элементу в базе данных. Именно это вызывает сложности при необходимости изменить значение по умолчанию с одной ставки на другую.
Рассмотрим ситуацию, с которой часто сталкиваются начинающие разработчики. В поисках быстрого решения они открывают Конфигуратор, находят справочник СтавкиНДС, переходят в предопределенные элементы и меняют значение (или наименование) элемента ОсновнаяСтавкаНДС с «18%» на «20%». Затем в режиме «1С:Предприятие» они корректируют числовую ставку в этой записи на 20.
Выясним причину, почему так делать категорически нельзя:
ОсновнаяСтавкаНДС.Поэтому главная задача при смене основной ставки — сохранить старое значение 18% для исторических документов и сделать так, чтобы все новые объекты создавались со значением 20%.
Самый безопасный и правильный способ решить задачу — обновить конфигурацию «Альфа-Авто» до актуального релиза (для перехода на ставку 20% версия конфигурации должна быть не ниже 5.1.15.09). Начиная с этих релизов, разработчики из «1С-Рарус» внедрили специальный механизм автоматизированного перехода.
Разберем по шагам, как работает штатная обработка «Обновление ставки НДС», запускаемая при обновлении информационной базы:
СтавкиНДС новый непредопределенный элемент с наименованием «18%» и числовым значением ставки 18.ОсновнаяСтавкаНДС заменяются ссылкой на вновь созданный элемент «18%». При этом запись документов производится в режиме отключения проверок (ОбменДанными.Загрузка = Истина), чтобы не нарушить последовательность проведения и не заблокировать базу.ОсновнаяСтавкаНДС переименовывается в «20%», а его числовое значение меняется на 20.В результате этой процедуры старые документы продолжают использовать ставку 18% через новый обычный элемент справочника, а все новые документы и номенклатура по умолчанию получают ставку 20%, так как она осталась привязана к предопределенному элементу ОсновнаяСтавкаНДС.
Если ваша база данных «Альфа-Авто» сильно кастомизирована, находится на поддержке с изменениями, и оперативно обновить ее до типового релиза 5.1.15.09+ невозможно, вам придется повторить алгоритм штатного обновления вручную.
Рассмотрим подробнее, как это реализовать с помощью написания внешней обработки:
СтавкиНДС в режиме «1С:Предприятие» новый элемент с наименованием «18%» (числовая ставка — 18).
// Пример кода для замены ставок в документах прошлых периодов
ВыборкаДокументов = Документы.ЗаказНаряд.Выбрать(ДатаНачалаПериода, ДатаКонцаПериода);
СтараяПредопределенная = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС;
НоваяНепредопределенная18 = Справочники.СтавкиНДС.НайтиПоНаименованию("18%");
Пока ВыборкаДокументов.Следующий() Цикл
ОбъектДок = ВыборкаДокументов.ПолучитьОбъект();
Модифицирован = Ложь;
// Перебираем табличную часть с товарами/работами
Для Каждого СтрокаТЧ Из ОбъектДок.Товары Цикл
Если СтрокаТЧ.СтавкаНДС = СтараяПредопределенная Тогда
СтрокаТЧ.СтавкаНДС = НоваяНепредопределенная18;
Модифицирован = Истина;
EndIf;
КонецЦикла;
Если Модифицирован Тогда
ОбъектДок.ОбменДанными.Загрузка = Истина; // Отключаем проведение и проверки
ОбъектДок.Записать(РежимЗаписиДокумента.Запись);
КонецЕсли;
КонецЦикла;
Важно: Аналогичную замену необходимо произвести во всех типах документов, где присутствует реквизит ставки НДС (ПоступлениеТоваров, РеализацияТоваров, ЧекККМ и др.), а также в карточках справочника Номенклатура.
Только после того, как во всей базе данных за прошлые периоды не останется ни одной ссылки на Справочники.СтавкиНДС.ОсновнаяСтавкаНДС, вы можете зайти в Конфигуратор и безопасно изменить параметры предопределенного элемента ОсновнаяСтавкаНДС на 20%.
Существует еще один альтернативный вариант, который часто применяют программисты, чтобы избежать массовой перезаписи исторических документов. Он заключается в создании нового предопределенного элемента для новой ставки и перенаправлении обращений в коде конфигурации.
Проанализируем этот алгоритм:
СтавкиНДС, перейдите на вкладку «Прочее» и нажмите кнопку «Предопределенные».ОсновнаяСтавкаНДС нетронутым (он по-прежнему отвечает за 18% и используется в старых документах).СтавкаНДС20.ОсновнаяСтавкаНДС. Во всех местах, где этот элемент используется для подстановки по умолчанию в новые объекты, замените его на ваш новый предопределенный элемент:
// Было:
// СтавкаПоУмолчанию = Справочники.СтавкиНДС.ОсновнаяСтавкаНДС;
// Стало:
СтавкаПоУмолчанию = Справочники.СтавкиНДС.СтавкаНДС20;
Этот способ хорош тем, что вам не нужно перезаписывать миллионы строк в исторических документах. Однако он требует аккуратности при поиске и замене кода в конфигурации, особенно в общих модулях и модулях менеджеров документов.
Помните, что простого изменения ставки НДС внутри базы данных «Альфа-Авто» недостаточно для корректного ведения торговой деятельности. Обязательно проверьте настройки интеграции с торговым оборудованием (фискальными регистраторами):
Используя приведенные инструкции, вы сможете корректно перевести вашу базу «Альфа-Авто» 5 на работу с новой ставкой НДС, сохранив при этом полную целостность ведения учета за предыдущие периоды.