Значит так, СМ когда производит групповое изменение карточек выстреливает следующую последовательность запросов (в примере изменение страны в трех карточках):
Код:
begin Supermag.SMBeginActionEx(null,6,null,null,null,null,null); end;
select GlobalArticle,ArrivedFrom,Name,Accepted
from Supermag.SMCard
where Article='106'
begin Supermag.Core.LockObject(1,'CD','106'); end;
select GlobalArticle,ArrivedFrom,Name,Accepted
from Supermag.SMCard
where Article='120'
begin Supermag.Core.LockObject(1,'CD','120'); end;
select GlobalArticle,ArrivedFrom,Name,Accepted
from Supermag.SMCard
where Article='80'
begin Supermag.Core.LockObject(1,'CD','80'); end;
begin Supermag.SMEndAction; end;
begin :V0001 := Supermag.Office.CanUseFunction2(:V0002,:V0003); end;
begin Supermag.SMBeginActionEx(null,6,618,null,null,null,null); end;
alter session set isolation_level = read committed
update Supermag.SMCard TCard
set TCard.Country=''
where Article='106'
begin Supermag.SMAutoPostCard('106',null); end;
update Supermag.SMCard TCard set
TCard.Country=''
where Article='120'
begin Supermag.SMAutoPostCard('120',null); end;
update Supermag.SMCard TCard set
TCard.Country=''
where Article='80'
begin Supermag.SMAutoPostCard('80',null); end;
alter session set isolation_level = read committed
begin supermag.SMFillArtAssorts('106','CD'); end;
begin supermag.SMFillArtAssorts('120','CD'); end;
begin supermag.SMFillArtAssorts('80','CD'); end;
begin supermag.SMFillArtAssortMatrix('106','CD'); end;
begin supermag.SMFillArtAssortMatrix('120','CD'); end;
begin supermag.SMFillArtAssortMatrix('80','CD'); end;
begin Supermag.SMEndAction; end;
begin Supermag.SMEndAction; end;
begin Supermag.Core.ReleaseAllLocks; end;
Получается, что если функция Supermag.Core.LockObject() полностью блокирует карточку, а функция Supermag.Core.ReleaseAllLocks() потом всё разблокирует, то ДА, на время обработки карточки БЛОКИРУЮТСЯ!