Этот драйвер используется только для операций обмена валюты с сохранением себестоимости валюты. Он похож на упрощенный драйвер MarginTotalDriver: так же работает с двумя парами проводок за раз, только не требует списания количества в ноль и полностью игнорирует несовпадающие измерения. Это позволяет оприходовать на итог доллары, а списать с него, скажем, евро. В простом случае схема проводок на итоге Обмен валюты выглядит так:
Итог: Банковский счет ($) |
Итог: Обмен валюты |
Итог: Банковский счет (€) |
|
1. Приход (с суммами) |
− Количество$, − Сумма |
+ Количество$, + Сумма |
|
2. Расход (без сумм) |
− Количество€, Без суммы |
+ Количество€, Без суммы |
Здесь Количество$ — количество долларов, Количество€ — соответственно, евро (числа, естественно, не совпадают). В первой проводке указывается сумма (себестоимость в валюте учета), которая нужна только тогда, когда счет-источник уходит в минус. В обычной ситуации, если баланс счета-источника положителен, драйвер Банковского счета сообщает себестоимость этой партии валюты. Если списываемые со счета-источника деньги относятся к нескольким разным партиям с разной стоимостью — проводка расслаивается, и аналогично ей расслаивается приходная проводка на итоге Обмен валюты. Если проводка на счете-получателе расслаивается, то так же точно расслаивается парная ей проводка Обмена валюты.
На счете-получателе тоже может быть отрицательный баланс, из-за чего себестоимость валюты во второй паре проводок частично или полностью будет взята со счета-получателя (чтобы закрыть в ноль отрицательную партию). В этом случае итог Обмена валюты во второй паре проводок использует именно эту себестоимость, а разность осядет на итоге Обмен валюты.
Чаще всего эту разность удобнее учитывать на итоге Конвертации — там же, где прибыли и убытки от всех остальных операций с валютой. Добиться этого легко, если вторую пару проводок прогнать через Конвертацию:
Итог: Банковский счет ($) |
Итог: Обмен валюты |
Итог: Конвертация |
Итог: Банковский счет (€) |
|
1. Приход (с суммами) |
− Количество$, − Сумма |
+ Количество$, + Сумма |
||
2. Расход (без сумм) |
− Количество€, Без суммы |
+ Количество€, Без суммы |
||
3. Конвертация (без сумм) |
− Количество€, Без суммы |
+ Количество€, Без суммы |
Разность себестоимости партий валют осядет на Конвертации, а на итоге Обмен валюты дельта останется нулевой.