При работе со старыми конфигурациями 1С, такими как «Торговля и Склад 7.7», в связке с современными онлайн-кассами (например, Штрих-М Online), часто возникает проблема некорректного форматирования чека. Наиболее распространенная ситуация — когда наименование товара или его цена не умещаются в одну строку, и драйвер принудительно переносит данные, из-за чего чек становится длинным и нечитаемым. В этой статье мы подробно разберем, как программно изменить ширину ленты, почему появляются загадочные точки в чеке и как решить проблему с печатью возвратов.
Для начала проанализируем ситуацию: почему в чеке после названия товара появляются точки, а цена уходит ниже? В современных кассовых аппаратах за это отвечает не только драйвер, но и алгоритм, заложенный в обработке обслуживания 1С. В системе 1С 7.7 формирование строки чека происходит программно. Логика обычно следующая: программа берет заданную ширину ленты (например, 32 символа для ленты 57 мм), вычитает длину названия товара и длину суммы, а оставшееся пространство заполняет символом-заполнителем — точкой.
Если в коде обработки указана ширина, превышающая физические возможности кассы или настройки шрифта в драйвере, возникает конфликт. Драйвер получает строку, которая длиннее допустимого максимума, и переносит «хвост» строки на следующую позицию. Рассмотрим, где именно в 1С 7.7 прячутся эти настройки.
Основная логика взаимодействия с фискальным регистратором в 1С 7.7 вынесена во внешние обработки (файлы с расширением .ert). Чаще всего используется файл shtrihfr_comm.ert. Чтобы исправить ширину ленты, нам потребуется внести изменения непосредственно в программный код этой обработки.
Рассмотрим шаги по изменению параметров:
ExtForms\Equip вашей информационной базы). Имя файла может быть shtrihfr_comm.ert или fr_comm.ert.Проанализируем пример кода, который часто встречается в таких обработках:
// В модуле обработки ищем определение ширины ленты
ШиринаЛенты = 32; // Стандарт для узкой ленты 57мм
// Иногда это выглядит как список условий для разных моделей
Если МодельКассы = "Штрих-М-ФР-К" Тогда
ШиринаЛенты = 32;
ИначеЕсли МодельКассы = "Штрих-Online" Тогда
ШиринаЛенты = 32;
КонецЕсли;
Как показывает практика, для современных бюджетных моделей «Штрих-М» оптимальным значением является 32. Если вы установите 40 или более, при использовании стандартного шрифта цена гарантированно уедет на вторую строку. После внесения изменений необходимо сохранить файл .ert и перезапустить 1С в обычном режиме.
Если правка кода в 1С не помогает или вы не хотите менять программный код, можно пойти другим путем — изменить шрифт в самом фискальном регистраторе. В современных онлайн-кассах есть таблица шрифтов, где можно выбрать более мелкий кегль, позволяющий уместить больше символов в строке.
Разберем, как это сделать через «Тест драйвера ККТ»:
Важный момент: в настройках 1С 7.7 часто нет прямой настройки ширины ленты в пользовательском интерфейсе. Она либо жестко прописана в коде, либо берется из Констант. Проверьте меню «Операции» — «Константы», нет ли там поля «Ширина чековой ленты».
Часто после успешной настройки печати обычных чеков обнаруживается новая проблема: чек возврата не печатается, хотя в 1С документ проводится без ошибок. Это типичная ситуация для перехода на протоколы 54-ФЗ.
Выясним причины, по которым касса может молчать при попытке возврата:
shtrihfr_comm.ert этого делать не умеют. В этом случае касса получает некорректную команду и просто ее игнорирует.Для исправления работы возвратов рекомендуется найти обновленную версию обработки обслуживания, адаптированную под требования 54-ФЗ для платформы 7.7. В коде такой обработки для команды возврата должны использоваться новые методы драйвера, передающие теги СНО (система налогообложения) и признаки способа расчета.
Проанализируем еще несколько нюансов, которые помогут в настройке:
Таймаут до 300-500 мс. Обмен с фискальным накопителем занимает больше времени, чем в старых ЭКЛЗ, и 1С может «отваливаться» по таймауту, не дождавшись ответа от кассы.Таким образом, для корректной работы чека в 1С 7.7 необходимо синхронизировать два параметра: значение ШиринаЛенты в коде обработки обслуживания и настройки шрифта в самом кассовом аппарате. Правильная настройка позволит не только убрать некрасивые переносы, но и обеспечит стабильную работу при оформлении возвратов покупателям.