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

3.2 KiB
Raw Blame History

#tx #TranzAxis Дополнительно можно настроить Пользовательское уточнение в операции, которое перед выполнением транзакции проверит, доступен ли сервис печати. Для этого в Функции проверки применимости уточнения проверяем, доступен ли сервис печати:

// Показать, если печать недоступна, а клиент выбрал печать чека return !term.isAvailReceipt() && tranRq.Specific != null && tranRq.Specific.ReceiptRequested == true;

На экране пишется текст "Извините, печать временно недоступна". Можно также предложить оборвать операцию, если наличие чека принципиально. Набор возможный действий определяется на вкладке Действия пользовательского уточнения:

  • Настройте действие Отмена операции на какую-то клавишу, если хотите позволить клиенту завершить операцию на этом этапе(это если ему принципиально наличие чека). Если такое действие не требуется, а нужно лишь уведомление, то просто не добавляйте это действие и отменить операцию с этого экрана будет нельзя. Операция при этом отклонится с результатом Отмена операции клиентом, на которую можно настроить детализацию
  • Настройте действие Согласие клиента

В Функции обновления транзакционного запроса сбрасываем флаг запроса чека:

tranRq.Specific.ReceiptRequested = false; return null;

Проверять выбранное действие необязательно, поскольку при отказе от операции функция не вызывается. С другой стороны, вы можете вместо действия Отмена операции выбрать Отказ клиента. Для этого действия функция будет вызвана и вы сами сможете определить, что делать далее. Например:

// При согласии снимаем признак необходимости чека и продолжаем операцию if (action == XdcKeyAction:Yes) { tranRq.Specific.ReceiptRequested = false; return null; } // Выбран No = Отказ клиента // В случае отказа отклоняем операцию с причиной "Отклонено пользовательской функцией (1)" return DeclineReason:UserDecline1;