Сообщение отдельно
21.02.2013 14:42
Ошибку выдать на экран кассира вполне можно.
Пример про чуть другое, но на ту же тему.

Код:
-- Максимально допустимая сумма чека
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 генерируется ошибка, УКМ показывает ее кассиру, в ФР чек аннулируется, а на экране остается висеть.
Т.е. его можно только аннулировать.