Как настроить печать суммы НДС по каждой позиции в чеке на ККТ АТОЛ 25Ф/30Ф из 1С 7.7?

Программист 1С v7.7 Налоговый учет Торговля и дистрибуция
← На главную

При работе с контрольно-кассовой техникой (ККТ) и программным обеспечением 1С, особенно со старыми версиями, такими как 1С 7.7, часто возникают вопросы по корректному отображению фискальных данных в чеке. Одним из таких вопросов является детализация информации о налоге на добавленную стоимость (НДС) по каждой товарной позиции. В этом руководстве мы подробно разберем ситуацию, когда ККТ АТОЛ 25Ф и 30Ф не печатают сумму НДС для каждой позиции, а отображают только итоговую сумму по чеку.

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

Понимание проблемы: Отсутствие детализации НДС по позициям

Мы столкнулись с ситуацией, когда при использовании ККТ АТОЛ моделей 25Ф и 30Ф совместно с драйвером ККТ версии 10.8.1.0 и конфигурацией 1С 7.7 "Торговля и Склад", в печатаемом чеке отсутствует сумма НДС по каждой отдельной товарной или услуговой позиции. Вместо ожидаемой детализации, мы видим только общую сумму НДС, рассчитанную за весь чек. Это вызывает вопросы у пользователей, которые привыкли к более подробному отображению налоговых данных или считают, что это необходимо по закону.

Важным наблюдением является то, что поведение ККТ одинаково на обеих моделях, несмотря на различия в настройках. Так, на АТОЛ 25Ф в "Тесте драйвера ККТ", в разделе "Свойства" – "Параметры ККТ" – "Налоги", параметр "Передавать реквизит Сумма НДС за товар" оказывается неактивным. В то же время на АТОЛ 30Ф этот же параметр активен и даже выбран, однако результат на чеке остается неизменным – печатается только ставка НДС по позиции, но не ее сумма.

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

Попытки решения и диагностика

Прежде чем перейти к глубинному анализу, давайте рассмотрим, какие попытки решения проблемы были предприняты и какие диагностические шаги мы можем использовать.

Пользователи пытались программно управлять параметрами драйвера ККТ через COM-объект, используя метод setParam. В частности, были сделаны попытки установить следующие параметры:

  1. Объект.setParam(Объект.LIBFPTR_PARAM_TAX_SUM, СписокТоваров.НДССумм): Этот параметр, по задумке, должен был передавать конкретную сумму НДС для текущей позиции.
  2. Объект.setParam(Объект.LIBFPTR_PARAM_TAX_MODE, Объект.LIBFPTR_TM_POSITION): Установка режима налогообложения по позиции, что логично для детализации.
  3. Объект.setParam(Объект.LIBFPTR_PARAM_USE_ONLY_TAX_TYPE, "False"): Попытка отключить использование только типа налога, подразумевая возможность передачи и суммы.

Однако все эти методы к положительному результату не привели, что было подтверждено автором темы. Сумма НДС по позиции по-прежнему не отображалась в чеке.

Пример кода 1С 7.7, используемого для передачи данных:

Представим себе типичный фрагмент кода, который мы могли бы использовать в 1С 7.7 для передачи информации о товаре и НДС в ККТ АТОЛ. Этот код демонстрирует попытки установить различные параметры налогообложения:


// Установка режима налогообложения, при котором налоги применяются к каждой позиции
Объект.setParam(Объект.LIBFPTR_PARAM_TAX_MODE, Объект.LIBFPTR_TM_POSITION); 

// Определение ставки НДС для текущей позиции и установка соответствующих параметров
Если (СписокТоваров.НДС = 20) Тогда
    // Если НДС 20%, устанавливаем отдел 3 и тип налога LIBFPTR_TAX_VAT20
    Объект.setParam(Объект.LIBFPTR_PARAM_DEPARTMENT, 3 );
    Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT20);
ИначеЕсли (СписокТоваров.НДС = 10) Тогда
    // Если НДС 10%, устанавливаем отдел 2 и тип налога LIBFPTR_TAX_VAT10
    Объект.setParam(Объект.LIBFPTR_PARAM_DEPARTMENT, 2 );
    Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT10);
ИначеЕсли (СписокТоваров.НДС = 10/110) Тогда // Расчетный НДС 10/110
    // Если НДС расчетный 10/110, устанавливаем отдел 4 и тип налога LIBFPTR_TAX_VAT110
    Объект.setParam(Объект.LIBFPTR_PARAM_DEPARTMENT, 4 );
    Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT110);
ИначеЕсли (СписокТоваров.НДС = 0) Тогда
    // Если НДС 0%, устанавливаем отдел 5 и тип налога LIBFPTR_TAX_VAT0
    Объект.setParam(Объект.LIBFPTR_PARAM_DEPARTMENT, 5 );
    Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT0);
Иначе
    // Для прочих случаев, например, старого НДС 18% или других неопределенных ставок
    Объект.setParam(Объект.LIBFPTR_PARAM_DEPARTMENT, 1 );
    Объект.setParam(Объект.LIBFPTR_PARAM_TAX_TYPE, Объект.LIBFPTR_TAX_VAT18);
