Пример #1
0
 }
 $arParams["USER_ID"] = intVal($GLOBALS["USER"]->GetID());
 $arParams["WORKFLOW_ID"] = empty($arParams["WORKFLOW_ID"]) ? $_REQUEST["WORKFLOW_ID"] : $arParams["WORKFLOW_ID"];
 //***************** URL ********************************************/
 $arResult["back_url"] = urlencode(empty($_REQUEST["back_url"]) ? $APPLICATION->GetCurPageParam() : $_REQUEST["back_url"]);
 /***************** ADDITIONAL **************************************/
 $arParams["PAGE_ELEMENTS"] = intVal(intVal($arParams["PAGE_ELEMENTS"]) > 0 ? $arParams["PAGE_ELEMENTS"] : 50);
 $arParams["PAGE_NAVIGATION_TEMPLATE"] = trim($arParams["PAGE_NAVIGATION_TEMPLATE"]);
 /***************** STANDART ****************************************/
 $arParams["SET_TITLE"] = $arParams["SET_TITLE"] == "N" ? "N" : "Y";
 //Turn on by default
 /********************************************************************
 					/Input params
 	********************************************************************/
 $arError = array();
 $arResult["arWorkflowState"] = CBPStateService::GetWorkflowState($arParams["ID"]);
 $arParams["DOCUMENT_ID"] = $arResult["arWorkflowState"]["DOCUMENT_ID"];
 $arParams["USER_GROUPS"] = $GLOBALS["USER"]->GetUserGroupArray();
 if (method_exists($arParams["DOCUMENT_ID"][1], "GetUserGroups")) {
     $arParams["USER_GROUPS"] = call_user_func_array(array($arParams["DOCUMENT_ID"][1], "GetUserGroups"), array(null, $arParams["DOCUMENT_ID"], $GLOBALS["USER"]->GetID()));
 }
 if (!is_array($arResult["arWorkflowState"]) || count($arResult["arWorkflowState"]) <= 0) {
     $arError[] = array("id" => "error", "text" => GetMessage("BPABL_INVALID_WF"));
 } else {
     $bCanView = CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::ViewWorkflow, $GLOBALS["USER"]->GetID(), $arResult["arWorkflowState"]["DOCUMENT_ID"], array("WorkflowId" => $arParams["ID"], "DocumentStates" => array($arParams["ID"] => $arResult["arWorkflowState"]), "UserGroups" => $arParams["USER_GROUPS"]));
     if (!$bCanView) {
         $arError[] = array("id" => "access denied", "text" => GetMessage("BPABL_NO_PERMS"));
     }
 }
 if (!empty($arError)) {
     $e = new CAdminException($arError);
Пример #2
0
$arParams["PATH_TO_BIZPROC_EDIT"] = trim($arParams["PATH_TO_BIZPROC_EDIT"]);
if (strlen($arParams["PATH_TO_BIZPROC_EDIT"]) <= 0) {
    $arParams["PATH_TO_BIZPROC_EDIT"] = htmlspecialcharsbx($APPLICATION->GetCurPage() . "?" . $arParams["PAGE_VAR"] . "=bizproc_edit&" . $arParams["TASK_VAR"] . "=#task_id#");
}
if (!$GLOBALS["USER"]->IsAuthorized()) {
    $arResult["NEED_AUTH"] = "Y";
} else {
    if ($arParams["SET_TITLE"] == "Y") {
        $APPLICATION->SetTitle(GetMessage("SONET_BIZPROC_TITLE"));
    }
    if ($arParams["SET_NAV_CHAIN"] != "N") {
        $APPLICATION->AddChainItem(GetMessage("SONET_BIZPROC_TITLE"));
    }
    $dbResultList = CBPTaskService::GetList(array("MODIFIED" => "DESC"), array("USER_ID" => $USER->GetID()), false, false, array("ID", "WORKFLOW_ID", "ACTIVITY", "ACTIVITY_NAME", "MODIFIED", "OVERDUE_DATE", "NAME", "DESCRIPTION", "PARAMETERS"));
    while ($arResultItem = $dbResultList->GetNext()) {
        if (strlen($arResultItem["DESCRIPTION"]) > 100) {
            $arResultItem["DESCRIPTION"] = substr($arResultItem["DESCRIPTION"], 0, 97) . "...";
        }
        $arResultItem["EditUrl"] = CComponentEngine::MakePathFromTemplate($arParams["PATH_TO_BIZPROC_EDIT"], array("task_id" => $arResultItem["ID"]));
        $arResult["TASKS"][] = $arResultItem;
    }
    $dbTracking = CBPTrackingService::GetList(array("MODIFIED" => "DESC"), array("MODIFIED_BY" => $USER->GetID()));
    while ($arTracking = $dbTracking->GetNext()) {
        if (strlen($arTracking["WORKFLOW_ID"]) > 0) {
            $arTracking["STATE"] = CBPStateService::GetWorkflowState($arTracking["WORKFLOW_ID"]);
            $arTracking["STATE"]["Url"] = CBPDocument::GetDocumentAdminPage($arTracking["STATE"]["DOCUMENT_ID"]);
        }
        $arResult["TRACKING"][] = $arTracking;
    }
}
$this->IncludeComponentTemplate();
Пример #3
0
    /*	$arWorkflowTemplate = CBPWorkflowTemplateLoader::GetTemplateState($workflowTemplateId);
    
    	if (!is_array($arWorkflowTemplate["STATE_PERMISSIONS"]) || count($arWorkflowTemplate["STATE_PERMISSIONS"]) <= 0)
    		$arWorkflowTemplate["STATE_PERMISSIONS"]["create"] = array("author");
    
    	$arResult["AllowableOperations"] = CBPDocument::GetAllowableOperations($GLOBALS["USER"]->GetID(), $GLOBALS["USER"]->GetUserGroupArray(), array($arWorkflowTemplate));
    */
    $arResult["AllowAdmin"] = $GLOBALS["USER"]->IsAdmin() || is_array($arParams["ADMIN_ACCESS"]) && count(array_intersect($arParams["ADMIN_ACCESS"], $GLOBALS["USER"]->GetUserGroupArray())) > 0;
    /*	$arResult["AllowCreate"] = ($arResult["AllowAdmin"] || (is_array($arResult["AllowableOperations"]) && in_array("create", $arResult["AllowableOperations"]) || is_array($arWorkflowTemplate["STATE_PERMISSIONS"]["create"]) && in_array("author", $arWorkflowTemplate["STATE_PERMISSIONS"]["create"])));*/
}
if (strlen($arResult["FatalErrorMessage"]) <= 0) {
    if ($_SERVER["REQUEST_METHOD"] == "GET" && strlen($_REQUEST["process_state_event"]) > 0 && check_bitrix_sessid()) {
        $bizprocId = trim($_REQUEST["bizproc_id"]);
        $bizprocEvent = trim($_REQUEST["bizproc_event"]);
        if (strlen($bizprocEvent) > 0) {
            $arState = CBPStateService::GetWorkflowState($bizprocId);
            if (count($arState) > 0) {
                list($dbRecordsList, $dbRecordsList1) = CBPVirtualDocument::GetList(array(), array("IBLOCK_ID" => $arParams["BLOCK_ID"], "ID" => $arState["DOCUMENT_ID"][2]), false, false, array("ID", "IBLOCK_ID", "CREATED_BY"));
                if ($arRecord = $dbRecordsList->Fetch()) {
                    $arCurrentUserGroups = $GLOBALS["USER"]->GetUserGroupArray();
                    if ("user_" . $GLOBALS["USER"]->GetID() == $arRecord["CREATED_BY"]) {
                        $arCurrentUserGroups[] = "author";
                    }
                    $arErrorTmp = array();
                    CBPDocument::SendExternalEvent($bizprocId, $bizprocEvent, array("Groups" => $arCurrentUserGroups, "User" => $GLOBALS["USER"]->GetID()), $arErrorTmp);
                    if (count($arErrorsTmp) > 0) {
                        foreach ($arErrorsTmp as $e) {
                            $arResult["FatalErrorMessage"] .= $e["message"] . ". ";
                        }
                    }
                } else {
Пример #4
0
if (!$arResult["TASK"] && strlen($arParams["WORKFLOW_ID"]) > 0) {
    $dbTask = CBPTaskService::GetList(array(), array("WORKFLOW_ID" => $arParams["WORKFLOW_ID"], "USER_ID" => $arParams["USER_ID"], 'USER_STATUS' => CBPTaskUserStatus::Waiting), false, false, array("ID", "WORKFLOW_ID", "ACTIVITY", "ACTIVITY_NAME", "MODIFIED", "OVERDUE_DATE", "NAME", "DESCRIPTION", "PARAMETERS", 'IS_INLINE', 'STATUS', 'USER_STATUS', 'DOCUMENT_NAME'));
    $arResult["TASK"] = $dbTask->GetNext();
}
if (!$arResult["TASK"]) {
    ShowError(GetMessage("BPAT_NO_TASK"));
    return false;
}
if ($arResult["TASK"]['STATUS'] > CBPTaskStatus::Running || $arResult["TASK"]['USER_STATUS'] > CBPTaskUserStatus::Waiting) {
    $arResult["ShowMode"] = "Success";
    $arResult['IsComplete'] = true;
}
if ($arResult['ReadOnly'] && isset($arResult['TASK']['PARAMETERS']['AccessControl']) && $arResult['TASK']['PARAMETERS']['AccessControl'] == 'Y') {
    $arResult['TASK']['DESCRIPTION'] = '';
}
$arState = CBPStateService::GetWorkflowState($arResult['TASK']['WORKFLOW_ID']);
if (!$arState) {
    ShowError(GetMessage("BPAT_NO_STATE"));
    // Let`s clean up!
    CBPTaskService::DeleteByWorkflow($arResult['TASK']['WORKFLOW_ID']);
    return false;
}
$arResult['TASK']['PARAMETERS']['DOCUMENT_ID'] = $arState['DOCUMENT_ID'];
$arResult["TASK"]["MODULE_ID"] = $arResult["TASK"]["PARAMETERS"]["DOCUMENT_ID"][0];
$arResult["TASK"]["ENTITY"] = $arResult["TASK"]["PARAMETERS"]["DOCUMENT_ID"][1];
$arResult["TASK"]["DOCUMENT_ID"] = $arResult["TASK"]["PARAMETERS"]["DOCUMENT_ID"][2];
$arParams["DOCUMENT_URL"] = trim($arParams["DOCUMENT_URL"]);
if (empty($arParams["DOCUMENT_URL"])) {
    $arParams["DOCUMENT_URL"] = CBPDocument::GetDocumentAdminPage($arResult["TASK"]["PARAMETERS"]["DOCUMENT_ID"]);
} else {
    $arParams["DOCUMENT_URL"] = CComponentEngine::MakePathFromTemplate($arParams["DOCUMENT_URL"], $arResult["TASK"]);
Пример #5
0
 $hgridColumns = $hgridOptions->GetVisibleColumns();
 $hgridSort = $hgridOptions->GetSorting(array("sort" => array("ID" => "desc")));
 $arResult["H_HEADERS"] = array(array("id" => "MODIFIED", "name" => GetMessage("BPATL_MODIFIED"), "default" => true, "sort" => ""), array("id" => "ACTION_NOTE", "name" => GetMessage("BPATL_DESCRIPTION"), "default" => true, "sort" => ""));
 $arResult["H_SORT"] = $hgridSort["sort"];
 $arResult["H_RECORDS"] = array();
 $arFilter = array("MODIFIED_BY" => $arParams["USER_ID"]);
 if (!empty($arParams["WORKFLOW_ID"])) {
     $arFilter["WORKFLOW_ID"] = $arParams["WORKFLOW_ID"];
 }
 $runtime = CBPRuntime::GetRuntime();
 $runtime->StartRuntime();
 $documentService = $runtime->GetService("DocumentService");
 $dbRecordsList = CBPTrackingService::GetList($hgridSort["sort"], $arFilter);
 while ($arRecord = $dbRecordsList->GetNext()) {
     if (strlen($arRecord["WORKFLOW_ID"]) > 0) {
         $arRecord["STATE"] = CBPStateService::GetWorkflowState($arRecord["WORKFLOW_ID"]);
         $arRecord["DOCUMENT_URL"] = CBPDocument::GetDocumentAdminPage($arRecord["STATE"]["DOCUMENT_ID"]);
         try {
             $dt = $documentService->GetDocumentType($arRecord["STATE"]["DOCUMENT_ID"]);
         } catch (Exception $e) {
         }
         $arRecord["ACTION_NOTE"] = preg_replace_callback("/\\{=([A-Za-z0-9_]+)\\:([A-Za-z0-9_]+)\\}/i", create_function('$matches', 'return __bwl_ParseStringParameterTmp1($matches, array("' . $dt[0] . '", "' . $dt[1] . '", "' . $dt[2] . '"));'), $arRecord["ACTION_NOTE"]);
     }
     $aActions = array();
     if (strlen($arRecord["DOCUMENT_URL"]) > 0) {
         $aActions[] = array("ICONCLASS" => "", "DEFAULT" => false, "TEXT" => GetMessage("BPTL_C_DOCUMENT"), "ONCLICK" => "window.open('" . $arRecord["DOCUMENT_URL"] . "');");
     }
     $arResult["H_RECORDS"][] = array("data" => $arRecord, "actions" => $aActions, "columns" => array(), "editable" => false);
 }
 $arResult["H_ROWS_COUNT"] = $dbRecordsList->SelectedRowsCount();
 $arResult["H_NAV_STRING"] = $dbRecordsList->GetPageNavStringEx($navComponentObject, GetMessage("INTS_TASKS_NAV"), "", false);
Пример #6
0
$dbResultList->NavStart();
$lAdmin->NavText($dbResultList->GetNavPrint(GetMessage("BPATL_NAV")));
while ($arResultItem = $dbResultList->NavNext(true, "f_")) {
    $row =& $lAdmin->AddRow($f_ID, $arResultItem);
    $s = $allowAdminAccess ? "&uid=" . intval($arResultItem["USER_ID"]) : "";
    $row->AddField("ID", '<a href="bizproc_task.php?id=' . $f_ID . $s . '&back_url=' . urlencode($APPLICATION->GetCurPageParam("lang=" . LANGUAGE_ID, array("lang"))) . '" title="' . GetMessage("BPATL_VIEW") . '">' . $f_ID . '</a>');
    $row->AddField("NAME", $f_NAME);
    $description = $f_DESCRIPTION;
    if (strlen($description) > 100) {
        $description = substr($description, 0, 97) . "...";
    }
    $row->AddField("DESCRIPTION", $description);
    $row->AddField("DESCRIPTION_FULL", $f_DESCRIPTION);
    $row->AddField("MODIFIED", $f_MODIFIED);
    if (count(array_intersect($arVisibleColumns, array("WORKFLOW_NAME", "WORKFLOW_STATE"))) > 0) {
        $arState = CBPStateService::GetWorkflowState($arResultItem["WORKFLOW_ID"]);
        $row->AddField("WORKFLOW_NAME", $arState["TEMPLATE_NAME"]);
        $row->AddField("WORKFLOW_STATE", $arState["STATE_TITLE"]);
    }
    if (in_array("USER", $arVisibleColumns)) {
        $dbUserTmp = CUser::GetByID($arResultItem["USER_ID"]);
        if ($arUserTmp = $dbUserTmp->GetNext()) {
            $str = CUser::FormatName(COption::GetOptionString("bizproc", "name_template", CSite::GetNameFormat(false), SITE_ID), $arUserTmp, true);
            $str .= " [" . $arResultItem["USER_ID"] . "]";
        } else {
            $str = str_replace("#USER_ID#", $arResultItem["USER_ID"], GetMessage("BPATL_USER_NOT_FOUND"));
        }
        $row->AddField("USER", $str);
    }
    $arActions = array();
    $arActions[] = array("ICON" => "edit", "TEXT" => GetMessage("BPATL_VIEW"), "ACTION" => $lAdmin->ActionRedirect('bizproc_task.php?id=' . $f_ID . $s . '&back_url=' . urlencode($APPLICATION->GetCurPageParam("lang=" . LANGUAGE_ID, array("lang"))) . ''), "DEFAULT" => true);
Пример #7
0
     if (count($arState) > 0) {
         CBPDocument::TerminateWorkflow($_REQUEST["stop_bizproc_id"], $arState["DOCUMENT_ID"], $arErrorsTmp);
         if (count($arErrorsTmp) > 0) {
             foreach ($arErrorsTmp as $e) {
                 $arResult["ErrorMessage"] .= $e["message"] . ". ";
             }
         }
     } else {
         $arResult["ErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_BP") . ". ";
     }
     if (strlen($arResult["ErrorMessage"]) <= 0) {
         LocalRedirect($APPLICATION->GetCurPageParam("", array("sessid", "stop_bizproc_id", "delete_bizproc_id")));
     }
 }
 if ($_SERVER["REQUEST_METHOD"] == "GET" && strlen($_REQUEST["delete_bizproc_id"]) > 0 && check_bitrix_sessid() && $arResult["AllowAdmin"]) {
     $arState = CBPStateService::GetWorkflowState($_REQUEST["delete_bizproc_id"]);
     if (count($arState) > 0) {
         $arErrorsTmp = array();
         CBPDocument::OnDocumentDelete($arState["DOCUMENT_ID"], $arErrorsTmp);
         if (count($arErrorsTmp) > 0) {
             foreach ($arErrorsTmp as $e) {
                 $arResult["ErrorMessage"] .= $e["message"] . ". ";
             }
         }
         if (strlen($arResult["ErrorMessage"]) <= 0) {
             CIBlockElement::Delete($arState["DOCUMENT_ID"][2]);
         }
     } else {
         $arResult["ErrorMessage"] .= GetMessage("BPWC_WLC_MISSING_BP") . ". ";
     }
     if (strlen($arResult["ErrorMessage"]) <= 0) {
Пример #8
0
<?php

require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_before.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/bizproc/include.php";
require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/bizproc/prolog.php";
IncludeModuleLangFile(__FILE__);
/*
$bizprocModulePermissions = $APPLICATION->GetGroupRight("bizproc");
if ($bizprocModulePermissions < "R")
	$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
*/
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
$errorMessage = "";
$ID = trim($_REQUEST["ID"]);
$adminMode = strtoupper($_REQUEST["admin_mode"]) == "Y";
$arWorkflowState = CBPStateService::GetWorkflowState($ID);
if (!is_array($arWorkflowState) || count($arWorkflowState) <= 0) {
    $APPLICATION->SetTitle(GetMessage("BPABL_INVALID_WF"));
    CAdminMessage::ShowMessage(GetMessage("BPABL_INVALID_WF") . ". ");
} else {
    $bCanView = CBPDocument::CanUserOperateDocument(CBPCanUserOperateOperation::ViewWorkflow, $GLOBALS["USER"]->GetID(), $arWorkflowState["DOCUMENT_ID"], array("WorkflowId" => $ID, "DocumentStates" => array($ID => $arWorkflowState), "UserGroups" => $GLOBALS["USER"]->GetUserGroupArray()));
    if (!$bCanView) {
        $APPLICATION->SetTitle(GetMessage("BPABL_ERROR"));
        require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_admin_after.php";
        echo ShowError(GetMessage("BPABL_NO_PERMS"));
        require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_admin.php";
        die;
    }
    $backUrl = "/" . ltrim(trim($_REQUEST["back_url"]), "\\/");
    if (strlen($backUrl) <= 0) {
        $backUrl = CBPDocument::GetDocumentAdminPage($arWorkflowState["DOCUMENT_ID"]);
Пример #9
0
        if ($arParams[$name] <= 0) {
            $arParams[$name] = trim($_REQUEST[$nameLower]);
        }
        if ($arParams[$name] <= 0) {
            foreach ($_REQUEST as $key => $value) {
                if (strtolower($key) == $nameLower) {
                    $arParams[$name] = trim($_REQUEST[$key]);
                    break;
                }
            }
        }
    }
}
BPWSInitParam($arParams, "WORKFLOW_ID");
$arResult["NeedAuth"] = "N";
$arResult["FatalErrorMessage"] = "";
$arResult["ErrorMessage"] = "";
global $USER;
if (!$USER->IsAuthorized()) {
    $arResult["NeedAuth"] = "Y";
} elseif (strlen($arParams["WORKFLOW_ID"]) <= 0) {
    $arResult["FatalErrorMessage"] .= "Не указан код рабочего потока" . ". ";
} else {
    $arResult["WorkflowState"] = CBPStateService::GetWorkflowState($arParams["WORKFLOW_ID"]);
    if ($arResult["WorkflowState"]) {
        $arResult["WorkflowTrack"] = CBPTrackingService::DumpWorkflow($arParams["WORKFLOW_ID"]);
    } else {
        $arResult["FatalErrorMessage"] .= "Рабочий поток не найден" . ". ";
    }
}
$this->IncludeComponentTemplate();
Пример #10
0
        if ($arParams[$name] <= 0) {
            $arParams[$name] = trim($_REQUEST[strtolower($name)]);
        }
    }
}
global $order, $by;
/********************************************************************
				Input params
********************************************************************/
/***************** BASE ********************************************/
$arParams["MODULE_ID"] = trim(empty($arParams["MODULE_ID"]) ? $_REQUEST["module_id"] : $arParams["MODULE_ID"]);
$arParams["ENTITY"] = trim(empty($arParams["ENTITY"]) ? $_REQUEST["entity"] : $arParams["ENTITY"]);
$arParams["DOCUMENT_TYPE"] = trim(empty($arParams["DOCUMENT_TYPE"]) ? $_REQUEST["document_type"] : $arParams["DOCUMENT_TYPE"]);
$arParams["DOCUMENT_ID"] = trim(empty($arParams["DOCUMENT_ID"]) ? $_REQUEST["document_id"] : $arParams["DOCUMENT_ID"]);
if (isset($arParams["TASK_ID"])) {
    $arTask = CBPStateService::GetWorkflowState($arParams["TASK_ID"]);
    if (!empty($arTask)) {
        $arResult["TASK"] = $arTask;
    } else {
        if (isset($arParams["TASK_LIST_URL"])) {
            LocalRedirect($arParams["TASK_LIST_URL"]);
        }
    }
}
//***************** URL ********************************************/
$arParams["back_url"] = !empty($arParams["back_url"]) ? $arParams["back_url"] : (!empty($_REQUEST["back_url"]) ? urldecode($_REQUEST["back_url"]) : "");
$URL_NAME_DEFAULT = array("workflow_start" => "PAGE_NAME=start&ID=#ID#", "workflow_log" => "PAGE_NAME=log&ID=#ID#", "task_edit" => "PAGE_NAME=task_edit&ID=#ID#");
foreach ($URL_NAME_DEFAULT as $URL => $URL_VALUE) {
    $arParams[strToUpper($URL) . "_URL"] = trim($arParams[strToUpper($URL) . "_URL"]);
    if (empty($arParams[strToUpper($URL) . "_URL"])) {
        $arParams[strToUpper($URL) . "_URL"] = $APPLICATION->GetCurPage();
Пример #11
0
    }
    if ($processes) {
        if (isset($arVariables["mode"])) {
            switch ($arVariables["mode"]) {
                case "catalog":
                    if ($processes) {
                        $componentPage = "catalog_processes";
                    }
                    break;
            }
        }
    }
    $arResult = array("FOLDER" => "", "URL_TEMPLATES" => array("list_field_edit" => $APPLICATION->GetCurPage() . "?mode=field" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["field_id"] . "=#field_id#", "list_fields" => $APPLICATION->GetCurPage() . "?mode=fields" . "&" . $arVariableAliases["list_id"] . "=#list_id#", "list_edit" => $APPLICATION->GetCurPage() . "?mode=edit" . "&" . $arVariableAliases["list_id"] . "=#list_id#", "list_element_edit" => $APPLICATION->GetCurPage() . "?mode=edit" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["section_id"] . "=#section_id#" . "&" . $arVariableAliases["element_id"] . "=#element_id#", "list_sections" => $APPLICATION->GetCurPage() . "?mode=edit" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["section_id"] . "=#section_id#", "bizproc_log" => $APPLICATION->GetCurPage() . "?mode=bp" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["document_state_id"] . "=#document_state_id#", "bizproc_task" => $APPLICATION->GetCurPage() . "?mode=bp&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["task_id"] . "=#task_id#", "bizproc_workflow_start" => $APPLICATION->GetCurPage() . "?mode=bp" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["section_id"] . "=#section_id#" . "&" . $arVariableAliases["element_id"] . "=#element_id#", "bizproc_workflow_delete" => $APPLICATION->GetCurPage() . "?mode=bp" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["section_id"] . "=#section_id#" . "&" . $arVariableAliases["element_id"] . "=#element_id#", "bizproc_workflow_admin" => $APPLICATION->GetCurPage() . "?mode=bp" . "&" . $arVariableAliases["list_id"] . "=#list_id#", "bizproc_workflow_edit" => $APPLICATION->GetCurPage() . "?mode=bp" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["ID"] . "=#ID#", "bizproc_workflow_vars" => $APPLICATION->GetCurPage() . "?mode=bp_vars" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["ID"] . "=#ID#", "bizproc_workflow_constants" => $APPLICATION->GetCurPage() . "?mode=bp_constants" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["ID"] . "=#ID#", "list_file" => $APPLICATION->GetCurPage() . "?mode=view" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["section_id"] . "=#section_id#" . "&" . $arVariableAliases["element_id"] . "=#element_id#" . "&" . $arVariableAliases["field_id"] . "=#field_id#" . "&" . $arVariableAliases["file_id"] . "=#file_id#", "list" => $APPLICATION->GetCurPage() . "?mode=view" . "&" . $arVariableAliases["list_id"] . "=#list_id#" . "&" . $arVariableAliases["section_id"] . "=#section_id#", "lists" => $APPLICATION->GetCurPage()), "VARIABLES" => $arVariables, "ALIASES" => $arVariableAliases);
    if ($processes) {
        $arResult["URL_TEMPLATES"]["catalog_processes"] = $APPLICATION->GetCurPage() . "?mode=catalog";
    }
}
$p = strpos($arResult["URL_TEMPLATES"]["bizproc_workflow_delete"], "?");
if ($p === false) {
    $ch = "?";
} else {
    $ch = "&";
}
$arResult["URL_TEMPLATES"]["bizproc_workflow_delete"] .= $ch . "action=del_bizproc";
if (isset($arVariables["document_state_id"]) && !isset($arVariables["element_id"]) && CModule::IncludeModule("bizproc")) {
    $arWorkflowState = CBPStateService::GetWorkflowState($arVariables["document_state_id"]);
    if (is_array($arWorkflowState) && is_array($arWorkflowState["DOCUMENT_ID"])) {
        list(, , $arResult["VARIABLES"]["element_id"]) = CBPHelper::ParseDocumentId($arWorkflowState["DOCUMENT_ID"]);
    }
}
$this->IncludeComponentTemplate($componentPage);