Как решить проблему с печатью чеков при переходе на НДС 20% на кассах АТОЛ 30Ф в 1С 7.7?

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

Переход на новую ставку НДС 20% в свое время стал серьезным испытанием для пользователей классической платформы 1С:Предприятие 7.7. Одной из самых распространенных проблем при использовании фискальных регистраторов АТОЛ 30Ф стала ошибка «Чек аннулирован». Ситуация обычно выглядела следующим образом: позиции с НДС 10% пробивались без проблем, но как только дело доходило до товаров со ставкой 20%, касса прекращала печать и аннулировала документ. Разберем подробно, почему это происходит и как настроить систему для корректной работы.

Проанализируем причину возникновения ошибки

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

Большинство ККТ АТОЛ используют индексацию налогов. Например, индекс «1» может соответствовать НДС 18% (а после обновления — 20%), индекс «2» — НДС 10%, индекс «3» — НДС 0% и так далее. Если 1С пытается передать значение «20» текстом или обращается к индексу, который не настроен в кассе, происходит критическая ошибка, ведущая к аннулированию чека. Рассмотрим шаги, которые помогут нам исправить эту ситуацию.

Шаг 1. Проверка аппаратной части и драйверов

Прежде чем приступать к правке кода 1С, проанализируем состояние оборудования. Для успешной работы с НДС 20% должны быть соблюдены следующие условия:

  1. Прошивка кассы: Убедимся, что на АТОЛ 30Ф установлена версия прошивки, поддерживающая работу с ФФД 1.05 и НДС 20% (для платформы 2.5 это версии 7651 и выше).
  2. Драйвер ККТ: Рекомендуется использовать драйвер версии 8.16.5 или выше из 8-й ветки, либо переходить на 10-ю версию (хотя для 7.7 работа с 10-м драйвером требует полной замены компонент).
  3. Лицензии: В новых прошивках АТОЛ поддержка НДС 20% требует наличия активированной лицензии в ККТ. Проверить ее наличие можно через утилиту «АТОЛ Сервис» или в чеке информации о ККТ.

Шаг 2. Выбор правильной модели в настройках торгового оборудования

Проанализируем настройки внутри самой 1С 7.7. Одной из частых ошибок является выбор старой модели фискального регистратора в списке подключаемого оборудования. Рассмотрим правильный порядок действий:

Зайдем в настройки торгового оборудования и в списке моделей выберем «АТОЛ 30Ф 105» (цифры 105 указывают на поддержку формата фискальных данных 1.05). Это критически важно, так как логика работы с налогами в ФФД 1.0 и 1.05 существенно различается.

Шаг 3. Модификация внешней обработки обслуживания

Перейдем к самой важной части — правке программного кода. В 1С 7.7 за взаимодействие с кассой обычно отвечает внешняя обработка с расширением .ert. Чаще всего это файл frATOL54_comm.ert (или аналогичный, в зависимости от версии конфигурации). Нам необходимо найти фрагмент кода, отвечающий за передачу ставки налога в драйвер.

Найдем в обработке процедуру ПечатьЧека(). Нам нужно проанализировать, как заполняется свойство объекта драйвера TaxTypeNumber. Выясним, какой номер налога соответствует ставке 20% в вашей кассе. Чаще всего это индекс 3.

Рассмотрим пример кода, который необходимо внедрить в обработку для корректной подмены ставок:


// В обработке обслуживания находим блок определения налога
ИначеЕсли СписокТоваров.СтавкаНДС = "18" Тогда
    // Старая ставка 18% мапится на тот же индекс, что и 20% для совместимости
    Объект.TaxTypeNumber = 3;                  
ИначеЕсли СписокТоваров.СтавкаНДС = "20" Тогда
    // Новая ставка 20% отправляется под индексом 3
    Объект.TaxTypeNumber = 3;
КонецЕсли;

Важно понимать: мы не меняем ставку налога в самой базе данных 1С (номенклатура остается с 20%). Мы лишь говорим драйверу: «Если в 1С ставка 20%, то в кассе используй налоговую секцию №3». В обновленных прошивках АТОЛ именно в секции №3 обычно прописан НДС 20%.

Шаг 4. Учет переходного периода и даты

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


ИначеЕсли СписокТоваров.СтавкаНДС = "18" Тогда
    Объект.TaxTypeNumber = 3;
ИначеЕсли (СписокТоваров.СтавкаНДС = "20") И (РабочаяДата() >= '01.01.2019') Тогда
    // Явно указываем индекс налога для всех документов после даты перехода
    Объект.TaxTypeNumber = 3;
КонецЕсли;

Почему возникают расхождения сумм?

Иногда даже после настройки индекса TaxTypeNumber чек может аннулироваться с ошибкой «Сумма налога превышает сумму позиции». Это происходит из-за различий в алгоритмах округления 1С и ККТ. Рассмотрим, как этого избежать:

В современных реалиях ФФД 1.05 и выше рекомендуется передавать в кассу только ставку налога, позволяя фискальному регистратору самостоятельно рассчитывать сумму НДС. Если ваша обработка пытается принудительно передать параметр TaxSum, попробуйте закомментировать эту строку или убедиться, что расчет в 1С идет строго по формулам ФНС (до 2-х знаков после запятой без накопления погрешности).

Проверка через Тест драйвера

Для окончательной уверенности проанализируем настройки самой кассы через «Тест драйвера ККТ» (обычно это утилита fptr10_t.exe или dtointegrator.exe для 8-й версии):

  1. Зайдем в раздел «Программирование».
  2. Найдем таблицу №6 «Налоги».
  3. Проверим, какое наименование и какая процентная ставка указаны в 3-й строке. Там должно быть написано «20%».

Если в таблице налогов пусто или указаны другие данные, 1С не сможет корректно пробить чек, пока данные в таблице не будут приведены в соответствие с программным кодом обработки.

Подведем итог

Для решения проблемы «Чек аннулирован» на АТОЛ 30Ф в 1С 7.7 мы выполнили три ключевых действия: обновили прошивку, переключили модель на ФФД 1.05 и внесли правки во внешнюю обработку обслуживания, сопоставив ставку «20» из программы с нужным индексом налога в кассе. Эти шаги позволяют продолжить эксплуатацию надежной платформы 7.7 в соответствии с требованиями современного законодательства.

← На главную