После обновления конфигурации 1С:Розница 2.3 (начиная с релизов 2.3.23.хх) многие пользователи столкнулись с неприятной ситуацией: при оформлении продаж через «Новое РМК» в кассовый чек передается ставка «Без НДС», хотя в карточках номенклатуры и учетной политике организации верно указаны ставки 10%, 20% или новые ставки 5%, 7% и 22%. Примечательно, что в старом интерфейсе РМК проблема может не проявляться, что прямо указывает на изменения в программной логике нового интерфейса.
В рамках данной статьи мы подробно разберем причины возникновения этой ошибки и рассмотрим несколько способов её решения: от настройки регистров сведений до внесения изменений в программный код и правила обмена данными.
Проанализируем работу механизмов определения налогового режима в новом РМК. В отличие от старого интерфейса, новый алгоритм более чувствителен к детализации записей в регистре сведений Применение систем налогообложения. Часто программа «теряется», если в регистре указано слишком много уточняющих записей (по складам или магазинам).
Рассмотрим шаги по приведению регистра в порядок:
Применение систем налогообложения.Если манипуляции с регистрами не помогли, выясним причину в программном коде. В новых релизах логика заполнения ставки НДС в РМК была вынесена в специализированные модули. Рассмотрим пример исправления, который позволяет принудительно заставить систему корректно определять НДС.
Шаг 1. Модификация заполнения ставки НДС
Нам необходимо внести изменения в общий модуль ОбщегоНазначенияРМКРТ, процедуру ЗаполнитьСтавкуНДС. Разберем логику: нам нужно убедиться, что проверка применения НДС выполняется на текущую дату сеанса для конкретной организации.
Процедура ЗаполнитьСтавкуНДС(Объект, ТекущаяСтрока, СНОПоУмолчанию, СтавкаНДС)
ЭтоВозврат = Объект.ВидОперации = Перечисления.ВидыОперацийЧекККМ.Возврат;
Если ЭтоВозврат Тогда
Возврат;
КонецЕсли;
// Принудительно инициализируем ставку, если алгоритм дает сбой
СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
Дата = ТекущаяДатаСеанса();
// Используем стандартный метод проверки применения НДС из общего модуля УчетНДС
ПрименяетсяНДС = УчетНДС.ПрименяетсяНДС(Дата, Объект.Организация, Объект.ТорговыйОбъект);
// Если НДС применяется, здесь должна быть логика выбора ставки из номенклатуры
// ... дальнейшая логика типового кода ...
КонецПроцедуры
Шаг 2. Корректировка числового значения ставки
В общем модуле ОбщегоНазначенияРМКРТКлиентСервер в функции СтавкаНДСЧислом может отсутствовать обработка новых или специфических ставок (например, 22%). Проанализируем пример функции с добавленными условиями:
Функция СтавкаНДСЧислом(СтавкаНДС)
Если СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС10")
ИЛИ СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС10_110") Тогда
Возврат 0.1;
ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20")
ИЛИ СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС20_120") Тогда
Возврат 0.2;
ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС5")
ИЛИ СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС5_105") Тогда
Возврат 0.05;
ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС7")
ИЛИ СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС7_107") Тогда
Возврат 0.07;
ИначеЕсли СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС22")
ИЛИ СтавкаНДС = ПредопределенноеЗначение("Перечисление.СтавкиНДС.НДС22_122") Тогда
Возврат 0.22;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
Часто проблема со ставками (особенно 5%, 7% или 22%) перетекает в невозможность синхронизации данных с 1С:Бухгалтерия предприятия 3.0. Обмен «затыкается», так как правила конвертации в Рознице не знают о существовании новых узлов в XML-файле обмена.
Для решения этой проблемы выполним следующие действия:
EnterpriseData).EnterpriseData_1_13.xml или выше), которые поставляются с последними релизами конфигураций. Это позволит передавать новые ставки НДС без ошибок в документах Отчет о розничных продажах.Разберем ситуацию со специфической ставкой 22%. На текущий момент многие ОФД и версии прошивок ККТ не до конца поддерживают отображение этой ставки в личном кабинете, даже если 1С передает её корректно. Рекомендуем:
Номенклатура: если в поле «Ставка НДС» стоит значение, не соответствующее вашей системе налогообложения, программа по умолчанию может подставлять «Без НДС» в чеке для предотвращения налоговых нарушений.Таким образом, мы выяснили, что проблема «Без НДС» в новом РМК 1С:Розница 2.3 чаще всего является следствием конфликта настроек СНО в регистрах или недоработок в модулях клиент-серверного взаимодействия. Своевременная очистка регистра Применение систем налогообложения и установка актуальных патчей от разработчиков «1С» решают эту проблему в большинстве случаев.