При работе в конфигурации «1С:Бухгалтерия предприятия 2.0» (БП 2.0) пользователи часто сталкиваются с проблемой: при ручном вводе суммы в колонку «Всего» в документе «Реализация товаров и услуг» программа автоматически выделяет НДС по старой ставке 18% (коэффициент 18/118), несмотря на то, что в строке наглядно выбрана новая ставка 20%.
В этой статье мы подробно разберем, почему возникает данная ошибка, проанализируем внутренние механизмы работы конфигурации БП 2.0 и рассмотрим пошаговые методы решения проблемы как для типовых, так и для сильно кастомизированных (доработанных) информационных баз.
Переход на ставку НДС 20% произошел 1 января 2019 года согласно Федеральному закону № 303-ФЗ. В типовых решениях 1С полноценная поддержка новой ставки была реализована в обновлении БП 2.0, начиная с релиза 2.0.66.66. Если ваша база рассчитывает налог некорректно, это происходит по одной из следующих причин:
НДС20 в системное перечисление СтавкиНДС через Конфигуратор. Однако алгоритмы расчетов в общих модулях программы остаются старыми. При изменении поля «Всего» код не находит инструкций для новой ставки и по умолчанию (в блоке Иначе) применяет старую ставку 18%.СуммаНДС = Округлить(Всего * 18 / 118, 2) продолжает работать по старой схеме, игнорируя выбранное пользователем значение.Рассмотрим подробнее каждый способ устранения этой проблемы.
---
Если ваша база находится на поддержке и не имеет критических доработок, препятствующих обновлению, самым правильным решением будет ее обновление до актуального релиза (не ниже 2.0.66.66). При обновлении конфигурации:
СтавкиНДС корректно добавляются предопределенные значения НДС20 и НДС20_120.УчетНДС, ОбщегоНазначения), обновляют свои алгоритмы и функции. Метод обратного расчета НДС из «Всего» начинает автоматически применять математический коэффициент 20/120.---
Если база заблокирована для обновлений из-за многочисленных доработок, нам придется исправить алгоритм расчета вручную. Разберем по шагам, где и что нужно изменить.
Во-первых, найдем функцию, которая преобразует значение перечисления в числовой формат. Как правило, в БП 2.0 эта функция расположена в общем модуле УчетНДС или ОбщегоНазначения и называется ПолучитьСтавкуНДСЧислом. Нам необходимо убедиться, что в ней прописана обработка новой ставки.
Проанализируем пример кода, который необходимо внедрить в эту функцию:
Функция ПолучитьСтавкуНДСЧислом(СтавкаНДС) Экспорт
Если СтавкаНДС = Перечисления.СтавкиНДС.НДС20
Или СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
Возврат 20;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС18
Или СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118 Тогда
Возврат 18;
ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10
Или СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
Возврат 10;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Во-вторых, проверим форму документа РеализацияТоваровУслуг. Нам интересны обработчики ожидания изменения колонок табличной части «Товары» и «Услуги». Откроем модуль формы документа и найдем процедуры ТоварыВсегоПриИзменении и УслугиВсегоПриИзменении.
Обычно расчет происходит через вызов общей процедуры пересчета строки. Убедимся, что в ней нет жестко прописанных констант «18» и «118». Типовой вызов должен выглядеть следующим образом:
Процедура ТоварыВсегоПриИзменении(Элемент)
СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущаяСтрока;
// Вызываем типовой механизм пересчета строки при изменении поля "Всего"
ОбработкаТабличныхЧастей.РассчитатьСуммуИНДСПриИзмененииВсего(СтрокаТабличнойЧасти, ЭтотОбъект);
КонецПроцедуры
Если в вашей конфигурации вместо вызова общего модуля написан самописный расчет, замените жесткие числа на динамическое получение ставки с помощью функции ПолучитьСтавкуНДСЧислом(СтрокаТабличнойЧасти.СтавкаНДС).
---
Иногда расчет «Всего» и НДС отрабатывает не так, как ожидает пользователь, из-за неверно установленного режима налогообложения в конкретном документе. Механика пересчета напрямую зависит от параметров в окне «Цены и валюта» (ссылка находится в шапке документа РеализацияТоваровУслуг):
НДС = Сумма * 20 / 120.Сумма = Всего / 1.20, а затем НДС = Сумма * 0.20. Убедитесь, что в форме настроек цен выбран правильный вариант, соответствующий вашему первичному документу.---
Чтобы пользователям не приходилось каждый раз вручную менять ставку с 18% на 20% в каждой строке табличной части, выполним две важные настройки:
Номенклатура. Если позиций много, воспользуемся стандартной обработкой «Групповая обработка справочников и документов» (меню Сервис -> Дополнительные отчеты и обработки). Выберем объект «Справочник Номенклатура», добавим отбор по ставке НДС «18%» и установим действие «Изменить реквизит: Ставка НДС» на значение «20%».Выполнив указанные шаги, мы добьемся корректного и полностью автоматического пересчета всех суммовых показателей при заполнении поля «Всего» в любых документах реализации.