Критика решения из #14
SELECT @РезБло = 1
FROM dbo._1SBKTTLC AS ТабБло WITH (TABLOCKX, HOLDLOCK)
тем самым вы наложили блокировку на всю талицу _1SBKTTLC
т.е ни о каком "Как обойти блокировку таблицы _1SBKTTLC?" не может быть и речи
до конца транзакции остальные проведения ждут.
т.к @РезБло = 1 то оператор просто лишний
IF @РезБло <> 1
ROLLBACK TRAN
Ваше решение дает выигрыш за счет локал свертки.
Т.е поясню предположим есть 100 строк с проводками документ проведен.
Вы меняете только одну строку . например сумму со 100 до 150
В вашей итоговой таблице останется только одна ненулевая строка с суммой 50. Предполагается что документ дает теже самые проводки.
и только будет одна строка изменяющая итоговую таблицу _1SBKTTLC.
За счет этого и выигрыш. но при этом все блокируется.
Еще большего выигрыша можно достичь переписав #14 без курсора и в доп таблицу добавив @@SPID