Перевод контрольно-кассовой техники (ККТ) на новые стандарты фискальных данных (ФФД 1.05) и обновленные ставки налога (НДС 20%) — это стандартная, но часто болезненная процедура. Очень часто после визита в сервисный центр или проведения самостоятельного обновления прошивки на ККТ АТОЛ 30Ф владельцы бизнеса и системные администраторы сталкиваются со следующими проблемами: чек начинает печататься некорректно (плывет разметка, обрезаются наименования, появляется лишняя информация), либо ККТ наотрез отказывается пробивать чеки, возвращая технические ошибки формата. Рассмотрим подробно, почему возникают эти сбои и как их исправить по шагам.
В процессе обновления прошивки кассового аппарата специалисты сервисных центров (ЦТО) в обязательном порядке проводят процедуру так называемого технологического обнуления ККТ. Данная операция полностью очищает энергонезависимую память аппарата (NVRAM) и сбрасывает все внутренние таблицы настроек к заводским значениям по умолчанию. Если перед этой процедурой таблицы параметров ККТ не были сохранены в файл конфигурации для последующего восстановления, вы гарантированно получите «поплывший» макет чека.
Проанализируем основные симптомы сброса таблиц:
Решение проблемы с дизайном чека:
Для восстановления корректного внешнего вида чека выполним следующие действия через утилиту «Тест драйвера ККТ» (версии 10.х):
0 или снимем соответствующий флаг «Печатать отдел».Эта ошибка (аппаратный код ККТ 26 или 0x4469) сигнализирует о том, что ККТ получила от товароучетной системы (в нашем случае — конфигурации «1С:Управление производственным предприятием 1.3» или «1С:Бухгалтерия») пакет данных, структура которого нарушает требования протокола работы кассы.
Давайте проанализируем структуру XML-пакета, отправляемого из 1С в ККТ, который вызывает данную ошибку:
<?xml version="1.0" encoding="UTF-8"?>
<CheckPackage>
<Parameters PaymentType="1" TaxVariant="2" CashierName="<Не указан>" CustomerEmail="" CustomerPhone="">
<AgentData/>
<PurveyorData/>
</Parameters>
<Positions>
<FiscalString Name="номенклатура шт" Quantity="1" PriceWithDiscount="10" SumWithDiscount="10" DiscountSum="" Department="0" Tax="18" SignMethodCalculation="6" SignCalculationObject="1" TaxSum="1.53"/>
</Positions>
<Payments Cash="0" ElectronicPayment="0" Credit="10" AdvancePayment="0" CashProvision="0"/>
</CheckPackage>
При детальном рассмотрении структуры XML-файла мы можем выявить несколько критических уязвимостей, которые приводят к отказу кассы принимать команду:
<AgentData/> и <PurveyorData/>: старые версии интеграционных компонент 1С при формировании XML-схемы добавляют эти теги по умолчанию, даже если продажа осуществляется без участия агентов или поставщиков. Ряд версий драйверов АТОЛ (особенно ранние сборки 10-го семейства) некорректно парсят пустые структуры данных и возвращают ошибку формата команды.CashierName="<Не указан>" содержит угловые скобки (знаки «больше» и «меньше»). В формате XML данные символы являются служебными (используются для разметки тегов). Если интеграционная компонента 1С не выполнила предварительное экранирование символов, парсер ККТ споткнется на них, посчитав структуру файла нарушенной. Также недопустимо использовать кавычки-ёлочки («») внутри строковых параметров.Решение проблемы «Неверный формат команды»:
Для исправления данной ошибки мы должны действовать комплексно:
Иванов И.И. (кассир) укажем просто Иванов Иван Иванович.<AgentData/> и <PurveyorData/>, если сделка совершается не по агентскому договору.Данная ошибка возникает на стыке взаимодействия платформы 1С и JSON-протокола ККТ АТОЛ при попытке пробить чек со ставкой НДС 20% (или старой ставкой 18%).
Выясним причину этой проблемы. При отправке чека современная интеграционная компонента 1С передает данные в драйвер ККТ АТОЛ в формате JSON. Драйвер ожидает увидеть строковый идентификатор типа налога (например, vat20 или vat18). Однако, если на рабочей станции установлена устаревшая версия драйвера АТОЛ (например, релиз 10.0.0), компонента 1С не может корректно сопоставить ставку налога из своей базы данных с программными методами устаревшего драйвера. В результате в ККТ отправляется пустое значение в скобках — items[0].tax.type ().
Касса видит пустоту в критически важном поле налоговой ставки фискального документа и мгновенно прерывает операцию с ошибкой парсинга.
Решение проблемы с ошибкой парсинга налога:
Просто установить новую версию драйвера АТОЛ на компьютер в каталог операционной системы чаще всего недостаточно, так как 1С продолжает использовать старый макет компоненты, сохраненный непосредственно внутри базы данных информационной системы. Выполним полное обновление драйвера по шагам:
Выполнение этих шагов гарантированно устраняет рассинхронизацию форматов передачи данных между вашей учетной системой 1С и кассовым аппаратом АТОЛ 30Ф, возвращая процессу продажи стабильность и скорость.