Шаблоны печати чеков: различия между версиями
Merkulov (обсуждение | вклад) |
Merkulov (обсуждение | вклад) |
||
Строка 359: | Строка 359: | ||
== Примеры шаблонов печати == | == Примеры шаблонов печати == | ||
Шаблон печати для документа '''Списание''': | |||
<syntaxhighlight> | <syntaxhighlight> | ||
setAlignment ('CENTER') | setAlignment ('CENTER') | ||
Строка 376: | Строка 378: | ||
for(let item of items) { | for(let item of items) { | ||
repeat ('-') | repeat ('-') | ||
text(item.name) | |||
text('Артикул:' + item.vendorCode) | text('Артикул:' + item.vendorCode) | ||
text('Характеристика:'+formatFeatures(item.nomenclatureFeatures)) | |||
lr('Списано:', item.quantity+'шт') | lr('Списано:', item.quantity+'шт') | ||
lr('Остаток:', item.accountBalance+'шт.') | lr('Остаток:', item.accountBalance+'шт.') | ||
lr('Цена закупки:', formatPrice(item.purchasePrice)) | |||
lr('Цена продажи:',formatPrice(item.sellingPrice)) | lr('Цена продажи:',formatPrice(item.sellingPrice)) | ||
feed () | feed () |
Версия 15:14, 6 сентября 2022
Печатные формы - это механизм редактирования шаблонов, который позволяет централизованно конструировать/редактировать/обновлять печатные формы документов, используемые на РМК кассиром.
Шаблоны предназначены для печати на ККТ средствами не фискальной печати.
Создавать шаблоны можно будет для следующих документов учета:
- Оприходование
- Списание
- Инвентаризация
- Перемещение
- Заказ на закупку
Также можно будет создавать индивидуальные шаблоны для Фискальных документов:
- Чек
Для Фискальных документов доступно только редактирование Шапки и Подвала чека.
- Шапка чека - представляет собой заголовок чека и обычно содержит приветствие и данные организации (адрес, телефон, объект, ФИО директора и др. информацию).
- Подвал чека - это нижняя часть чека, которая расположена после его итоговых строк и позволяет указать там дополнительную информацию о (способах возврата, описание акции, добавить картинку, эмблему организации и др.)
Подраздел Шаблоны печати представлен в виде таблицы в которой собраны все созданные шаблоны печатных форм организации.
Табличная часть содержит в себе следующую информацию:
- Наименование шаблона
- Тип документа
Также в подразделе предусмотрена система фильтров для более удобного поиска шаблонов.
Создание шаблона
Для создания шаблона совершите следующие действия:
- Перейдите в подраздел Шаблоны печати
- Нажмите на кнопку Создать
- Во всплывающем окне:
- Выберите Тип документа
- Укажите название шаблона:
- Для фискальных документов внесите описание в окна Шаблон шапки и Шаблон подвала
- Для документов учета внесите описание в окно Шаблон
- При необходимости добавить изображение нажмите кнопку Добавить и добавьте изображения с вашего компьютера
- В правой части экрана будет отображаться окно Предварительный просмотр, для просмотра созданного описания нажмите кнопку
- Для завершения создания шаблона нажмите кнопку Сохранить
Пример создания шаблона
Для начала необходимо понимать, при создании шаблона используются основные параметры (будут указаны в таблице ниже), которые отвеают за отображении данных в чеке, а также дополнительные переменные/символы, которые позволят кастомизировать и стилизовать печатную форму.
При создании шаблона печати необходимо использовать следующие параметры:
Описание | Параметр | Описание параметра |
---|---|---|
Методы печати данных | ||
Параметр для написание текста | text | ('Строка по центру', 'CENTER') Возможные значения второго аргумента:
|
Вывод даты/времени | formatDate(document.documentDate) | Форматирует строку с датой при помощи формата, заданного выше Пример: left(formatDate(document.documentDate)) |
Выравнивание текста слева-справа | lr | ('Строка слева'), ('Строка справа') |
Положение изображения на чеке (слева, по центру, справа) | image | ('Имя изображения') возможные значения второго аргумента:
Если изображение с данным именем не найдется, то распечатается пустая строка |
Штрихкод в формате ean8 | ean8 | ('12345678', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
Штрихкод в формате ean13 | ean13 | ('1234567891011', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
Штрихкод в формате code128 | code128 | ('123456', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
Штрихкод в формате qrCode | qrCode | ('12345678', 'CENTER') Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')
|
Печать пустой строки | feed | () Печать пустой строки |
Повторить символ на всю ширину строки | repeat | (=) Повторить символ на всю ширину строки |
Печать каждой позиции с новой строки | for(let item of items) { } | Для каждой позиции документа, наименование будет печататься на новой строке |
Форматирование характеристик номенклатуры | formatFeatures(item.nomenclatureFeatures) | Форматирует список характеристик номенклатуры, перечисляя их через запятую, если характеристик у товара не предусмотрено или список характеристик пустой, то автоматически ставится прочерк Пример: for(let item of items) {left(formatFeatures(item.nomenclatureFeatures))}; |
Форматирование цены | formatPrice(item.purchasePrice) | Форматирует цену, добавляя знак рубля в конце, отсекая десятые доли копеек. Если цена, переданная как аргумент в данный метод, не установлена у данного товара, то автоматически ставится прочерк Пример: for(let item of items) {left(formatPrice(item.purchasePrice))}; |
Команды для изменения стиля текста | ||
Выравнивание последующего текста | setAlignment('CENTER') | Возможные значения второго аргумента (по-умолчанию LEFT):
Выравнивание происходит до следующей подобной команды или сброса стиля текста. |
Изменение стиля шрифта | setStyle('NORMAL') | Меняет стиль шрифта, по-умолчанию NORMAL Возможные значения:
|
Изменение размера текста | setSize('MEDIUM') | Меняет размер текста, по-умолчанию MEDIUM Возможные значения:
|
Формат вывода даты | setDateFormat('dd.MM.yyyy') | Задает формат вывода даты (формат по-умолчанию: dd-MM-yyyy). Перечень форматов Форматы дат. |
Сброс стиля текста до исходных значений | reset() | Команда сброса стиля текста до исходных значений (LEFT, NORMAL, MEDIUM, формат даты: dd-MM-yyyy) |
Поля сущностей, которые можно использовать как аргументы для команд печати текста | ||
Пользователь (сущность user) | ||
Имя кассира | text(user.firstName) | Имя |
Фамилия кассира | text(user.lastName) | Фамилия |
Отчество кассира | text(user.patonymic) | Отчество |
Должность продавца | text(user.position) | Должность |
ИНН продавца | text(user.inn) | ИНН |
Торговый объект (сущность tradeObject) | ||
Наименование Торгового объекта | text(tradeObject.name) | Наименование ТО |
Адрес Торгового объекта/ Место расчетов | text(tradeObject.address) | Адрес ТО / место расчётов |
КПП Торгового объекта | text(tradeObject.kpp) | КПП |
Организация (сущность organization) | ||
Наименование организации | text(organization.name) | Наименование организации |
ИНН организации | text(organization.inn) | ИНН |
КПП организации | text(organization.kpp) | КПП |
Адрес организации | text(organization.address) | Адрес |
Типы документов(сущность document) | ||
Дата создания документа | text(document.documentDate) | Дата создания документа |
Номер документа | text(document.documentNumber) | Номер документа |
Ф.И.О. Ответственного | text(document.responsiblePerson) | Ф.И.О. Ответственного |
Комментарий к документу | text(document.description) | Комментарий к документу |
ФИО сотрудника принявшего перемещение товара | text(document.acceptedPerson) | Для акта ПЕРЕМЕЩЕНИЯ Ф.И.О. человека, принявшего перемещение |
Позиции документа (сущность items) доступ к отдельной позиции только через цикл for(let item of items) | ||
Вывод характеристик позиции | text(formatFeatures(item.nomenclatureFeatures)) | Вывод характеристик позиции |
Наименование позиции | text(item.name) | Наименование позиции |
Штрихкод | text(item.barcode) | Штрихкод |
Артикул | text(item.vendorCode) | Артикул |
Цена закупки | text(formatPrice(item.purchasePrice)) | Цена закупки |
Количество товара | text(item.quantity) | Количество товара |
Сумма позиции | text(formatPrice(item.amount)) | Сумма позиции |
Количество принятого товара (Для акта "Перемещения") | text(item.acceptedQuantity) | Для акта ПЕРЕМЕЩЕНИЯ количество принятого товара |
Сумма позиции для учетных документов | text(formatPrice(item.sellingPrice)) | Сумма позиции, для актов СПИСАНИЯ, ОПРИХОДОВАНИЯ, ИНВЕНТАРИЗАЦИЯ |
Сумма НДС для акта "Оприходования" | text(formatPrice(item.vatAmount)) | Сумма НДС по позициям, для акта ОПРИХОДОВАНИЕ |
Дополнительные поля для документа ИНВЕНТАРИЗАЦИЯ | ||
Остаток товара | text(item.accountBalance) | Остаток позиции в системе |
Фактический остаток товара | text(item.actualBalance) | Реальный остаток товара |
Разница остатков | text(item.variance) | Количественная разница между остатками |
Разница остатков | text(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')