if($userIsAdmin && !empty($_REQUEST['element']) && $formSubmitted) // form submitted, handling it
	{
		$saveAsId = intval($_REQUEST['element']['ID']);

		global $DB;
		$redirectUrl = false;

		try
		{
			$DB->StartTransaction();

			if($saveAsId) // existed, updating
			{

				$res = Helper::update($saveAsId, $_REQUEST['element']);

				if($res['success']) // on successfull update ...
				{
					if($actionSave)
						$redirectUrl = $returnUrl ? $returnUrl : Helper::getListUrl(); // go to the page of just created item

					// $actionApply : do nothing
				}
			}
			else // new or copyed item
			{
				$res = Helper::add($_REQUEST['element']);
				if($res['success']) // on successfull add ...
				{
					if($actionSave)
 $lAdmin->InitFilter($arFilterFields);
 // order, select and filter for the list
 $listParams = Helper::proxyListRequest('list');
 #####################################
 #### ACTIONS
 #####################################
 global $DB;
 if ($lAdmin->EditAction() && $userIsAdmin) {
     foreach ($FIELDS as $id => $arFields) {
         $DB->StartTransaction();
         if (!$lAdmin->IsUpdated($id)) {
             // if there were no data change on this row - do nothing with it
             continue;
         }
         try {
             $res = Helper::update($id, $arFields);
             if (!empty($res['errors'])) {
                 foreach ($res['errors'] as &$error) {
                     $error = '  ' . $error;
                 }
                 unset($error);
                 throw new Main\SystemException(implode(',<br />', $res['errors']));
             }
         } catch (Main\SystemException $e) {
             // todo: do smth
             $lAdmin->AddUpdateError(Loc::getMessage('SALE_LOCATION_L_ITEM_SAVE_ERROR', array('#ITEM#' => $id)) . ": <br />" . $e->getMessage() . '<br />', $id);
             $DB->Rollback();
         }
         $DB->Commit();
     }
 }