Проблема чрезмерно длинных чеков — одна из самых частых жалоб при автоматизации розничной торговли. Длинный чек не только раздражает покупателей, но и ведет к неоправданному расходу чековой ленты, что в масштабах месяца превращается в ощутимые затраты. Особенно часто с этой ситуацией сталкиваются пользователи ККТ Штрих-М при работе с конфигурацией 1С:Розница. При внедрении системы и миграции данных из старых программ используется раздел с решениями для переноса в 1С:Розницу. В этой статье мы подробно разберем, почему 1С может игнорировать настройки драйвера и как заставить кассовый аппарат печатать компактно.
Прежде чем переходить к настройкам, выясним причину проблемы. Когда вы печатаете пробный чек из «Теста драйвера», программа отправляет прямые команды в ККТ, используя внутренние алгоритмы форматирования самого аппарата. Однако современная 1С:Розница (начиная с версий 2.2 и выше) работает через БПО (Библиотеку подключаемого оборудования).
В этом случае 1С формирует специальный XML-пакет, в котором содержатся все данные чека: наименования, цены, количества, ставки НДС и признаки способа расчета. Этот пакет передается драйверу, а драйвер транслирует его в ККТ. Если в настройках самой 1С или в параметрах таблиц ККТ не задан «компактный» режим, аппарат будет печатать каждую порцию данных (наименование, количество/цена, налоги, признаки расчета) с новой строки, что и приводит к раздуванию чека. Проанализируем способы решения этой задачи по шагам.
Первым делом нам необходимо настроить внутренние таблицы фискального регистратора. Для этого закроем 1С, откроем «Тест драйвера» (версии 4.14 или 4.15) и перейдем в раздел «Настройка свойств» — «Таблицы». Рассмотрим ключевые параметры:
1. Данный режим активирует компактную печать. В некоторых прошивках это позволяет объединять позиции и убирать лишние межстрочные интервалы.1. Это разрешает ККТ использовать настройки форматирования из дополнительных таблиц (8 и 9).0. Это сэкономит по одной строке на каждом товаре.1 или 2. Это визуально «сплющит» чек по вертикали.ККТ Штрих-М поддерживает несколько типов шрифтов. Шрифт №1 — стандартный, шрифт №2 — суженный или мелкий. Посмотрим, как мы можем это использовать:
В Таблице 8 (Настройка шрифтов) можно указать, какой шрифт использовать для различных зон чека. Для сервисных данных (ИНН, номер кассы, ФИО кассира) и для данных в позиции чека (цена, количество) рекомендуется установить шрифт с минимальной высотой. Если мы установим сжатый шрифт для всех полей, количество символов в строке может увеличиться с 32 до 48 (в зависимости от модели), что позволит уместить цену и количество в одну строку с наименованием.
Если у вас установлена прошивка 2019 года и новее, а драйвер имеет версию 4.15 или выше, нам доступен Редактор шаблонов чеков. Это наиболее эффективный метод. Разберем по шагам:
Quantity, Price и Sum в ту же строку, где печатается Name (наименование).Даже если ККТ настроена идеально, 1С может принудительно посылать команды на печать лишних реквизитов. Выясним, что можно отключить в самой программе:
Перейдем в раздел Администрирование — Подключаемое оборудование. Откроем карточку нашей кассы и нажмем «Настроить». В открывшемся окне параметров драйвера (в интерфейсе 1С) обратим внимание на следующие пункты:
Рассмотрим ситуацию, когда стандартные методы не помогают. В 1С есть возможность модифицировать обработку обслуживания ККТ. Вместо метода НапечататьФискальнуюСтроку, который полностью отдается на откуп ККТ и печатается по ее правилам, разработчики иногда используют комбинированный метод.
Суть заключается в том, чтобы передавать наименование товара через специальные символы форматирования. Как упоминалось в обсуждении, использование «двух слешей» в строке наименования иногда позволяет передать информацию так, чтобы драйвер сам пытался уместить её компактнее. Посмотрим на пример логики (псевдокод):
// Пример формирования строки для передачи в драйвер
СтрокаДляПечати = ТоварНаименование + "//" + Формат(Количество, "ЧЦ=10; ЧДЦ=3") + " * " + Формат(Цена, "ЧЦ=10; ЧДЦ=2");
// При таком подходе драйвер может интерпретировать текст после // как служебный для печати в той же строке
Важное примечание: При использовании таких методов обязательно проверяйте, чтобы в фискальную память (и далее в ОФД) уходили корректные данные о цене и количестве, а не просто «красивый текст». Метод PrintFiscalString должен получать чистые данные, а форматирование должно касаться только визуального представления.
Если после всех манипуляций чек все еще длинный, проанализируем следующие моменты:
Резюмируем: Для достижения максимального эффекта мы должны действовать комплексно — сначала «сжать» межстрочные интервалы и шрифты в таблицах ККТ через тест драйвера, затем включить компактный тип чека в Таблице 17, и в завершение отключить печать лишних реквизитов (признаков расчета) в настройках подключения оборудования внутри 1С.