КонецЕсли;

// Закомментированный параметр, который также не привел к результату
// Объект.setParam(Объект.LIBFPTR_PARAM_USE_ONLY_TAX_TYPE, "False");

// Попытка передать сумму НДС по текущей позиции.
// Как мы выяснили далее, это не влияет на печать детализации суммы НДС по позиции в чеке.
Объект.setParam(Объект.LIBFPTR_PARAM_TAX_SUM, СписокТоваров.НДССумм);

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

Диагностика с помощью "Теста драйвера ККТ"

Одним из важнейших шагов в диагностике проблемы является использование "Теста драйвера ККТ", который поставляется производителем. Когда мы сталкиваемся с проблемами печати, первое, что нам следует сделать, – это попробовать воспроизвести проблему вне 1С. В нашем случае, автор темы подтвердил, что даже при печати через "Тест драйвера ККТ" сумма НДС по позиции не отображается, печатается только ставка.

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

Анализ законодательных требований к отображению НДС в чеке

Перейдем к самому важному аспекту – законодательству. Часто наши представления о том, что "должно" печататься в чеке, могут расходиться с реальными требованиями. Давайте разберем, что именно требует закон.

Согласно действующему законодательству о применении контрольно-кассовой техники (Федеральный закон № 54-ФЗ от 22.05.2003 "О применении контрольно-кассовой техники при осуществлении расчетов в Российской Федерации"), кассовый чек или бланк строгой отчетности должен содержать ряд обязательных реквизитов. Среди них, касательно товаров и НДС, указаны следующие:

  1. "наименование товаров, работ, услуг (если объем и список услуг возможно определить в момент оплаты), платежа, выплаты, их количество, цена (в валюте Российской Федерации) за единицу с учетом скидок и наценок, стоимость с учетом скидок и наценок, с указанием ставки налога на добавленную стоимость" – это требование относится к каждой позиции в чеке.
  2. "сумма расчета с отдельным указанием ставок и сумм налога на добавленную стоимость по этим ставкам" – это требование относится к итогу всего чека.

Внимательно проанализируем эти формулировки. Мы видим, что для каждой позиции обязательно указывается ставка НДС. Однако, когда речь заходит о сумме НДС, законодательство требует ее указания "по этим ставкам", что подразумевает суммирование по каждой ставке за весь расчет (чек), а не детализацию суммы НДС для каждой отдельной позиции. То есть, необходимо показать, сколько всего НДС было начислено по ставке 20%, сколько по ставке 10% и так далее, но не обязательно показывать, сколько именно НДС 20% входило в стоимость конкретного товара "Молоко".

Важный вывод: На основе анализа законодательства, мы можем сделать вывод, что требование печатать сумму НДС по каждой позиции в чеке не является обязательным. Производители ККТ, в том числе АТОЛ, разрабатывают свои устройства в строгом соответствии с этими нормами. Таким образом, поведение, при котором печатается только ставка НДС по позиции и общая сумма НДС по каждой ставке за весь чек, полностью соответствует закону.

Это объясняет, почему, несмотря на наличие параметра LIBFPTR_PARAM_TAX_SUM в драйвере, ККТ не выводит эту информацию в детализации по позиции. Вероятно, этот параметр используется для внутренней обработки, валидации данных или для расчетов итоговой суммы НДС, но не для прямого вывода в детализированном виде.

Особенности работы драйверов и прошивок АТОЛ

Помимо законодательных аспектов, на работу ККТ влияют версии драйверов и прошивок. Мы используем драйвер АТОЛ версии 10.8.1.0. Важно понимать, что компания АТОЛ регулярно выпускает обновления драйверов и прошивок для своих ККТ, добавляя новый функционал, исправляя ошибки и обеспечивая соответствие меняющимся требованиям законодательства (например, появление новых ставок НДС).

  1. Различия между моделями АТОЛ 25Ф и 30Ф: Мы отметили, что на АТОЛ 25Ф параметр "Передавать реквизит Сумма НДС за товар" неактивен, тогда как на 30Ф он активен. Это может быть связано с тем, что 25Ф может работать на более старой "Платформе 2.5", тогда как 30Ф, возможно, уже на "Платформе 5.0" или имеет более новую прошивку. Для полноценной поддержки всех возможностей драйверов версии 10 и новее, может потребоваться обновление прошивки ККТ до актуальной версии.
  2. Автоматический расчет НДС: ККТ АТОЛ, как правило, самостоятельно рассчитывают общие суммы НДС по всему чеку, основываясь на ставке НДС (тег 1199), которая указывается для каждой позиции. Это означает, что даже если мы передаем конкретную сумму НДС по позиции через LIBFPTR_PARAM_TAX_SUM, касса может не использовать эту информацию для прямой печати в детализации, а лишь для внутренних проверок и расчета итоговых сумм по чеку.
  3. Актуальные версии: За время, прошедшее с момента выпуска драйвера 10.8.1.0 (февраль 2021 года), вышли более новые версии драйверов (например, 10.10.6.0, 10.10.8.0) и прошивок (например, 5.15.0, 5.16.0). Эти обновления включают поддержку новых ставок НДС (5%, 7%) и другие улучшения. Хотя обновление не гарантирует появление печати суммы НДС по позиции (поскольку это не законодательное требование), оно обеспечивает стабильность работы и доступ к новому функционалу.

