Ошибку выдать на экран кассира вполне можно.
Пример про чуть другое, но на ту же тему.
Код:
-- Максимально допустимая сумма чека
receipt_max_subtotal=200000
function print_receipt_close(__core, __print_data)
-- Проверка на максимальную сумму чека
if __core:subtotal_exists() and __core:footer_exists() then
if (__core.subtotal.amount > ukm.currency(receipt_max_subtotal)) and
(__core.footer.result == ukm.footer.normal) and
(__core.header.receipt.type ~= ukm.core.copy)
then
error("ЗАПРЕЩЕНА ОПЛАТА БОЛЕЕ ".. tostring(receipt_max_subtotal) .." руб.");
end
end
Работает оно так: чек начинает печататься, ближе к его завершению в lua генерируется ошибка, УКМ показывает ее кассиру, в ФР чек аннулируется, а на экране остается висеть.
Т.е. его можно только аннулировать.