Перейти к основному содержанию
`Ctrl`+`K`

# Установка флага маршрута по учетным данным документа

Используется, чтобы анализировать учетные данные документа и устанавливать флаг в переменной процесса при выполнении заданного условия. Результат может использоваться для условного перехода в маршруте согласования.

Место применения: `Управление бизнес-процессами > Справочники > Схема бизнес-процесса > [Процесс] > Редактировать > Вкладка "Процедуры" > Поле процедуры выполнения`.

Тип: 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);
    }