Установка флага маршрута по учетным данным документа#
Используется, чтобы анализировать учетные данные документа и устанавливать флаг в переменной процесса при выполнении заданного условия. Результат может использоваться для условного перехода в маршруте согласования.
Место применения: Управление бизнес-процессами > Справочники > Схема бизнес-процесса > [Процесс] > Редактировать > Вкладка "Процедуры" > Поле процедуры выполнения.
Тип: JEXL-скрипт
// Процедура проверки наличия счета "76" в контировке одной из позиций приходного акта
var svVar = param; // Переменная для параметра, в который будет записан результат процедуры
var ropProc = Bpm_PrStateApi.getProcess(idpPrState); // Переменная для хранения контекста выборки конкретного маршрута
var gidvDoc = Bpm_PrDocApi.getProcDocByPrState(idpPrState); // Переменная для хранения документа - объекта маршрута
// Переменная для хранения результата sql-запроса, через выполнение которого проверяется наличие в контировке позиции приходного акта счета "76"
var s =
`
select case when (acc.sCode like '%76%') then 1 else 0 end as isacc76
from bbb_objdistr bo
join bs_acc acc on bo.idaccacc = acc.id
join stm_actindet aid on bo.gidobj = aid.gid
join stm_actin ai on aid.idDoc = ai.id
where ai.gid = '`+ idvDoc + `'
`;
/*
Цикл, который будет выполнять sql запрос для каждой позиции контировки приходного акта и если найдет хотя бы одну,
у которой счет учета услуг содержит код "76" запишет значение переменной для проверки условия наличия счета "76" в маршруте true
*/
var l = sql(s).asList();
for(w:l){
if (l.isacc76 == 1)
Bpm_ProcessApi.setProcessVar(ropProc , "isacc76", true);
}