<tr>
		<td colspan="2" align="center" class="heading">
			<?php 
echo Loc::getMessage('SALE_PSE_BIS_VAL_SETTINGS');
?>
		</td>
	</tr>
	<tr>
		<td colspan="2" id="paysystem-business-value-settings" style="padding-top: 10px">
			<?php 
if ($request->get('ACTION_FILE') !== null) {
    $data = PaySystem\Manager::getHandlerDescription($request->get('ACTION_FILE'));
    if ($id > 0) {
        $consumer = 'PAYSYSTEM_' . $id;
        try {
            BusinessValue::changeConsumer($consumer, $data);
        } catch (SystemException $e) {
            BusinessValue::addConsumer('PAYSYSTEM_' . $id, $data);
        }
    } else {
        $consumer = 'PAYSYSTEM_NEW';
        if ($data) {
            BusinessValue::addConsumer($consumer, $data);
        }
    }
    $businessValueControl->renderMap(array('CONSUMER_KEY' => $consumer));
} elseif ($id > 0) {
    $businessValueControl->renderMap(array('CONSUMER_KEY' => 'PAYSYSTEM_' . $id));
}
?>
		</td>
 function Add($fields)
 {
     if (\Bitrix\Main\Config\Option::get('main', '~sale_paysystem_converted') == 'Y') {
         if (!CSalePaySystemAction::CheckFields("ADD", $fields)) {
             return false;
         }
         if (isset($fields['ACTION_FILE'])) {
             $map = self::getOldToNewHandlersMap();
             if (isset($map[$fields['ACTION_FILE']])) {
                 $fields['ACTION_FILE'] = $map[$fields['ACTION_FILE']];
             }
         }
         $fields['PSA_NAME'] = $fields['NAME'];
         if (array_key_exists("LOGOTIP", $fields) && is_array($fields["LOGOTIP"])) {
             $fields["LOGOTIP"]["MODULE_ID"] = "sale";
         }
         CFile::SaveForDB($fields, "LOGOTIP", "sale/paysystem/logotip");
         if (isset($fields['PAY_SYSTEM_ID']) && $fields['PAY_SYSTEM_ID'] > 0) {
             $dbRes = PaySystemActionTable::getById($fields['PAY_SYSTEM_ID']);
             $data = $dbRes->fetch();
             if ($data['ACTION_FILE'] != '') {
                 $result = PaySystemActionTable::add($fields);
             } else {
                 $result = PaySystemActionTable::update($fields['PAY_SYSTEM_ID'], $fields);
             }
         } else {
             $result = PaySystemActionTable::add($fields);
         }
         if ($result->isSuccess()) {
             if ($fields['PARAMS']) {
                 $params = unserialize($fields['PARAMS']);
                 if (!isset($params['BX_PAY_SYSTEM_ID'])) {
                     $params['BX_PAY_SYSTEM_ID'] = array('TYPE' => '', 'VALUE' => $result->getId());
                     PaySystemActionTable::update($result->getId(), array('PARAMS' => serialize($params)));
                     $consumers = \Bitrix\Sale\BusinessValue::getConsumers();
                     if (!isset($consumers['PAYSYSTEM_' . $result->getId()])) {
                         \Bitrix\Sale\BusinessValue::addConsumer('PAYSYSTEM_' . $result->getId(), \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($fields['ACTION_FILE']));
                     } else {
                         \Bitrix\Sale\BusinessValue::changeConsumer('PAYSYSTEM_' . $result->getId(), \Bitrix\Sale\PaySystem\Manager::getHandlerDescription($fields['ACTION_FILE']));
                     }
                 }
                 $params = self::prepareParamsForBusVal($result->getId(), $fields);
                 foreach ($params as $item) {
                     \Bitrix\Sale\BusinessValue::setMapping($item['CODE'], $item['CONSUMER'], $item['PERSON_TYPE_ID'], $item['MAP']);
                 }
             }
             if (isset($fields['PERSON_TYPE_ID']) && $fields['PERSON_TYPE_ID'] > 0) {
                 $fields = array("SERVICE_ID" => $result->getId(), "SERVICE_TYPE" => \Bitrix\Sale\Services\PaySystem\Restrictions\Manager::SERVICE_TYPE_PAYMENT, "SORT" => 100, "PARAMS" => array('PERSON_TYPE_ID' => array($fields['PERSON_TYPE_ID'])));
                 \Bitrix\Sale\Services\PaySystem\Restrictions\PersonType::save($fields);
             }
             return $result->getId();
         }
         return false;
     } else {
         global $DB;
         $arFields = $fields;
         if (!CSalePaySystemAction::CheckFields("ADD", $arFields)) {
             return false;
         }
         if (array_key_exists("LOGOTIP", $arFields) && is_array($arFields["LOGOTIP"])) {
             $arFields["LOGOTIP"]["MODULE_ID"] = "sale";
         }
         CFile::SaveForDB($arFields, "LOGOTIP", "sale/paysystem/logotip");
         $arInsert = $DB->PrepareInsert("b_sale_pay_system_action", $arFields);
         $strSql = "INSERT INTO b_sale_pay_system_action(" . $arInsert[0] . ") " . "VALUES(" . $arInsert[1] . ")";
         $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__);
         $ID = IntVal($DB->LastID());
         return $ID;
     }
 }