Как исправить ошибку "Некорректная сумма налога" при пробитии чека с НДС 22% в 1С?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Налоговый учет Торговля и дистрибуция
← На главную

С появлением новой основной ставки НДС в размере 22%, которая начнет действовать с 1 января 2026 года, многие пользователи 1С сталкиваются с проблемой при фискализации чеков. Ошибка "Некорректная сумма налога" при пробитии чека, особенно в старых или сильно доработанных конфигурациях, таких как "1С:Управление торговлей 10.3", указывает на то, что система не готова к работе с новой ставкой. Эта проблема требует комплексного подхода, включающего обновление как программного обеспечения 1С, так и кассового оборудования.

Рассмотрим пошагово, какие действия необходимо предпринять, чтобы обеспечить корректную работу с НДС 22% и избежать данной ошибки.

Шаг 1: Обновление платформы и конфигурации 1С до актуальных версий

Первым и самым важным шагом является обеспечение того, что ваша система 1С способна работать с новой налоговой ставкой. Компания "1С" выпускает обновления для своих типовых конфигураций заранее. Если вы используете типовую конфигурацию, такую как "1С:Бухгалтерия предприятия", "1С:Управление торговлей", "1С:ERP" или "1С:Розница", вам необходимо обновить ее до актуального релиза.

  1. Проверка версии конфигурации: Убедитесь, что ваша конфигурация обновлена до версии, которая официально поддерживает НДС 22%. Например, для "1С:Бухгалтерии предприятия" это может быть версия 3.0.186, а для "1С:УНФ" и "1С:Розница" — начиная с версии 3.0.12.226.
  2. Обновление платформы 1С: Помимо конфигурации, может потребоваться обновление самой платформы 1С:Предприятие 8 до актуальной версии для обеспечения совместимости и стабильности работы.
  3. Особенности для старых конфигураций: Если вы используете устаревшую редакцию, такую как "УТ 10.3" (как в нашем случае), или сильно доработанную конфигурацию, то простое обновление может быть невозможно или потребует значительных усилий. В таких случаях, вероятно, понадобится ручная доработка кода, что мы рассмотрим в Шаге 3.

Шаг 2: Актуализация кассового оборудования (ККТ), прошивки и драйверов

Кассовая техника является критически важным звеном в цепочке фискализации. Даже если 1С правильно рассчитывает налог, касса может не понимать новую ставку, если ее программное обеспечение устарело.

  1. Обновление прошивки ККТ: Убедитесь, что прошивка вашей кассовой техники поддерживает НДС 22%. Для касс АТОЛ, например, рекомендована прошивка не менее 5.15.0, а в нашем случае пользователи успешно работали с версией 5.17. Для этого шага, возможно, потребуется обратиться в обслуживающую организацию или к производителю ККТ.
  2. Обновление драйвера торгового оборудования (ДТО): Недостаточно обновить только прошивку ККТ. 1С взаимодействует с кассой через драйвер торгового оборудования. Необходимо установить актуальный драйвер. Пользователи в данной теме успешно применяли драйвер АТОЛ версии 10.10.8.0 (или не ниже 10.10.6.0).
  3. Обновление обработки обслуживания торгового оборудования (ТО): Это частая ошибка – пользователи обновляют драйвер, но забывают обновить обработку обслуживания ТО в самой 1С. Обработка ТО — это компонент 1С, который обеспечивает взаимодействие между платформой и драйвером. Как было отмечено в сообщениях, это ключевой момент. В рамках обсуждения упоминалась обработка обслуживания версии 3.15.
  4. Пересоздание оборудования в 1С и очистка кэша: После обновления драйвера и обработки ТО, мы рекомендуем выполнить следующие действия:
    • В 1С (раздел "Администрирование" или "НСИ и администрирование" -> "Подключаемое оборудование") создайте новый экземпляр оборудования для ККТ и отключите старый. Это гарантирует, что 1С будет использовать новые настройки и компоненты.
    • Очистите кэш данных 1С. Это можно сделать, удалив файлы кэша в каталоге пользователя 1С или через утилиту запуска 1С:Предприятия.
    • Проверьте используемую компоненту драйвера: Если вы столкнулись с ошибкой "Некорректное значение поля "items.tax.type" (vat2)", это может указывать на то, что 1С по-прежнему использует старую компоненту драйвера, несмотря на его обновление. Необходимо убедиться, что 1С задействует именно новую, актуальную компоненту.

