Шаблоны печати чеков
Печатные формы - это механизм редактирования шаблонов, который позволяет централизованно конструировать/редактировать/обновлять печатные формы документов, используемые на РМК кассиром.
Шаблоны предназначены для печати на ККТ средствами не фискальной печати.
Создавать шаблоны можно будет для следующих документов учета:
- Оприходование
- Списание
- Инвентаризация
- Перемещение
- Заказ на закупку
Также можно будет создавать индивидуальные шаблоны для Фискальных документов:
- Чек
Для Фискальных документов доступно только редактирование Шапки и Подвала чека.
- Шапка чека - представляет собой заголовок чека и обычно содержит приветствие и данные организации (адрес, телефон, объект, ФИО директора и др. информацию).
- Подвал чека - это нижняя часть чека, которая расположена после его итоговых строк и позволяет указать там дополнительную информацию о (способах возврата, описание акции, добавить картинку, эмблему организации и др.)
Подраздел Шаблоны печати представлен в виде таблицы в которой собраны все созданные шаблоны печатных форм организации.
Табличная часть содержит в себе следующую информацию:
- Наименование шаблона
- Тип документа
Также в подразделе предусмотрена система фильтров для более удобного поиска шаблонов.
Создание шаблона
Для создания шаблона совершите следующие действия:
- Перейдите в подраздел Шаблоны печати
- Нажмите на кнопку Создать
- Во всплывающем окне:
- Выберите Тип документа
- Укажите название шаблона:
- Для фискальных документов внесите описание в окна Шаблон шапки и Шаблон подвала
- Для документов учета внесите описание в окно Шаблон
- При необходимости добавить изображение нажмите кнопку Добавить и добавьте изображения с вашего компьютера
- В правой части экрана будет отображаться окно Предварительный просмотр, для просмотра созданного описания нажмите кнопку
- Для завершения создания шаблона нажмите кнопку Сохранить
Пример создания шаблона
Для начала необходимо понимать, при создании шаблона используются основные параметры (будут указаны в таблице ниже), которые отвеают за отображении данных в чеке, а также дополнительные переменные/символы, которые позволят кастомизировать и стилизовать печатную форму.
При создании шаблона печати необходимо использовать следующие параметры:
Описание | Параметр |
---|---|
Методы печати данных | |
Параметр для написания текста.Пример: text('Строка по центру', 'CENTER') Возможные значения второго аргумента:
|
text('текст') |
Вывод даты/времени. Форматирует строку с датой при помощи формата, заданного вышеПример: text(formatDate(document.documentDate)) |
formatDate(document.documentDate) |
Выравнивание текста слева-справа. Пример:lr('Строка слева', 'Строка справа') |
lr |
Положение изображения на чеке (слева, по центру, справа).Пример:image('Имя изображения') Возможные значения второго аргумента:
Если изображение с данным именем не найдется, то распечатается пустая строка |
image |
Штрихкод в формате ean8.
Пример:ean8('12345678', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
ean8 |
Штрихкод в формате ean13.
Пример:ean13('1234567891011', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
ean13 |
Штрихкод в формате code128.
Пример:code128('123456', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
code128 |
Штрихкод в формате qrCode.
Пример:qrCode('12345678', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
qrCode |
Печать пустой строки.
Пример:feed() |
feed |
Повторить символ на всю ширину строки
Пример:repeat(_) |
repeat |
Печать каждой позиции с новой строки. Для каждой позиции документа, наименование будет печататься на новой строке | for(let item of items) { } |
Форматирует список характеристик номенклатуры, перечисляя их через запятую, если характеристик у товара не предусмотрено или список характеристик пустой, то автоматически ставится прочерк Пример: for(let item of items) {text(formatFeatures(item.nomenclatureFeatures))}; |
formatFeatures(item.nomenclatureFeatures) |
Форматирует цену, добавляя знак рубля в конце, отсекая десятые доли копеек. Если цена, переданная как аргумент в данный метод, не установлена у данного товара, то автоматически ставится прочерк Пример: for(let item of items) {left(formatPrice(item.purchasePrice))}; |
formatPrice(item.purchasePrice) |
Команды для изменения стиля текста | |
Выравнивание последующего текста.
Пример: setAlignment('CENTER') Возможные значения второго аргумента (по-умолчанию LEFT):
|
setAlignment('CENTER') |
Изменение стиля шрифта.
Пример: setStyle('NORMAL') Меняет стиль шрифта, по-умолчанию NORMAL, возможные значения:
|
setStyle('NORMAL') |
Изменение размера текста.
Пример: setSize('MEDIUM') Меняет размер текста, по-умолчанию MEDIUM, возможные значения:
|
setSize('MEDIUM') |
Формат вывода даты.
Задает формат вывода даты (формат по-умолчанию: dd-MM-yyyy). Перечень форматов Форматы дат. |
setDateFormat('dd.MM.yyyy') |
Сброс стиля текста до исходных значений.
Команда сброса стиля текста до исходных значений (LEFT, NORMAL, MEDIUM, формат даты: dd-MM-yyyy) |
reset() |
Описание | Параметр |
---|---|
Методы печати данных | |
Поля сущностей, которые можно использовать как аргументы для команд печати текста | |
Пользователь (сущность user) | |
Имя кассира | user.firstName |
Фамилия кассира | user.lastName |
Отчество кассира | user.patonymic |
Должность продавца | user.position |
ИНН продавца | user.inn |
Торговый объект (сущность tradeObject) | |
Наименование Торгового объекта | tradeObject.name |
Адрес Торгового объекта/ Место расчетов | tradeObject.address |
КПП Торгового объекта | tradeObject.kpp |
Организация (сущность organization) | |
Наименование организации | organization.name |
ИНН организации | organization.inn |
КПП организации | organization.kpp |
Адрес организации | organization.address |
Типы документов(сущность document) | |
Дата создания документа | document.documentDate |
Номер документа | document.documentNumber |
Ф.И.О. Ответственного | document.responsiblePerson |
Комментарий к документу | document.description |
ФИО сотрудника принявшего перемещение товара | document.acceptedPerson |
Позиции документа (сущность items) доступ к отдельной позиции только через цикл for(let item of items) | |
Вывод характеристик позиции | formatFeatures(item.nomenclatureFeatures) |
Наименование позиции | item.name |
Штрихкод | item.barcode |
Артикул | item.vendorCode |
Цена закупки | formatPrice(item.purchasePrice) |
Количество товара | item.quantity |
Сумма позиции | formatPrice(item.amount) |
Количество принятого товара (Для акта "Перемещения") | item.acceptedQuantity |
Сумма позиции для учетных документов | formatPrice(item.sellingPrice) |
Сумма НДС для акта "Оприходования" | formatPrice(item.vatAmount) |
Дополнительные поля для документа ИНВЕНТАРИЗАЦИЯ | |
Остаток товара | item.accountBalance |
Фактический остаток товара | item.actualBalance |
Разница остатков | item.variance |
Разница остатков | formatPrice(item.varianceAmount) |
В приведенной ниже таблице содержится перечень данных доступных для изменения/использования при создании шаблона печати.
Приход/Расход | Оприходование | Списание | Перемещение | Инвентаризация | Заказ на закупку | |
---|---|---|---|---|---|---|
Основные данные | * Наименование организации * ИНН организации * Торговый объект * Адрес Торгового объекта * Дата создания документа |
* Наименование организации * ИНН организации * Торговый объект * Адрес Торгового объекта * Дата создания документа * Дата обновления документа * Ответственный |
* Наименование организации * ИНН организации * Торговый объект * Адрес Торгового объекта * Дата создания документа * Дата обновления документа * Ответственный |
* Наименование организации * ИНН организации * Торговый объект * Торговый объект передающий * Торговый объект принимающий * Дата создания документа * Дата обновления документа * Ответственный Передающий * Ответственный Принимающий |
* Наименование организации * ИНН организации * Торговый объект * Адрес Торгового объекта * Дата создания документа * Дата обновления документа * Ответственный |
* Наименование организации * ИНН организации * Торговый объект * Адрес Торгового объекта * Дата создания документа * Дата обновления документа * Ответственный |
Позиции в документе | * Наименование * Артикул * Штрих код * Цена * Количество позиций * Единица измерения * Характеристики * Цена закупки * Наценка * Цена продажи * НДС% * НДС * Сумма по позиции(Цена*Количество) |
* Наименование * Артикул * Штрих код * Цена * Количество позиций * Единица измерения * Характеристики * Цена закупки * Наценка * Цена продажи * НДС% * НДС * Сумма по позиции(Цена*Количество) * Остаток |
* Наименование * Артикул * Штрих код * Цена * Количество позиций * Единица измерения * Характеристики * Цена закупки * Наценка * Цена продажи * НДС% * НДС * Сумма по позиции(Цена*Количество) * Количество отправленных * Количество принятых |
* Наименование * Артикул * Штрих код * Цена * Количество позиций * Единица измерения * Характеристики * Цена закупки * Наценка * Цена продажи * НДС% * НДС * Сумма по позиции(Цена*Количество) * Остаток * Фактический остаток * Разница (Фактический остаток – Остаток) * Сумма разницы (Цена закупки*Разница) * Недостача * Избыток |
* Наименование * Артикул * Штрих код * Цена * Количество позиций * Единица измерения * Характеристики * Цена закупки * Наценка * Цена продажи * НДС% * НДС * Сумма по позиции(Цена*Количество) | |
Прочие данные | Комментарий | * Итого (Сумма всех позиций) * Контрагент |
* Комментарий * Итого (Сумма всех позиций) * Контрагент * Статья списания |
* Комментарий * Итого (Сумма всех позиций) |
* Комментарий * Итого (Сумма всех позиций) |
* Комментарий * Итого (Сумма всех позиций) |
Примеры шаблонов печати
Шаблон "Списание" | Шаблон "Оприходование" | Шаблон "Перемещение" | Шаблон "Инвентаризация" |
setAlignment ('CENTER')
setSize ('SMALL')
setStyle('ITALIC')
text ('Документ Списания')
text(document.documentNumber)
setDateFormat('dd.MM.yyyy')
text(formatDate(document.documentDate))
feed ()
code128 (document.documentNumber)
feed ()
lr('Организация:',organization.name)
lr('Торговый объект: ',tradeObject.name)
feed ()
reset ()
for(let item of items) {
repeat ('-')
text(item.name)
text('Артикул:' + item.vendorCode)
text('Характеристика:'+formatFeatures(item.nomenclatureFeatures))
lr('Списано:', item.quantity+'шт')
lr('Остаток:', item.accountBalance+'шт.')
lr('Цена закупки:', formatPrice(item.purchasePrice))
lr('Цена продажи:',formatPrice(item.sellingPrice))
feed ()
setStyle('BOLD')
lr('ИТОГО:',formatPrice(item.amount))
reset ()
feed ()
}
repeat ('-')
feed ()
feed ()
lr(user.position, document.responsiblePerson)
feed ()
lr('Подпись:', '________________')
feed ()
text(document.description)
feed ()
qrCode ('https://kassa.bifit.com','CENTER') |
setAlignment ('CENTER')
setSize ('SMALL')
setStyle('ITALIC')
text ('Документ оприходования')
text(document.documentNumber)
setDateFormat('dd.MM.yyyy')
text(formatDate(document.documentDate))
feed ()
code128 ('document.documentNumber')
feed ()
lr('Организация:',organization.name)
lr('Торговый объект: ',tradeObject.name)
feed ()
reset ()
for(let item of items) {
repeat ('-')
text(item.name)
text('Артикул:' + item.vendorCode)
lr('Количество:', item.quantity+'шт')
text('Характеристика:'+formatFeatures(item.nomenclatureFeatures))
lr('Цена закупки:', formatPrice(item.purchasePrice))
lr('Цена продажи:',formatPrice(item.sellingPrice))
text('НДС:'+formatPrice(item.vatAmount))
feed ()
setStyle('BOLD')
lr('ИТОГО:',formatPrice(item.amount))
reset ()
feed ()
}
repeat ('-')
feed ()
lr(user.position, document.responsiblePerson)
feed ()
lr('Подпись:', '________________')
feed ()
feed ()
text(document.description)
feed ()
qrCode ('https://kassa.bifit.com','CENTER') |
setAlignment ('CENTER')
setSize ('SMALL')
setStyle('ITALIC')
text ('Перемещение')
text(document.documentNumber)
setDateFormat('dd.MM.yyyy')
text(formatDate(document.documentDate))
lr('Организация:',organization.name)
feed ()
code128 (document.documentNumber)
feed ()
lr('ТО отправитель: ', tradeObjectFrom.name)
lr('ТО получатель: ', tradeObjectTo.name)
feed ()
reset ()
for(let item of items) {
repeat ('-')
text( item.name)
text('Артикул:' + item.vendorCode)
text('ШК:' + item.barcode)
text('Характеристика:'+formatFeatures(item.nomenclatureFeatures))
lr('Цена закупки:', formatPrice(item.purchasePrice))
lr('Кол-во переданного товара:', item.quantity+'шт')
lr('Кол-во принятого товара:', item.acceptedQuantity+'шт')
lr('Расхождение',item.acceptedQuantity-item.quantity+'шт.')
lr('Сумма товара:',formatPrice(item.amount))
feed ()
}
repeat ('-')
feed ()
lr('Отправил:', document.responsiblePerson)
feed ()
lr('Подпись:', '________________')
feed ()
feed ()
lr('Принял:', document.acceptedPerson)
feed ()
lr('Подпись:', '________________')
feed ()
feed ()
text(document.description)
feed ()
qrCode ('https://kassa.bifit.com','CENTER') |
setAlignment ('CENTER')
setSize ('SMALL')
setStyle('ITALIC')
text ('Инвентаризация товаров')
text(document.documentNumber)
setDateFormat('dd.MM.yyyy')
text(formatDate(document.documentDate))
feed ()
code128 (document.documentNumber)
feed ()
lr('Организация:',organization.name)
lr('Торговый объект: ',tradeObject.name)
feed ()
reset ()
for(let item of items) {
repeat ('-')
lr(item.name,formatPrice(item.purchasePrice))
text('Артикул:' + item.vendorCode)
text('ШК:' + item.barcode)
text('Характеристика:'+formatFeatures(item.nomenclatureFeatures))
lr('Остаток:', item.accountBalance+'шт.')
lr('Фактический Остаток:', item.actualBalance+'шт.')
lr('Разница:', item.variance+'шт.')
lr('Сумма разницы:', formatPrice(item.varianceAmount))
feed ()
}
repeat ('-')
feed ()
lr(user.position, document.responsiblePerson)
feed ()
lr('Подпись:', '________________')
feed ()
text(document.description)
feed ()
qrCode ('https://kassa.bifit.com','CENTER') |