Не работает обмен клиентами 1C битрикс и 1С

Рейтинг: 0Ответов: 0Опубликовано: 08.08.2023

После установки обновлений на сайт 1С Битрикс и переходе с версии 7.2.1 на 7.4.33 перестал работать обмен с 1С. Не передаются клиенты, в логах выбивает ошибки:

Ответ сервера: 
<pre>[Error] 
Call to a member function setField() on null (0)
../public_html/local/modules/scalable/classes/general/scalable_sale_order_loader.php:2196
#0: CScalableSaleOrderLoader::finishYesterdayOrders()
    ../public_html/local/modules/scalable/classes/general/scalable_sale_order_loader.php:2168
#1: CScalableSaleOrderLoader-&gt;elementHandler(string, array)
    
#2: call_user_func_array(array, array)
    ../public_html/bitrix/modules/main/classes/general/xml.php:1188
#3: CXMLFileStream-&gt;startElement(string, string)
    ../public_html/bitrix/modules/main/classes/general/xml.php:1021
#4: CXMLFileStream-&gt;findNext()
    ../public_html/local/components/scalable/sale.export.1c/component.php:556
#5: include(string)
    ../public_html/bitrix/modules/main/classes/general/component.php:607
#6: CBitrixComponent-&gt;__includeComponent()
    ../public_html/bitrix/modules/main/classes/general/component.php:684
#7: CBitrixComponent-&gt;includeComponent(string, array, NULL, boolean)
    ../public_html/bitrix/modules/main/classes/general/main.php:1072
#8: CAllMain-&gt;IncludeComponent(string, string, array)
    ../public_html/bitrix/modules/scalable/admin/1c_exchange_scalable.php:29
#9: require_once(string)
    ../public_html/bitrix/admin/1c_exchange_scalable.php:3
----------

Код с файла scalable_sale_order_loader.php:2196

$r = $order->setField('STATUS_ID', 'F');

Содержимое файла и функции

 function elementHandler($path, $attr)
    {
        $val = $attr[GetMessage("SALE_EXPORT_FORM_SUMM")];
        if(strlen($val) > 0)
        {
            if(preg_match("#".GetMessage("SALE_EXPORT_FORM_CRD")."=(.);{0,1}#", $val, $match))
            {
                $this->sdp = $match[1];
            }
        }

        self::setVersionSchema($attr[GetMessage("CC_BSC1_COM_INFO_VARSION")]);
        $this->finishYesterdayOrders(); /*Errore 2168 строка //Scalable systems все старые согласованные заказы помечаем как выполненные*/
        
    }
    
    static protected function loadFromDb(array $filter)
    {
        return Internals\OrderTable::getList($filter);
    }
    
    public static function finishYesterdayOrders()
    {

        CModule::IncludeModule('sale');

        $todayMidnight = new Bitrix\Main\Type\Date();
        $arFilter = array(
            'filter' => array(
                array(
                    '@STATUS_ID' => array('P'),
                    '<DATE_UPDATE' => $todayMidnight //все согласованные заказы, редактировавшиеся последний раз до полуночи, превращаются в выполненые.
                ),
            ),
            'select' => array('ID')
        );
        $listDB = self::loadFromDb($arFilter);
        while  ($orderID = $listDB->fetch())
        {
            $order = \Bitrix\Sale\Order::load($orderID);
            $r = $order->setField('STATUS_ID', 'F');
            if ($r->isSuccess())
            {
                $r = $order->save();
            }
        }

        $arFilter = array(
            'filter' => array(
                array(
                    '@STATUS_ID' => array('N'),
                    '<DATE_UPDATE' => $todayMidnight //все нетронутые заказы, редактировавшиеся последний раз до полуночи, очищаются.
                ),
            ),
            'select' => array('ID')
        );
        $listDB = self::loadFromDb($arFilter);
        while  ($orderID = $listDB->fetch())
        {
            $order = \Bitrix\Sale\Order::load($orderID);
            $r = $order->setField('STATUS_ID', 'C');
            if ($r->isSuccess())
            {
                $r = $order->save();
            }
        }

        return '$this->finishYesterdayOrders();';
    }

Помогите пожалуйста решить проблему, не могу найти решение, что не нравится обмену.

Ответы

Ответов пока нет.