Шаг 3: Доработка кода 1С для поддержки НДС 22% (для нетиповых и старых конфигураций)

Для конфигураций, которые не имеют официальных обновлений для НДС 22% (как "УТ 10.3"), или для сильно измененных конфигураций, ручная доработка кода становится неизбежной. Это основной источник проблемы, как выяснилось в обсуждаемой теме.

В первую очередь, вам необходимо убедиться, что в вашей конфигурации существуют необходимые перечисления для новой ставки. Как правило, это Перечисления.СтавкиНДС.НДС22 и Перечисления.СтавкиНДС.НДС22_122 (для расчетной ставки). Если их нет, их нужно добавить в метаданные конфигурации.

Далее мы рассмотрим ключевые места в коде, где необходимо внести изменения:

  1. Глобальный поиск и модификация кода:

    Начните с глобального поиска по всей конфигурации. Ищите все вхождения строк, связанных с НДС 20%, например: "НДС20", "НДС20_120", "20 / 120", "SumTAX20", "SumTAX120". Ваша задача — по аналогии с существующей логикой для НДС 20% добавить такую же логику для НДС 22%.

    Мы советуем сосредоточиться на общих модулях, которые отвечают за расчет НДС, формирование документов и взаимодействие с торговым оборудованием. Пользователи, столкнувшиеся с проблемой, подтвердили, что основные пропуски были именно в таких модулях.

  2. Модуль МенеджерОборудованияКлиентСервер.ПолучитьСтавкуНДСДляФискализацииЧека:

    Это один из самых критичных модулей, который был пропущен несколькими участниками обсуждения. Данная функция отвечает за преобразование внутренней ставки НДС 1С в формат, понятный фискальному регистратору. Если эта функция не содержит логики для 22%, касса получит некорректное значение, что приведет к ошибке.

    Мы должны найти и изменить эту функцию, добавив обработку для Перечисления.СтавкиНДС.НДС22 и Перечисления.СтавкиНДС.НДС22_122. Примерный фрагмент кода может выглядеть следующим образом:

    
    Функция ПолучитьСтавкуНДСДляФискализацииЧека(СтавкаНДС) Экспорт
    
        Если СтавкаНДС = Перечисления.СтавкиНДС.НДС0 Тогда
            Возврат "НДС0";
        ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
            Возврат "НДС10";
        ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
            Возврат "НДС20";
        // *** Важное добавление для НДС 22% ***
        ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС22 Тогда
            Возврат "НДС22"; // Это значение должно соответствовать ожиданиям драйвера ККТ
        // *** Конец добавления ***
        ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДСБезНДС Тогда
            Возврат "БезНДС";
        ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
            Возврат "НДС10_110";
        ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120 Тогда
            Возврат "НДС20_120";
        // *** Важное добавление для расчетной ставки НДС 22/122 ***
        ИначеЕсли СтавкаНДС = Перечисления.СтавкиНДС.НДС22_122 Тогда
            Возврат "НДС22_122"; // Идентификатор для расчетной ставки
        // *** Конец добавления ***
        КонецЕсли;
    
        Возврат "БезНДС"; // Возвращаем значение по умолчанию, если ставка не найдена
    
    КонецФункции
    

    Обратите внимание, что возвращаемые строковые значения ("НДС22", "НДС22_122") должны соответствовать тем идентификаторам, которые ожидает ваш драйвер ККТ. В большинстве случаев они совпадают с названиями перечислений.

  3. Модуль СформироватьТекстНефискальногоДокумента:

    Еще одно место, где необходимо внести правки, как выяснилось в ходе обсуждения. Этот модуль часто используется для формирования печатных форм нефискальных документов или предварительных просмотров чеков. Если здесь не учтена новая ставка НДС, это также может привести к некорректному отображению или ошибкам, если данные из этого модуля используются в дальнейшем для фискализации.

    Мы рекомендуем добавить логику для НДС 22% в этот модуль, особенно в тех блоках, где производится расчет или вывод информации о налогах.

    
    Процедура СформироватьТекстНефискальногоДокумента(ДокументОбъект, Макет)
    
        // ... существующий код формирования документа ...
    
        Для Каждого СтрокаТабличнойЧасти Из ДокументОбъект.ТабличнаяЧасть Цикл
            // ... другие поля строки ...
    
            Если СтрокаТабличнойЧасти.СтавкаНДС = Перечисления.СтавкиНДС.НДС22 Тогда
                // Пример расчета и добавления строки с НДС 22%
                СуммаНДС = Окр(СтрокаТабличнойЧасти.Сумма * 22 / 122, 2);
                Макет.ДобавитьСтроку("НДС 22% от " + СтрокаТабличнойЧасти.Сумма + ": " + Формат(СуммаНДС, "ЧЦ=15; ЧДЦ=2"));
            ИначеЕсли СтрокаТабличнойЧасти.СтавкаНДС = Перечисления.СтавкиНДС.НДС20 Тогда
                // Существующая логика для НДС 20%
                СуммаНДС = Окр(СтрокаТабличнойЧасти.Сумма * 20 / 120, 2);
                Макет.ДобавитьСтроку("НДС 20% от " + СтрокаТабличнойЧасти.Сумма + ": " + Формат(СуммаНДС, "ЧЦ=15; ЧДЦ=2"));
            КонецЕсли;
            // ...
        КонецЦикла;
    
        // ... оставшийся код модуля ...
    
    КонецПроцедуры
    
  4. Другие места в коде:

    Как было упомянуто, в некоторых случаях может потребоваться проверить и другие функции, такие как ПолучитьСтавкуНДС(СтавкаНДС), а также убедиться, что структуры данных, передаваемые в драйвер ККТ (например, параметры чека), корректно формируют поля для SumTAX22 и SumTAX122, если они требуются вашим драйвером.

    Мы рекомендуем использовать отладчик 1С для пошагового прохода по коду в момент пробития чека. Это позволит точно определить, в каком месте происходит ошибка и какие значения передаются в драйвер ККТ.

  5. XDTO-пакеты для электронного документооборота:

    Если ваша система использует XDTO-пакеты для обмена данными, особенно в контексте электронного документооборота (ЭДО), убедитесь, что эти пакеты также обновлены для поддержки новой ставки НДС. Некорректные схемы могут вызвать ошибки при передаче данных.

