NDemia Новости CashMatic Рубли Форум

Фискальный чек без шаблона


Фискальный регистратор может самостоятельно отформатировать чек, без каких-либо дополнительных указаний со стороны прикладной программы, поэтому использование шаблона чека в общем случае не является обязательным.
Прикладному скрипту при наличии фискального регистратора достаточно заполнить
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;
поскольку это будет означать нефискальный режим режим печати, т.е. текст чека формируется программно и отдаётся фискальному регистратору целиком, без детализации продажи, денег и т.п.
тел. +7-(916)-129-26-84 (C)opyright: NDemia Ltd, Москва, 2006..2024 ndemia@ndemia.com