Как настроить ширину чека и устранить перенос строки в 1С 7.7 для касс Штрих-М

Программист 1С v7.7 Управленческий учет Торговля и дистрибуция
← На главную

При работе со старыми конфигурациями 1С, такими как «Торговля и Склад 7.7», в связке с современными онлайн-кассами (например, Штрих-М Online), часто возникает проблема некорректного форматирования чека. Наиболее распространенная ситуация — когда наименование товара или его цена не умещаются в одну строку, и драйвер принудительно переносит данные, из-за чего чек становится длинным и нечитаемым. В этой статье мы подробно разберем, как программно изменить ширину ленты, почему появляются загадочные точки в чеке и как решить проблему с печатью возвратов.

Выясняем причину появления «точек» и переноса строк

Для начала проанализируем ситуацию: почему в чеке после названия товара появляются точки, а цена уходит ниже? В современных кассовых аппаратах за это отвечает не только драйвер, но и алгоритм, заложенный в обработке обслуживания 1С. В системе 1С 7.7 формирование строки чека происходит программно. Логика обычно следующая: программа берет заданную ширину ленты (например, 32 символа для ленты 57 мм), вычитает длину названия товара и длину суммы, а оставшееся пространство заполняет символом-заполнителем — точкой.

Если в коде обработки указана ширина, превышающая физические возможности кассы или настройки шрифта в драйвере, возникает конфликт. Драйвер получает строку, которая длиннее допустимого максимума, и переносит «хвост» строки на следующую позицию. Рассмотрим, где именно в 1С 7.7 прячутся эти настройки.

Редактирование обработки обслуживания кассы

Основная логика взаимодействия с фискальным регистратором в 1С 7.7 вынесена во внешние обработки (файлы с расширением .ert). Чаще всего используется файл shtrihfr_comm.ert. Чтобы исправить ширину ленты, нам потребуется внести изменения непосредственно в программный код этой обработки.

Рассмотрим шаги по изменению параметров:

  1. Откроем базу 1С в режиме Конфигуратор.
  2. Перейдем в меню «Файл» — «Открыть» и выберем файл обработки обслуживания (обычно он находится в каталоге ExtForms\Equip вашей информационной базы). Имя файла может быть shtrihfr_comm.ert или fr_comm.ert.
  3. Перейдем на закладку «Модуль».
  4. Нам необходимо найти переменную или функцию, отвечающую за определение ширины строки. Обычно это делается в процедуре инициализации или в списке параметров касс.

Проанализируем пример кода, который часто встречается в таких обработках:


// В модуле обработки ищем определение ширины ленты
ШиринаЛенты = 32; // Стандарт для узкой ленты 57мм
// Иногда это выглядит как список условий для разных моделей
Если МодельКассы = "Штрих-М-ФР-К" Тогда
    ШиринаЛенты = 32;
ИначеЕсли МодельКассы = "Штрих-Online" Тогда
    ШиринаЛенты = 32;
КонецЕсли;

Как показывает практика, для современных бюджетных моделей «Штрих-М» оптимальным значением является 32. Если вы установите 40 или более, при использовании стандартного шрифта цена гарантированно уедет на вторую строку. После внесения изменений необходимо сохранить файл .ert и перезапустить 1С в обычном режиме.

Настройка шрифтов в драйвере «Штрих-М»

Если правка кода в 1С не помогает или вы не хотите менять программный код, можно пойти другим путем — изменить шрифт в самом фискальном регистраторе. В современных онлайн-кассах есть таблица шрифтов, где можно выбрать более мелкий кегль, позволяющий уместить больше символов в строке.

Разберем, как это сделать через «Тест драйвера ККТ»:

  1. Запустим утилиту «Тест драйвера» и установим связь с кассой.
  2. Зайдем в раздел «Настройка свойств» — «Таблицы».
  3. Найдем таблицу №1 «Типы текста» или таблицу №4 «Шрифты» (в зависимости от модели).
  4. Проанализируем параметры шрифта №1 и шрифта №2. Если переключить кассу на использование более мелкого шрифта, то стандартная обработка 1С, настроенная на 32 или 40 символов, перестанет «рвать» строку.

Важный момент: в настройках 1С 7.7 часто нет прямой настройки ширины ленты в пользовательском интерфейсе. Она либо жестко прописана в коде, либо берется из Констант. Проверьте меню «Операции» — «Константы», нет ли там поля «Ширина чековой ленты».

Решение проблемы с чеком возврата

Часто после успешной настройки печати обычных чеков обнаруживается новая проблема: чек возврата не печатается, хотя в 1С документ проводится без ошибок. Это типичная ситуация для перехода на протоколы 54-ФЗ.

Выясним причины, по которым касса может молчать при попытке возврата:

  1. Отсутствие наличности в кассе: В онлайн-кассах нельзя сделать возврат на сумму, превышающую текущий остаток наличных в денежном ящике (по данным ФН). Если с утра не было продаж или внесения денег, касса заблокирует операцию возврата. Попробуйте сначала сделать «Внесение денег» через драйвер или 1С.
  2. Несоответствие типов оплаты: 1С 7.7 может отправлять код типа оплаты (например, «0» для наличных), который в таблицах новой кассы интерпретируется иначе. Проверьте в драйвере (Таблица «Типы оплаты»), какие индексы соответствуют наличному и безналичному расчету.
  3. Устаревшая обработка обслуживания: Для работы по 54-ФЗ при возврате необходимо передавать признак расчета и систему налогообложения. Старые версии shtrihfr_comm.ert этого делать не умеют. В этом случае касса получает некорректную команду и просто ее игнорирует.

Для исправления работы возвратов рекомендуется найти обновленную версию обработки обслуживания, адаптированную под требования 54-ФЗ для платформы 7.7. В коде такой обработки для команды возврата должны использоваться новые методы драйвера, передающие теги СНО (система налогообложения) и признаки способа расчета.

Практические советы по работе с драйвером

Проанализируем еще несколько нюансов, которые помогут в настройке:

Таким образом, для корректной работы чека в 1С 7.7 необходимо синхронизировать два параметра: значение ШиринаЛенты в коде обработки обслуживания и настройки шрифта в самом кассовом аппарате. Правильная настройка позволит не только убрать некрасивые переносы, но и обеспечит стабильную работу при оформлении возвратов покупателям.

← На главную