Цитата:
Сообщение от
EVGL
Close non-financial transfers - хреновая штука, при тестировании, которое коллега проводил, создавало блокировки и могло бы потенциально остановить работу предприятия.
Там все нефинансовые переносы закрываются в одной транзакции. При этом на каждую группу складских аналитик генерится один нехилый update. (Можно посмотреть в inventCostNonFinancialTransferHandler.updateInventTrans()). Как только число обновляемых записей в одном update превысит порог в 5000 (кажется такой порог сейчас в SQL Server 2005/2008), начнется эскалация блокировок с записей на страницы и кучу невинных пользователей заблокируют нахрен.
Возможное решение проблемы - переписать этот класс на обновление по одной номенклатуре, и переместить вызов куда-нить в inventCostItemDim.updateItem(), в ту веточку которая только на нулевой итерации отрабатывает. Я, правда,этого не пробовал.
Кроме того, мне не нравиться что эти складские проводки закрываются вообще без создания записей в inventSettlement. Почему-то для закрытых проводок по услугам, такие записи создаются, а для нефинансовых переносов - нет...