Может это поможет...
PHP код:
static void WF_runRecord(Args _args)
{
WorkflowMessageBatchAffinity affinity = str2guid('');
WorkflowMessageTable workflowMessageTable;
Common common;
Int iCnt;
;
// определяем документ для которого стартуем подвисшие шаги согласования
common = RContractTable::findRecId(0);
// сбрасываем Affinity (родственное сходство/свойство)
ttsBegin;
while select forupdate workflowMessageTable
where workflowMessageTable.WorkflowContextRecId == common.RecId
&& workflowMessageTable.WorkflowContextTableId == common.TableId
//&& workflowMessageTable.WorkflowContextCompanyId == common.dataAreaId
&& workflowMessageTable.MessageLifeCycleState == WorkFlowMessageLifeCycleState::Queued
&& workflowMessageTable.batchaffinity != affinity
{
workflowMessageTable.batchaffinity = affinity;
workflowMessageTable.update();
iCnt ++;
}
ttsCommit;
affinity = newguid();
while (SysWorkflowMessageQueueTask::assignBatchAffinityRecord(affinity, common.TableId, common.RecId) > 0)
{
SysWorkflowEventDispatcher::dispatch(affinity);
}
}