PS к 27 Плюс можно также сделать очередь
создаем доп таблицу
create table last_oper
(
id bigint IDENTITY(1,1) ,
iddoc char(9) NOT NULL,
oper tinyint NOT NULL default 1 , -- 1 проводим документ 0 отменяем проведение документа
data_dt datetime NOT NULL default getdate(),
CONSTRAINT PK_last_oper PRIMARY KEY(id)
-- может быть имеет смысл добавить значение период проведения. НачМесяца(ДатаДок)
)
При новом проведении и при отмене документа из модуля проведения добавляем одну
запись в эту таблицу. Получаем очередь на проведение.
Каким либо образом ( задание само запускается через фиксированное время,
тригер на какую то таблицу или даем управлять подтягиванием проведением Пользователю ) обрабатываем эту очередь в порядке возрастания id ( обработанные документы из очереди удаляем )
Все процесс который занимается этим делом никого не блокирует.
Ведь только он может менять остатки и обороты
Остальные процессы только читают.
Все тоже самое можно сделать и для регистров.
Все это вполне реально сделать(сложность будет может быть только с УРБД ).