Шаблоны печати чеков: различия между версиями

Материал из Касса
Перейти к навигации Перейти к поиску
Строка 268: Строка 268:
| Сумма позиции
| Сумма позиции
|style="text-align: center;"| '''formatPrice(item.amount)'''
|style="text-align: center;"| '''formatPrice(item.amount)'''
|-
| Количество принятого товара (Для акта "Перемещения")
|style="text-align: center;"| '''item.acceptedQuantity'''
|-
|-
| Сумма позиции для учетных документов
| Сумма позиции для учетных документов
|style="text-align: center;"| '''formatPrice(item.sellingPrice)'''
|style="text-align: center;"| '''formatPrice(item.sellingPrice)'''
|-
|colspan="2" style="text-align: center; background:#E0FFFF;"| ''Дополнительные поля для документа ОПРИХОДОВАНИЕ''
|-
|-
| Сумма НДС для акта "Оприходования"
| Сумма НДС для акта "Оприходования"
|style="text-align: center;"| '''formatPrice(item.vatAmount)'''
|style="text-align: center;"| '''formatPrice(item.vatAmount)'''
|-
|colspan="2" style="text-align: center; background:#E0FFFF;"| ''Дополнительные поля для документа ПЕРЕМЕЩЕНИЕ''
|-
| Количество принятого товара (Для акта "Перемещения")
|style="text-align: center;"| '''item.acceptedQuantity'''
|-
|-
|colspan="2" style="text-align: center; background:#E0FFFF;"| ''Дополнительные поля для документа ИНВЕНТАРИЗАЦИЯ''  
|colspan="2" style="text-align: center; background:#E0FFFF;"| ''Дополнительные поля для документа ИНВЕНТАРИЗАЦИЯ''  

Версия 17:31, 6 сентября 2022

Подраздел Шаблоны печати

Печатные формы - это механизм редактирования шаблонов, который позволяет централизованно конструировать/редактировать/обновлять печатные формы документов, используемые на РМК кассиром.
Шаблоны предназначены для печати на ККТ средствами не фискальной печати.


Создавать шаблоны можно будет для следующих документов учета:

  • Оприходование
  • Списание
  • Инвентаризация
  • Перемещение
  • Заказ на закупку


Также можно будет создавать индивидуальные шаблоны для Фискальных документов:

  • Чек

Для Фискальных документов доступно только редактирование Шапки и Подвала чека.

Note.svg Примечание

  • Шапка чека - представляет собой заголовок чека и обычно содержит приветствие и данные организации (адрес, телефон, объект, ФИО директора и др. информацию).
  • Подвал чека - это нижняя часть чека, которая расположена после его итоговых строк и позволяет указать там дополнительную информацию о (способах возврата, описание акции, добавить картинку, эмблему организации и др.)


Подраздел Шаблоны печати представлен в виде таблицы в которой собраны все созданные шаблоны печатных форм организации.
Табличная часть содержит в себе следующую информацию:

  • Наименование шаблона
  • Тип документа

Также в подразделе предусмотрена система фильтров для более удобного поиска шаблонов.


Создание шаблона

Шаблон печатной формы для фискальных чеков
Шаблон печатной формы для документов учета

Для создания шаблона совершите следующие действия:

  • Перейдите в подраздел Шаблоны печати
  • Нажмите на кнопку Создать
  • Во всплывающем окне:
    • Выберите Тип документа
    • Укажите название шаблона:
      • Для фискальных документов внесите описание в окна Шаблон шапки и Шаблон подвала
      • Для документов учета внесите описание в окно Шаблон
    • При необходимости добавить изображение нажмите кнопку Добавить и добавьте изображения с вашего компьютера
  • В правой части экрана будет отображаться окно Предварительный просмотр, для просмотра созданного описания нажмите кнопку Значок Обновить.png
  • Для завершения создания шаблона нажмите кнопку Сохранить


Note.svg Примечание

  • Для удаления шаблона в подразделе Шаблоны печати установите чекбокс в ячейке шаблона и нажмите кнопку Удаление в Личном кабинете.png.


Пример создания шаблона

Для начала необходимо понимать, при создании шаблона используются основные параметры (будут указаны в таблице ниже), которые отвеают за отображении данных в чеке, а также дополнительные переменные/символы, которые позволят кастомизировать и стилизовать печатную форму.


При создании шаблона печати необходимо использовать следующие параметры:

Параметры для редактирования текста
Описание Параметр
Методы печати данных
Параметр для написания текста.
Пример: text('Строка по центру', 'CENTER')

Возможные значения второго аргумента:

  • LEFT
  • CENTER
  • RIGHT
text('текст')
Вывод даты/времени. Форматирует строку с датой при помощи формата, заданного выше
Пример: text(formatDate(document.documentDate))
formatDate(document.documentDate)
Выравнивание текста слева-справа.
Пример:lr('Строка слева',                                      'Строка справа')
lr
Положение изображения на чеке (слева, по центру, справа).
Пример:image('Имя изображения')

Возможные значения второго аргумента:

  • LEFT
  • CENTER
  • RIGHT

Если изображение с данным именем не найдется, то распечатается пустая строка

image
Штрихкод в формате ean8.
Пример:ean8('12345678', 'CENTER') 

Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')

  • LEFT
  • CENTER
  • RIGHT
ean8
Штрихкод в формате ean13.
Пример:ean13('1234567891011', 'CENTER') 

Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')

  • LEFT
  • CENTER
  • RIGHT
ean13
Штрихкод в формате code128.
Пример:code128('123456', 'CENTER')

Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')

  • LEFT
  • CENTER
  • RIGHT
code128
Штрихкод в формате qrCode.
Пример:qrCode('12345678', 'CENTER')

Печать штрихкода с заданными ранее выравниванием setAlignment('CENTER')

  • LEFT
  • CENTER
  • RIGHT
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):

  • LEFT
  • CENTER
  • RIGHT
setAlignment('CENTER')
Изменение стиля шрифта.
Пример: setStyle('NORMAL')

Меняет стиль шрифта, по-умолчанию NORMAL, возможные значения:

  • 'NORMAL' (обычный)
  • 'BOLD' (жирный)
  • 'ITALIC' (курсив)
  • 'UNDERSCORED' (подчеркнутый)
setStyle('NORMAL')
Изменение размера текста.
Пример: setSize('MEDIUM')

Меняет размер текста, по-умолчанию MEDIUM, возможные значения:

  • 'SMALL'
  • 'MEDIUM'
  • 'LARGE'
  • 'X_LARGE'
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)
Сумма позиции для учетных документов formatPrice(item.sellingPrice)
Дополнительные поля для документа ОПРИХОДОВАНИЕ
Сумма НДС для акта "Оприходования" formatPrice(item.vatAmount)
Дополнительные поля для документа ПЕРЕМЕЩЕНИЕ
Количество принятого товара (Для акта "Перемещения") item.acceptedQuantity
Дополнительные поля для документа ИНВЕНТАРИЗАЦИЯ
Остаток товара 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')