Цитата |
---|
Виталий Черепанов написал: обратиться к програмистам! и написать в правильную ветку форума. |
31.03.2020 22:59:24
|
|||
|
31.03.2020 22:02:53
Доброго времени суток!
По ссылке, выбираем любое значение в умном фильтре, получаем полный зависон (режим аджакс и т.п. не помогает) Как можно решить? |
|
|
26.03.2020 17:33:53
Скину код, может кому нужен будет для выгрузки заказа, по сути это недоAPI с 1С 7.7 <?php \Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderSaved', 'saleCSVExport' ); function saleCSVExport(\Bitrix\Main\Event $event) { $parameters = $event->getParameters(); $order = $parameters['ENTITY']; if (!$order instanceof \Bitrix\Sale\Order) { return new \Bitrix\Main\EventResult( \Bitrix\Main\EventResult::ERROR, new \Bitrix\Sale\ResultError('Неверный объект заказа', 'SALE_EVENT_WRONG_ORDER'), 'sale' ); } AddMessage2Log($order->getField("STATUS_ID"), "sale"); if($order->getField("STATUS_ID") == "P" && !$order->isCanceled() && !$order->isShipped() ) { $arOrderArray = array(); if (\Bitrix\Main\Loader::includeModule("sale")) { $arOrderArray["ID"]= $order->getId(); header("content-type:application/csv;charset=UTF-8"); header("Pragma: no-cache"); header("Expires: 0"); $file = fopen($_SERVER['DOCUMENT_ROOT'].'/upload/1C/order'.$arOrderArray["ID"].'.csv', 'w'); $table_head = array("ID","SUM","USER_ID","USER_NAME","EMAIL","ADDRESS","PHONE","COMMENT","PAYMENT","SHIPMENT","STORE_ID","PRODUCT_ID","PRODUCT_NAME","PRODUCT_QUANTITY","PRODUCT_PRICE"); fputcsv($file, $table_head, ";"); $arOrderArray["SUM"] = $order->getPrice(); $arOrderArray["USER_ID"] = $order->getField('USER_ID'); $propertyCollection = $order->getPropertyCollection(); if(!empty($propertyCollection->getPayerName())) { $arOrderArray["USER_NAME"] = $propertyCollection->getPayerName()->getValue(); } else { $arOrderArray["USER_NAME"] = 0; } if(!empty($propertyCollection->getUserEmail())) { $arOrderArray["EMAIL"] = $propertyCollection->getUserEmail()->getValue(); } else { $arOrderArray["EMAIL"] = 0; } if(!empty($propertyCollection->getAddress())) { $arOrderArray["ADDRESS"] = $propertyCollection->getAddress()->getValue(); } else { $arOrderArray["ADDRESS"] = 0; } if(!empty($propertyCollection->getPhone())) { $arOrderArray["PHONE"] = $propertyCollection->getPhone()->getValue(); } else { $arOrderArray["PHONE"] = 0; } $comment = $order->getField('USER_DESCRIPTION'); $arOrderArray["COMMENT"] = $subcats= str_replace(';',' ',$comment); if(empty($arOrderArray["COMMENT"])) $arOrderArray["COMMENT"] = 0; $paymentCollection = $order->getPaymentCollection(); $psArray = array(); foreach ($paymentCollection as $payment) { $psArray[] = $payment->getPaymentSystemName(); } $arOrderArray["PAYMENT"] = implode(" ", $psArray); $deliveryCollection = $order->getShipmentCollection(); if(!empty($deliveryCollection->current())) { $arOrderArray["SHIPMENT"] = $deliveryCollection->current()->getField('DELIVERY_NAME'); $storeID = $deliveryCollection->current()->getStoreId(); if(!empty($storeID)) { $storeResult = CCatalogStore::GetList( array('ID' => 'ASC'), array('ACTIVE' => 'Y','ID'=>$storeID), false, false, array("ID","CODE") ); if($storeArray = $storeResult->GetNext()) $storeCode = $storeArray["CODE"]; $arOrderArray["STORE_ID"] = $storeCode; } else { $arOrderArray["STORE_ID"] = 0; } } $basket = $order->getBasket(); foreach ($basket as $basketItem) { $arProdArray = array(); //$arProdArray["PRODUCT_ID"] = $basketItem->getProductId(); if (\Bitrix\Main\Loader::includeModule("iblock")) { $arSelect = Array("ID", "IBLOCK_ID", "NAME","PROPERTY_*"); $arFilter = Array("ID"=> $basketItem->getProductId(), "ACTIVE"=>"Y"); $prodRes = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect); $arProdArray["PRODUCT_NAME"] = []; while($ob = $prodRes->GetNextElement()){ $arProps = $ob->GetProperties(); $arProdArray["ARTICLE"] = $arProps["CML2_ARTICLE"]["VALUE"]; $arProdArray["PRODUCT_NAME"][] = $ob->getFields()['NAME']; } $arProdArray["PRODUCT_NAME"] = implode(', ', $arProdArray["PRODUCT_NAME"]); } $arProdArray["PRODUCT_QUANTITY"] = $basketItem->getQuantity(); $arProdArray["PRODUCT_PRICE"] = $basketItem->getPrice(); $arRow = array_merge($arOrderArray, $arProdArray); fputcsv($file, $arRow, ";"); //AddMessage2Log($arRow, "sale"); } fclose($file); } } } if (file_exists($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/agents.php")) require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/php_interface/include/agents.php"); ?> |
|||||||||
|