Столкнулся с такой же проблемой. Если кому-нибудь понадобится, то решил следующим образом:
В конструкторе класса LedgerBalancesPostingList меняем значение флага isUsingSecondUserConnection:
X++:
//#define.isUsingSecondUserConnection(false)
#define.isUsingSecondUserConnection(true)
Далее, для закрепления эффекта можно еще в том же классе поправить метод transferTempDeltaRecsToLedgerBalances:
X++:
//LedgerBalancesTransDelta::transferTempDeltaRecsToLedgerBalances(userTTSId);
LedgerBalancesTransDelta::transferTempDeltaRecsToLedgerBalances(userTTSId, connection);
Благодаря этим изменениям вся работа с таблицей LedgerBalancesTransDelta начинает вестись не через основное клиентское подключение а через отдельное, тем самым время блокировок существенно сокращается.
Честно говоря, я так до конца и не разобрался в чем конкретно была причина данной ошибки. Такое впечатление что при длинных транзакциях таблица LedgerBalancesTransDelta блокировалась целиком. Но тем не менее после этих изменений ошибки исчезли.