Почему при печати чека из 1С:Предприятие 7.7 через Frontol дублируется наименование товара?

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

При использовании кассового программного обеспечения Frontol в связке с 1С:Предприятие 7.7 часто возникает задача отладки внешнего вида чека. Пользователи нередко сталкиваются с ситуацией, когда на бумажном носителе одна и та же информация (наименование товара) выводится дважды или печатаются лишние технические строки. Давайте разберемся, где искать причину этого поведения и как скорректировать работу системы.

Этап 1: Определение источника проблемы

Первое, что необходимо усвоить: в данной архитектуре работает в оффлайн-режиме. Это означает, что она формирует текстовый файл goods.txt и передает его в кассовую программу. не управляет непосредственно принтером чеков и не знает, как будет выглядеть чек. Следовательно, любые лишние строки — это ответственность Frontol или настроек самого фискального регистратора.

Для диагностики мы рекомендуем выполнить следующие шаги:

  1. Откройте файл обмена goods.txt, который формирует .
  2. Внесите явные изменения в наименование товара в разных полях. Например, добавьте префикс к обычному наименованию и другой префикс к наименованию для кассы.
  3. Проведите выгрузку и пробитие чека.
  4. Посмотрите на чек: если оба префикса отобразились, значит Frontol берет данные из двух разных полей и выводит их последовательно. Если отобразился только один — проблема в настройках шаблона, который принудительно добавляет стандартное наименование.

Этап 2: Редактирование скриптов печати

В современных версиях Frontol внешний вид чека формируется с помощью JavaScript-скриптов. Именно там скрывается логика вывода позиций товара. Нам нужно найти функцию printPosition в скриптах Frontol. Рассмотрим пример типичного кода:


function printPosition(print)
{
    if (frontol.currentDocument.position.storno == 1)
        print.printCenterString("СТОРНО"," ");
    
    // Вот здесь происходит печать наименования
    print.printStringWordWrap(frontol.currentDocument.position.number + ". " + 
                              frontol.currentDocument.position.ware.code + " " + 
                              frontol.currentDocument.position.ware.text);
    
    if (frontol.currentDocument.position.storno == 0)
    {
        // Вывод цены и суммы
        print.printLRStringLF(frontol.currentDocument.position.quantity + "*" + 
                              print.formatCurrency(frontol.currentDocument.position.priceWithDiscs), 
                              print.formatCurrency(frontol.currentDocument.position.sumWithDiscs), "_");
    }
}

Если вы видите, что в чек выводится лишняя строка, внимательно проанализируйте этот код. Возможно, печать наименования продублирована или вызывается сторонняя процедура. Вы можете закомментировать строку print.printStringWordWrap, чтобы проверить результат. Если после этого ошибка исчезает, значит, именно этот фрагмент формировал лишнюю строку.

Этап 3: Работа с шаблонами чеков

Если правка скриптов не дает желаемого эффекта, необходимо обратиться к Редактору шаблонов чеков. Часто бывает, что в настройках Frontol включена опция печати наименования товара по умолчанию, которая накладывается на кастомный скрипт.

Рассмотрим порядок действий:

Этап 4: Практический совет по артикулам

Если вы хотите, чтобы товар в чеке идентифицировался проще, лучше всего модифицировать процесс выгрузки из . Вместо попыток удалить строку, добавьте артикул к самому наименованию внутри файла goods.txt. В модуле выгрузки измените строку формирования поля наименования следующим образом:


подстр1 = СписокТоваров.Код + ";" + 
          СписокТоваров.Наименование + " (Арт: " + СокрЛП(Спр.Артикул) + ");" + 
          // остальные поля...

Этот метод гарантирует, что Frontol получит уже готовую строку, которую он напечатает один раз, не создавая конфликтов между полями шаблона.

Важное примечание: Если после всех манипуляций со скриптами проблема сохраняется, проверьте настройки группы печати в Frontol. Иногда разные типы оплат или виды транзакций могут использовать разные шаблоны, и вы можете редактировать шаблон для продажи, а чек пробивается с другим типом операции.

← На главную