Фискальный регистратор может самостоятельно отформатировать чек, без каких-либо дополнительных указаний со стороны прикладной программы, поэтому использование шаблона чека в общем случае не является обязательным.
Прикладному скрипту при наличии фискального регистратора достаточно заполнить
CashMatic.Print.Receipt.SaleItems,
CashMatic.Print.Receipt.Cash, и затем вызвать
CashMatic.Print.PrintOut().
Пример:
/*
Печать на фискальном регистраторе чека продажи на 2 позиции:
- платёж за услугу на 100 руб.
- 5 конфет по 5 рублей.
при условии внесения наличных 150 руб.
*/
CashMatic.Print.Reset(); //начальная установка объекта печати
//Добавляем позицию в список продажи:
Item = CashMatic.Print.Receipt.SaleItems.Add();
Item.Name = "Платёж за услугу"; //название позиции в списке продажи
Item.Price = 100; //цена товарной единицы
Item.Quantity = 1; //количество оплаченного товара
//Добавляем позицию в список продажи:
Item = CashMatic.Print.Receipt.SaleItems.Add();
Item.Name = "Конфета"; //название позиции в списке продажи
Item.Price = 5; //цена товарной единицы
Item.Quantity = 5; //количество оплаченного товара
//количество внесённых наличных:
CashMatic.Print.Receipt.Cash = 150;
//собственно печать чека:
if(CashMatic.Print.PrintOut())
{
//при успешной печати:
SendInfoToServer(
CashMatic.Print.Receipt.Terminal,
CashMatic.Print.Receipt.Date,
CashMatic.Print.Receipt.Time,
CashMatic.Print.Receipt.Total,
CashMatic.Print.Receipt.Cash
);//предполагаемая функция прикладной программы,
// отсылающая на сервер данные чека: имя терминала,
// дата, время, итоговая сумма, внесённые наличные
// - всё в том виде, как было напечатано на чеке.
//(функция SendInfoToServer не написана, указана
// только для иллюстрации)
}
Обратите внимание, итоговая стоимость чека составляет 125 руб., внесено 150 руб., фискальный регистратор должен на чеке показать сдачу 25 руб. и сделать соответствующую запись в фискальной памяти.
Дополнительно можно задать значения свойствам
TextAbove и/или
TextBelow (текст над/текст под) для каждого элемента (позиции) в списке продажи.
Также можно задать значения свойствам
TextAbove и/или
TextBelow (текст над/текст под) всего списка продажи (
CashMatic.Print.Receipt.SaleItems.TextAbove /
CashMatic.Print.Receipt.SaleItems.TextBelow) - поддерживается только в режиме фискального чека без шаблона.
Следует обратить внимание, что на выводимый текст действует параметр печати, задаваемый в Панели управления
NDemia CashMatic - обработка %-кодов форматирования. На самом деле форматирование %-кодами на фискальном регистраторе не поддерживается, обработка состоит в их извлечении из текста (это можно отключить).
Если Вы организуете печать через
CashMatic.Print.Receipt, то Вы не должны изменять значение
CashMatic.Print.Text, иначе печать автоматически переключится в режим "
текст без шаблона", без фискализации.
Если указанный выше пример будет выполнен не на фискальном регистраторе, а на обычном принтере, то не напечатается совсем ничего - текст должен быть сформирован либо целиком программно (см.
текст без шаблона), либо заполнением заранее подготовленного шаблона (см.
чек по шаблону)
Аналогично ничего не напечатается даже на фискальном регистраторе, если в исходном тексте примера выше
CashMatic.Print.PrintOut() вставить строку
CashMatic.Print.Receipt.Fiscal = false;
поскольку это будет означать нефискальный режим режим печати, т.е. текст чека формируется программно и отдаётся фискальному регистратору целиком, без детализации продажи, денег и т.п.