Шаг 4: Тестирование после изменений

После всех обновлений и доработок кода, критически важно провести тщательное тестирование. Мы не можем недооценивать важность этого этапа, чтобы убедиться в корректности всех расчетов и фискализации.

  1. Создание тестовых документов: Сформируйте новые документы реализации и поступления товаров с использованием ставки НДС 22%.
  2. Пробитие тестовых чеков: Попробуйте пробить тестовые чеки (желательно на нерабочем фискальном накопителе или в тестовом режиме, если это возможно, чтобы не засорять реальную фискальную память).
  3. Временное изменение рабочей даты: Чтобы проверить работу системы до наступления 2026 года, мы можем временно изменить рабочую дату в 1С на 1 января 2026 года или позже. Это позволит смоделировать будущие условия работы.
  4. Проверка отчетов: Убедитесь, что отчеты по НДС формируются корректно, и все суммы рассчитываются с учетом новой ставки 22%.
  5. Форматно-логический контроль: В редких случаях ошибка "Некорректная сумма налога" может быть связана с настройками форматно-логического контроля в 1С (например, некорректно заданное допустимое расхождение). Мы рекомендуем проверить эти настройки в разделе "Администрирование" или "Настройка и администрирование".

Дополнительные аспекты и особенности переходного периода

Переход на новую ставку НДС 22% имеет свои нюансы, которые мы должны учитывать:

  1. Дата применения: Ставка 22% применяется к операциям, осуществленным с 1 января 2026 года, независимо от даты заключения договора.
  2. Авансы: Для авансов, полученных в 2025 году со ставкой 20%, а отгрузка по которым происходит в 2026 году, НДС по авансу восстанавливается по ставке 20%, а НДС с отгрузки исчисляется уже по ставке 22%. ФНС рекомендует в таких случаях выставлять корректировочный счет-фактуру к ранее выданному авансовому, а не новый авансовый счет-фактуру.
  3. Возврат товаров: При возврате товаров, купленных до 2026 года, применяется ставка НДС 20%.

Решение проблемы "Некорректная сумма налога" требует внимательной и последовательной работы по обновлению и доработке всех компонентов системы, отвечающих за расчет и фискализацию НДС. Мы должны помнить, что комплексный подход и тщательное тестирование — залог успешного перехода на новые налоговые ставки.

← На главную