Валидаторы транзакций

Валидаторы транзакций – скрипты, используемые для проверки транзакций на валидность (правильность). Валидаторы тесно связаны с используемыми драйверами итогов. Список всех валидаторов транзакций можно найти в справочнике "Scripts". Кроме того, валидатор конкретного итога можно открыть из его формы редактирования:

Scripts_TotalValidationScript

Скрипт валидатора выполняется при сохранении документа после транзакционных скриптов и позволяет проверить правильность транзакций до их сохранения, выдавая в случае ошибки исключение. Это, в свою очередь, позволяет сократить количество ошибок при расчете детализированных транзакций драйвером итога.

Например, с помощью валидаторов можно проверить следующие ограничения, накладываемые на транзакции итогов используемыми драйверами:

нельзя делать полное расходное движение на итог, на котором используется драйвер FifoTotalDriver;

нельзя делать неполное приходное движение или делать движение в обход итога конвертации на итог, на котором работает драйвер CashlessMoneyTotalDriver.

DevBookmark_Scripts Скрипты валидаторов транзакций реализуют интерфейс ITransactionValidator (из пространства имен Ultima.Totals), который в свою очередь реализует следующие методы:

ValidateTransactions(TransactionPairCollection transactionPairs, TransactionCollection transactions) – выполняет проверку транзакций, может быть переопределен прикладным разработчиком:

transactionPairs – коллекция пар транзакций для проверки;

transactions – коллекция транзакций для проверки.