Шаблоны печати чеков: различия между версиями
Merkulov (обсуждение | вклад) |
Merkulov (обсуждение | вклад) |
||
Строка 79: | Строка 79: | ||
|- | |- | ||
| Выравнивание текста слева-справа. <br> | | Выравнивание текста слева-справа. <br> | ||
('Строка слева' | '''Пример''':lr('Строка слева', 'Строка справа') | ||
|style="text-align: center;"| '''lr''' | |style="text-align: center;"| '''lr''' | ||
|- | |- | ||
| Положение изображения на чеке (слева, по центру, справа).<br> | | Положение изображения на чеке (слева, по центру, справа).<br> | ||
'''Пример''': ('Имя изображения') | '''Пример''':image('Имя изображения') | ||
Возможные значения второго аргумента: | Возможные значения второго аргумента: | ||
* LEFT | * LEFT | ||
Строка 92: | Строка 92: | ||
|- | |- | ||
| Штрихкод в формате ean8. | | Штрихкод в формате ean8. | ||
'''Пример''':('12345678', 'CENTER') | '''Пример''':ean8('12345678', 'CENTER') | ||
Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | ||
* LEFT | * LEFT | ||
Строка 99: | Строка 99: | ||
|style="text-align: center;"| '''ean8''' | |style="text-align: center;"| '''ean8''' | ||
|- | |- | ||
|Штрихкод в формате ean13. ('1234567891011', 'CENTER') | |Штрихкод в формате ean13. | ||
'''Пример''':ean13('1234567891011', 'CENTER') | |||
Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | ||
* LEFT | * LEFT | ||
Строка 106: | Строка 107: | ||
|style="text-align: center;"|'''ean13''' | |style="text-align: center;"|'''ean13''' | ||
|- | |- | ||
|Штрихкод в формате code128. ('123456', 'CENTER') | |Штрихкод в формате code128. | ||
'''Пример''':code128('123456', 'CENTER') | |||
Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | ||
* LEFT | * LEFT | ||
Строка 113: | Строка 115: | ||
|style="text-align: center;"|'''code128''' | |style="text-align: center;"|'''code128''' | ||
|- | |- | ||
|Штрихкод в формате qrCode. ('12345678', 'CENTER') | |Штрихкод в формате qrCode. | ||
'''Пример''':qrCode('12345678', 'CENTER') | |||
Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER') | ||
* LEFT | * LEFT | ||
Строка 120: | Строка 123: | ||
|style="text-align: center;"|'''qrCode''' | |style="text-align: center;"|'''qrCode''' | ||
|- | |- | ||
| Печать пустой строки () | | Печать пустой строки. | ||
'''Пример''':feed() | |||
|style="text-align: center;"| '''feed''' | |style="text-align: center;"| '''feed''' | ||
|- | |- | ||
| Повторить символ на всю ширину строки ( | | Повторить символ на всю ширину строки | ||
'''Пример''':repeat(_) | |||
|style="text-align: center;"| '''repeat''' | |style="text-align: center;"| '''repeat''' | ||
|- | |- | ||
Строка 129: | Строка 134: | ||
|style="text-align: center;"| '''for(let item of items) { }''' | |style="text-align: center;"| '''for(let item of items) { }''' | ||
|- | |- | ||
| Форматирует список характеристик номенклатуры, перечисляя их через запятую,<br> если характеристик у товара не предусмотрено или список характеристик пустой, то автоматически ставится прочерк | | Форматирует список характеристик номенклатуры, перечисляя их через запятую,<br> если характеристик у товара не предусмотрено или список характеристик пустой, то автоматически ставится прочерк | ||
'''Пример''': for(let item of items) {text(formatFeatures(item.nomenclatureFeatures))}; | |||
|style="text-align: center;"| '''formatFeatures(item.nomenclatureFeatures)''' | |style="text-align: center;"| '''formatFeatures(item.nomenclatureFeatures)''' | ||
|- | |- | ||
| Форматирует цену, добавляя знак рубля в конце, отсекая десятые доли копеек.<br> Если цена, переданная как аргумент в данный метод, не установлена у данного товара, то автоматически ставится прочерк <br> | | Форматирует цену, добавляя знак рубля в конце, отсекая десятые доли копеек.<br> Если цена, переданная как аргумент в данный метод, не установлена у данного товара, то автоматически ставится прочерк <br> | ||
'''Пример''': | '''Пример''': for(let item of items) {left(formatPrice(item.purchasePrice))}; | ||
|style="text-align: center;"| '''formatPrice(item.purchasePrice)''' | |style="text-align: center;"| '''formatPrice(item.purchasePrice)''' | ||
|- | |- | ||
|colspan="2" style="text-align: center; background:#E0FFFF;"| '''Команды для изменения стиля текста''' | |colspan="2" style="text-align: center; background:#E0FFFF;"| '''Команды для изменения стиля текста''' | ||
|- | |- | ||
| Выравнивание последующего текста. Возможные значения второго аргумента (по-умолчанию LEFT): | | Выравнивание последующего текста. | ||
'''Пример''': setAlignment('CENTER') | |||
Возможные значения второго аргумента (по-умолчанию LEFT): | |||
* LEFT | * LEFT | ||
* CENTER | * CENTER | ||
Строка 146: | Строка 152: | ||
|style="text-align: center;"| '''setAlignment('CENTER')''' | |style="text-align: center;"| '''setAlignment('CENTER')''' | ||
|- | |- | ||
| Изменение стиля шрифта. Меняет стиль шрифта, по-умолчанию NORMAL | | Изменение стиля шрифта. | ||
'''Пример''': setStyle('NORMAL') | |||
Меняет стиль шрифта, по-умолчанию NORMAL, возможные значения: | |||
* 'NORMAL' (обычный) | * 'NORMAL' (обычный) | ||
* 'BOLD' (жирный) | * 'BOLD' (жирный) | ||
Строка 154: | Строка 161: | ||
|style="text-align: center;"| '''setStyle('NORMAL')''' | |style="text-align: center;"| '''setStyle('NORMAL')''' | ||
|- | |- | ||
| Изменение размера текста. Меняет размер текста, по-умолчанию MEDIUM | | Изменение размера текста. | ||
'''Пример''': setSize('MEDIUM') | |||
Меняет размер текста, по-умолчанию MEDIUM, возможные значения: | |||
* 'SMALL' | * 'SMALL' | ||
* 'MEDIUM' | * 'MEDIUM' |
Версия 16:46, 6 сентября 2022
Печатные формы - это механизм редактирования шаблонов, который позволяет централизованно конструировать/редактировать/обновлять печатные формы документов, используемые на РМК кассиром.
Шаблоны предназначены для печати на ККТ средствами не фискальной печати.
Создавать шаблоны можно будет для следующих документов учета:
- Оприходование
- Списание
- Инвентаризация
- Перемещение
- Заказ на закупку
Также можно будет создавать индивидуальные шаблоны для Фискальных документов:
- Чек
Для Фискальных документов доступно только редактирование Шапки и Подвала чека.
- Шапка чека - представляет собой заголовок чека и обычно содержит приветствие и данные организации (адрес, телефон, объект, ФИО директора и др. информацию).
- Подвал чека - это нижняя часть чека, которая расположена после его итоговых строк и позволяет указать там дополнительную информацию о (способах возврата, описание акции, добавить картинку, эмблему организации и др.)
Подраздел Шаблоны печати представлен в виде таблицы в которой собраны все созданные шаблоны печатных форм организации.
Табличная часть содержит в себе следующую информацию:
- Наименование шаблона
- Тип документа
Также в подразделе предусмотрена система фильтров для более удобного поиска шаблонов.
Создание шаблона
Для создания шаблона совершите следующие действия:
- Перейдите в подраздел Шаблоны печати
- Нажмите на кнопку Создать
- Во всплывающем окне:
- Выберите Тип документа
- Укажите название шаблона:
- Для фискальных документов внесите описание в окна Шаблон шапки и Шаблон подвала
- Для документов учета внесите описание в окно Шаблон
- При необходимости добавить изображение нажмите кнопку Добавить и добавьте изображения с вашего компьютера
- В правой части экрана будет отображаться окно Предварительный просмотр, для просмотра созданного описания нажмите кнопку
- Для завершения создания шаблона нажмите кнопку Сохранить
Пример создания шаблона
Для начала необходимо понимать, при создании шаблона используются основные параметры (будут указаны в таблице ниже), которые отвеают за отображении данных в чеке, а также дополнительные переменные/символы, которые позволят кастомизировать и стилизовать печатную форму.
При создании шаблона печати необходимо использовать следующие параметры:
Описание | Параметр |
---|---|
Методы печати данных | |
Параметр для написания текста.Пример: 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') |