Files
obsidian/Work/Пользовательское уточнение.md
2026-09-24 13:22:58 +05:00

26 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#tx #TranzAxis
Дополнительно можно настроить **Пользовательское уточнение** в операции, которое перед выполнением транзакции проверит, доступен ли сервис печати. Для этого в **Функции проверки применимости уточнения** проверяем, доступен ли сервис печати:
// Показать, если печать недоступна, а клиент выбрал печать чека
return !term.isAvailReceipt() && tranRq.Specific != null && tranRq.Specific.ReceiptRequested == true;
На экране пишется текст "Извините, печать временно недоступна". Можно также предложить оборвать операцию, если наличие чека принципиально. Набор возможный действий определяется на вкладке **Действия** пользовательского уточнения:
- Настройте действие **![](https://helpdesk.compassluxe.com/images/icons/emoticons/error.png) Отмена операции** на какую-то клавишу, если хотите позволить клиенту завершить операцию на этом этапе(это если ему принципиально наличие чека). Если такое действие не требуется, а нужно лишь уведомление, то просто не добавляйте это действие и отменить операцию с этого экрана будет нельзя. Операция при этом отклонится с результатом **Отмена операции клиентом**, на которую можно настроить детализацию
- Настройте действие **![](https://helpdesk.compassluxe.com/images/icons/emoticons/check.png) Согласие клиента**
В **Функции обновления транзакционного запроса** сбрасываем флаг запроса чека:
tranRq.Specific.ReceiptRequested = false;
return null;
Проверять выбранное действие необязательно, поскольку при отказе от операции функция не вызывается. С другой стороны, вы можете вместо действия **Отмена операции** выбрать **Отказ клиента**. Для этого действия функция будет вызвана и вы сами сможете определить, что делать далее. Например:
// При согласии снимаем признак необходимости чека и продолжаем операцию
if (action == XdcKeyAction:Yes) {
tranRq.Specific.ReceiptRequested = false;
return null;
}
// Выбран No = Отказ клиента
// В случае отказа отклоняем операцию с причиной "Отклонено пользовательской функцией (1)"
return DeclineReason:UserDecline1;