protected function initElementList()
{
parent::initElementList();
// compatibility for old components
if ($this->isEnableCompatible() && empty($this->arResult['NAV_RESULT']))
{
$this->initNavString(\CIBlockElement::GetList(
array(),
array_merge($this->globalFilter, $this->filterFields + array('IBLOCK_ID' => $this->arParams['IBLOCK_ID'])),
if($arSection["FILTER"]){
$arrFilter = array(
$arrFilter, //добавляем глобальный фильтр в себя же, для того что бы работал пользовательский фильтр с нашими условиями
"LOGIC" => "AND",
array(
"LOGIC" => "OR",
array("%NAME" => $arSection["FILTER"]),
array("SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"]),
),
);
$arResult["VARIABLES"]["SECTION_ID"] = 0; // Выключаем передачу ID раздела
$arResult["VARIABLES"]["SECTION_CODE"] = '';
$arrFilter = array(
"LOGIC" => "OR",
array("%NAME" => $arSection["FILTER_MOD"]),
array("SECTION_CODE" => $arResult["VARIABLES"]["SECTION_CODE"])
public static function OnSaleBeforeStatusOrderChange(\Bitrix\Main\Event $event) {
/** @var \Bitrix\Sale\Order $order */
$order = $event->getParameter("ENTITY");
/** @var \Bitrix\Sale\Order $STATUS_ID */
$STATUS_ID = $order->getField("STATUS_ID");
/** @var $paymentCollection \Bitrix\Sale\PaymentCollection */
$paymentCollection = $order->getPaymentCollection();
$isPaid = $paymentCollection->isPaid();
if($STATUS_ID === 'PA' && $isPaid === true) {
$error = new \Bitrix\Main\Error("Заказ уже оплачен.");
$resultError = \Bitrix\Sale\ResultError::create($error);
return $event->addResult(
new \Bitrix\Main\EventResult(
\Bitrix\Main\EventResult::ERROR, $resultError, 'sale'
)
);
}
}
уже всё сделал спс