При автоматизации розничной торговли на базе программных продуктов 1С (например, 1С:Управление торговлей 10.3 или более современных конфигураций на управляемых формах) специалисты часто сталкиваются со странным поведением фискальных регистраторов семейства АТOL. Покупатели или кассиры начинают жаловаться на то, что на чеках отсутствует QR-код (как фискальный, так и ЕГАИС при продаже алкогольной продукции), либо этот QR-код оказывается отрезанным наполовину. При этом на следующем пробитом чеке в самом верху (в области заголовка/клише) внезапно распечатывается оставшаяся часть QR-кода или он сам целиком.
Особенно остро эта проблема встает в торговых точках, реализующих алкогольную продукцию, где покупатели или контролирующие органы активно используют мобильные приложения для проверки легальности алкоголя по кодам ЕГАИС. В этой статье мы подробно разберем физические и программные причины возникновения этой неполадки на ККТ с автоматическим отрезчиком (таких как АТТОЛ 25Ф, 22Ф, 55Ф, 77Ф) и рассмотрим пошаговые методы ее решения.
Для начала давайте проанализируем ситуацию с технической точки зрения. На безножевых моделях фискальных регистраторов (например, АТТОЛ 30Ф или АТТОЛ 11Ф) подобный дефект физически невозможен. На таких аппаратах бумажная лента отрывается пользователем вручную о металлическую гребенку, поэтому кассир всегда вытягивает чек на нужную длину самостоятельно.
В моделях с автоматическим отрезчиком (автоножом), таких как АТОЛ 25Ф, процесс устроен иначе:
Если в алгоритме работы кассы происходит сбой, нож производит отсекание бумаги до того, как QR-код полностью пересечет линию отреза. В результате отрезанный чек уходит покупателю без кода, а сам QR-код остается на рулоне внутри ККТ. При печати следующего чека лента начинает двигаться, и этот «застрявший» QR-код выходит первым, визуально приклеиваясь к началу нового документа.
Как показывает практика и опыт интеграторов, наиболее надежным и кардинальным решением является обновление прошивки фискального регистратора. В старых версиях прошивок ККТ АТОЛ на платформе 2.5 (и при использовании устаревших версий драйверов ДТО) содержались внутренние тайм-ауты и ошибки микрокода. Они приводили к тому, что при отправке пакета команд из 1С драйвер инициировал отрезку раньше, чем принтер успевал аппаратно завершить печать графического QR-кода и прокрутить ленту.
Для устранения этой проблемы рекомендуется выполнить следующие действия:
АС ТР или утилите дистанционной прошивки).Если у вас нет возможности оперативно перепрошить аппарат (например, торговая точка находится удаленно, а продажи останавливать нельзя), проблему сдвига отреза можно временно или постоянно решить через тонкую настройку параметров кассы.
Рассмотрим по шагам, как скорректировать параметры протяжки ленты в программе «Тест драйвера ККТ» (рекомендуется использовать актуальную версию ДТО 10):
0, 1 или 2, то автоотрезчик гарантированно отрежет QR-код. Увеличьте это значение до 4–6 строк. Это заставит ККТ проталкивать бумагу выше, полностью выводя QR-код за линию ножа.Иногда причиной сбоя становится сама товароучетная система 1С:Управление торговлей. При печати чека из 1С отправляется последовательность XML-команд. Если в коде конфигурации или в обработке обслуживания ККТ жестко прописана команда принудительной отрезки документа (метод драйвера Cut() или соответствующий XML-тег) сразу после закрытия чека без учета времени на физическое формирование графики принтером, то касса срежет ленту раньше времени.
Проанализируем программный код интеграции. Чтобы гарантировать корректный вывод QR-кода, разработчики в 1С могут использовать добавление пустых строк непосредственно перед вызовом команды финализации чека.
Рассмотрим пример добавления нефискальных строк перед закрытием чека в коде 1С:
// Пример модификации функции печати чека в обработке обслуживания ККТ АТОЛ
Процедура ДобавитьПротяжкуПередОтрезом(ОбъектДрайвера, ПараметрыПодключения)
// Формируем пустые строки для принудительного продвижения ленты
Для Сч = 1 По 4 Цикл
ОбъектДрайвера.НапечататьНефискальнуюСтроку(ПараметрыПодключения.Иду ККТ, " ");
КонецЦикла;
// Только после этого вызываем закрытие и отрезку
ОбъектДрайвера.ОтрезатьЧек(ПараметрыПодключения.Иду ККТ);
КонецПроцедуры
Использование этого метода позволяет программно отодвинуть чек за пределы зоны ножа до того, как сработает механизм автоотреза. Однако наиболее правильным подходом со стороны 1С является своевременное обновление БПО (Библиотеки подключаемого оборудования) до актуального релиза и использование ДТО 10, где подобные тайминги уже оптимизированы разработчиками АТОЛ и фирмы 1С.
Если на вашей торговой точке АТОЛ 25Ф начал "радовать" покупателей перенесенными QR-кодами, выполните диагностику по следующему алгоритму: