При разработке кассовых модулей в самописных конфигурациях 1С часто возникает необходимость реализовать функционал исправления ошибок в пробитых чеках. Рассмотрим подробно, как правильно сформировать чек коррекции прихода, используя драйвер АТОЛ 10-й версии, и какие нюансы законодательства следует учитывать в зависимости от версии формата фискальных данных (ФФД) — для решения этой задачи есть обработка поддержки ФФД 1.2 и чеков коррекции для ККТ АТОЛ.
Прежде чем приступать к написанию кода, проанализируем текущую ситуацию. Алгоритм исправления ошибки в чеке (например, неверная ставка НДС или цена) принципиально отличается для разных версий ФФД:
Для того чтобы налоговая служба могла связать исправительный чек с ошибочным, необходимо передать специальные фискальные признаки. Рассмотрим основные теги, которые нам потребуются:
При работе с объектом драйвера LIBFPTR последовательность действий выглядит следующим образом. Сначала мы устанавливаем параметры коррекции, а затем открываем чек. Посмотрим на пример кода для регистрации параметров коррекции:
// Установка типа чека коррекции прихода
Драйвер.setParam(Драйвер.LIBFPTR_PARAM_RECEIPT_TYPE, Драйвер.LIBFPTR_RT_SELL_CORRECTION);
// Передача типа коррекции (самостоятельно - 0)
Драйвер.setParam(1173, 0);
// Дата документа основания (дата ошибки)
Драйвер.setParam(1174, ДатаОшибки);
// Передача ФП исходного (ошибочного) чека в тег 1192
Драйвер.setParam(1192, "1234567890");
// Открытие чека
Драйвер.openReceipt();
Обратите внимание, что для ФФД 1.1 и 1.2 чек коррекции обязательно должен содержать перечень товаров (номенклатуру), как и обычный чек. В некоторых случаях, помимо фискальных регистраторов, в ритейле используются и принтеры чеков Posiflex, однако чек коррекции формируется именно на ККТ с фискальным накопителем.
Рассмотрим более надежный способ взаимодействия с ККТ — метод processJson. Он позволяет избежать ошибок в последовательности команд драйвера. Структура JSON-задания для чека коррекции выглядит примерно так:
{
"type": "sellCorrection",
"taxationType": "osn",
"correctionType": "self",
"correctionBaseDate": "2023-10-25",
"correctionBaseNumber": "1",
"items": [
{
"type": "position",
"name": "Товар с верным НДС",
"price": 100.0,
"quantity": 1,
"amount": 100.0,
"tax": { "type": "vat20" }
}
],
"additionalAttribute": "ФП_ИЗ_ОШИБОЧНОГО_ЧЕКА"
}
Проанализируем ситуацию с изменениями налогового законодательства. Если вам необходимо исправить чек с использованием новых налоговых режимов, рекомендуем использовать решения для групповой выгрузки и загрузки файлов в XML с поддержкой ставок НДС 5% и 7%. При реализации в коде убедитесь, что:
LIBFPTR_TAX_VAT5 или LIBFPTR_TAX_VAT7.В специфических условиях, например, при выездной торговле, могут применяться мобильные принтеры с печатью по bluetooth, однако полноценный чек коррекции должен быть зафиксирован в фискальной памяти устройства и передан в ОФД.
Важный момент: Если использовать устаревший драйвер или прошивку, при попытке пробить чек со ставкой 5%, касса выдаст ошибку «Неверная налоговая ставка».
Таким образом, мы выяснили, что для успешной реализации чека коррекции необходимо строго следовать требованиям версии ФФД вашей кассы и корректно заполнять тег 1192 для связи документов в базе ФНС. Для быстрого перехода на новые форматы фискальных данных без доработки кода 1С есть обработка подключения онлайн-касс АТОЛ под ФФД 1.2 без обновления конфигурации.