Начиная с версии платформы 3.4.46.31745 в Mobile SMARTS появилась возможность создавать и печатать товарные чеки. Для этого используются те же процессы, что и для этикеток, но разница в том что этикетка имеет фиксированные размеры, а длина чека может изменяться в зависимости от количества строк в нем.
Как выглядит этикетка:
|
Как выглядит чек:
|
Создание и редактирование чека в Mobile SMARTS происходит с помощью визуального редактора этикетки LBL, где появился новый шаблон печати «Чек». В этом шаблоне есть специальная компонента «Секция чека», в которой можно передавать список строк для печати (должен быть включен параметр «Размножаемая часть»). В данной секции настраивается отображение строки переданного списка, количество данных секций на распечатанном чеке будет равно количеству строк списка.
Создание нового шаблона чека в конфигурации Mobile SMARTS
-
Откройте панель управления Mobile SMARTS. Вызовите контекстное меню для папки «Этикетки» (правая кнопка мыши) и выберите пункт «Добавить чек».
-
В списке появится новый шаблон чека (Этикетка: Этикетка1), который можно открыть для редактирования двойным нажатием мыши или кнопкой «Открыть».
-
Далее откроется визуальный редактор этикеток с новым автоматически созданным шаблоном чека. По умолчанию данный шаблон состоит из трех основных частей (секций), параметры которых можно менять во вкладке «Свойства». Количество секций можно менять (добавлять новые и удалять старые).
Секции чека можно поделить на два типа:
-
Фиксированная секция — данные из этой секции выводятся на чек один раз.
Пример использования: шапка чека, где указаны информация об организации, номер ККМ, дата операции и т. д., и подвал чека с итоговой суммой, криптографическим проверочным кодом (КПК) или рекламными материалами.
-
Размножаемая секция — данные из этой секции печатаются в количестве, равному размеру переданного в них списка. Используются для вывода списка товаров в чеке.
Для размножаемой секции необходимо указывать следующие свойства:
- Источник списка — имя передаваемой коллекции строк для печати типа RowCollection (список товаров).
- Имя переменной строки — используется для доступа к значениям строки передаваемой коллекции.
-
Редактирование фиксированной части чека
В нашем примере верхняя и нижняя секции относятся к первому типу (фиксированные). Будем использовать их как шапку и подвал чека.
В шапку чека добавим несколько компонент «Текстовая метка» (наименование и адрес организации, номер ККМ, дата операции), а также одну компоненту «Изображение» (логотип организации).
В подвале чека будем выводить итоговое количество, сообщение покупателю и КПК. Для итоговой суммы и сообщения используем три компоненты «Текстовая метка», а для КПК — «2D — Штрихкод».
Редактирование размножаемой части чека
Средняя секция размножаемая. В ней зададим формат вывода строки списка товаров.
Во вкладке «Свойства» укажем имя источника списка и имя переменной строки, с помощью которой будем обращаться к данным.
Далее добавим две текстовых метки для наименования товара и его количества.
Для визуального разделения чека на три части и облегчения чтения списка товаров добавим в каждую секцию по компоненте «Линия».
На этом создание чека завершено. Сохраним результат и вернемся в панель управления для передачи нужных параметров в действие «Печать этикетки».
Настройка печати чека в алгоритме операции
Рассмотрим операцию CheckPrinting из конфигурации Mobile SMARTS.
Входными параметрами для данной операции являются те самые данные, которые будут выводиться на этикетку. Обратите внимание, что Collection должен иметь тип RowCollection и содержать в себе поля ProductName и CurrentQuantity, т.к. именно эти наименования полей используются для отображения товаров в чеке.
Первое действие «Печать этикетки» используется для предпросмотра итогового чека. Для этого в качестве принтера выбран Printing.ToImage. О том как реализовать предпросмотр этикеток подробно в статье «Встроенный в Mobile SMARTS принтер».
Второе действие «Печать этикетки» отвечает за печать на выбранный в настройках принтер.
Описание параметров печати можно увидеть в статье «Параметры печати». Т.к. у чеков высота зависит от входящих данных, параметр __LblHeight__ не оказывает никакого влияния на результат печати и не является обязательным.
Также в параметрах указаны переменные сессии с данными для вывода на чек: номер ККМ, коллекция строк с товарами, адрес и наименование компании, общее количество товаров, дата печати чека.