} $arParams['PATH_TO_ROLE_EDIT'] = CrmCheckPath('PATH_TO_ROLE_EDIT', $arParams['PATH_TO_ROLE_EDIT'], $APPLICATION->GetCurPage()); $arParams['PATH_TO_ENTITY_LIST'] = CrmCheckPath('PATH_TO_ENTITY_LIST', $arParams['PATH_TO_ENTITY_LIST'], $APPLICATION->GetCurPage()); $arParams['ROLE_ID'] = (int) $arParams['ROLE_ID']; $bVarsFromForm = false; $arResult['PATH_TO_ROLE_EDIT'] = CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_ROLE_EDIT'], array('role_id' => $arParams['ROLE_ID'])); if ($_SERVER['REQUEST_METHOD'] == 'POST' && (isset($_POST['save']) || isset($_POST['apply'])) && check_bitrix_sessid()) { $bVarsFromForm = true; $arFields = array('NAME' => $_POST['NAME'], 'RELATION' => isset($_POST['ROLE_PERMS']) ? $_POST['ROLE_PERMS'] : array()); $CCrmRole = new CcrmRole(); if ($arParams['ROLE_ID'] > 0) { if (!$CCrmRole->Update($arParams['ROLE_ID'], $arFields)) { $arResult['ERROR_MESSAGE'] = $arFields['RESULT_MESSAGE']; } } else { $arParams['ROLE_ID'] = $CCrmRole->Add($arFields); if ($arParams['ROLE_ID'] === false) { $arResult['ERROR_MESSAGE'] = $arFields['RESULT_MESSAGE']; } } if (empty($arResult['ERROR_MESSAGE'])) { if (isset($_POST['apply'])) { LocalRedirect(CComponentEngine::MakePathFromTemplate($arParams['PATH_TO_ROLE_EDIT'], array('role_id' => $arParams['ROLE_ID']))); } else { LocalRedirect($arParams['PATH_TO_ENTITY_LIST']); } } else { ShowError($arResult['ERROR_MESSAGE']); } $arResult['ROLE'] = array('ID' => $arParams['ROLE_ID'], 'NAME' => $arFields['NAME']); $arResult['ROLE_PERMS'] = $arFields['RELATION'];