Рекомендация: Мы настоятельно рекомендуем проверить и обновить прошивку ваших ККТ АТОЛ 25Ф и 30Ф до актуальной версии, а также обновить драйвер АТОЛ до самой свежей доступной версии (например, 10.10.6.0 или выше). Это обеспечит максимальную совместимость, стабильность и доступность всех официально поддерживаемых функций, даже если это не изменит поведение печати суммы НДС по позициям.

Настройка налоговых ставок в "Тесте драйвера ККТ"

Для корректной работы с фискальными данными всегда важно убедиться, что базовые настройки налоговых ставок в "Тесте драйвера ККТ" выполнены правильно. Эти настройки определяют, как фискальный регистратор будет интерпретировать и обрабатывать передаваемые ему налоговые данные.

  1. Откройте "Тест драйвера ККТ": Запустите программу "Тест драйвера ККТ АТОЛ".
  2. Перейдите в настройки: Найдите раздел "Настройка свойств" или аналогичный, который позволяет получить доступ к параметрам оборудования.
  3. Раздел "Параметры оборудования": Внутри "Настройки свойств" найдите подраздел "Параметры оборудования".
  4. Раздел "Налоги": В "Параметрах оборудования" найдите вкладку или раздел "Налоги".
  5. Проверьте соответствие: Убедитесь, что "Налог 1" настроен как "НДС 20%", "Налог 2" как "НДС 0%", и так далее, в соответствии с теми ставками НДС, которые вы используете в своей деятельности и передаете из 1С. Например, если вы используете НДС 10%, убедитесь, что соответствующая строка налогов в настройках драйвера также настроена на "НДС 10%".

Правильная настройка этих параметров гарантирует, что ККТ будет верно обрабатывать налоговые данные, которые мы передаем из 1С, и корректно формировать итоговые суммы НДС по чеку.

Взаимодействие 1С 7.7 и драйверов АТОЛ версии 10

Хотя 1С 7.7 является устаревшей платформой, ее по-прежнему активно используют многие предприятия. Важно понимать, что для работы с современными ККТ и их драйверами (версии 10 и выше) из 1С 7.7 требуется использование COM-объектов. Код, который мы рассмотрели ранее, является хорошим примером такого взаимодействия.

Мы видим, что автор темы корректно использует методы setParam для передачи различных параметров: режим налогообложения (LIBFPTR_PARAM_TAX_MODE), отдел (LIBFPTR_PARAM_DEPARTMENT) и тип налога (LIBFPTR_PARAM_TAX_TYPE). Эти параметры являются основными для указания налоговых характеристик каждой позиции. Передача этих данных позволяет ККТ правильно идентифицировать ставку НДС для каждой позиции и корректно рассчитать общие суммы НДС по каждой ставке в конце чека.

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

Заключение и итоговые рекомендации

Подводя итоги нашего комплексного анализа, мы можем сделать несколько ключевых выводов относительно печати суммы НДС по каждой позиции в чеке на ККТ АТОЛ 25Ф/30Ф из 1С 7.7:

  1. Законодательное соответствие: Мы выяснили, что действующее законодательство Российской Федерации не требует обязательной печати суммы НДС по каждой отдельной позиции в кассовом чеке. Обязательным является указание ставки НДС для каждой позиции и суммированного НДС по каждой ставке за весь чек. Таким образом, поведение ККТ АТОЛ в данном случае полностью соответствует закону.
  2. Функционал ККТ АТОЛ: Фискальные регистраторы АТОЛ спроектированы таким образом, чтобы автоматически рассчитывать общие суммы НДС по каждой ставке, опираясь на ставки НДС, указанные для каждой позиции. Это означает, что попытки программно передать и напечатать конкретную сумму НДС по позиции с помощью параметра LIBFPTR_PARAM_TAX_SUM, как правило, не приводят к желаемому результату в детализации чека.
  3. Диагностика и устранение проблем: Проверка поведения через "Тест драйвера ККТ" является эффективным методом для отделения проблем, связанных с программным обеспечением 1С, от проблем, связанных непосредственно с ККТ или драйвером. В нашем случае, воспроизведение проблемы в "Тесте драйвера" подтвердило, что дело не в коде 1С.
  4. Обновления: Хотя обновление прошивки ККТ и драйвера не изменит подход к печати суммы НДС по позициям (поскольку это не заложено в стандартном функционале и не требуется законом), оно критически важно для обеспечения стабильности работы, поддержки новых функций и соответствия меняющимся фискальным требованиям.

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

Мы надеемся, что этот подробный анализ помог вам разобраться в причинах такого поведения ККТ АТОЛ и понять, что в данном случае "отсутствие" функционала на самом деле является "соответствием" требованиям.

← На главную