%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/admin/ |
| Current File : //home/bitrix/www/bitrix/modules/sale/admin/order_export.php |
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
$saleModulePermissions = $APPLICATION->GetGroupRight("sale");
if ($saleModulePermissions == "D")
$APPLICATION->AuthForm(GetMessage("ACCESS_DENIED"));
IncludeModuleLangFile(__FILE__);
global $USER;
$intUserID = $USER->getId();
$arAvailableExports = array(
// "excel" => "excel.php",
"csv" => "csv.php",
"commerceml" => "commerceml.php",
"commerceml2" => "commerceml2.php",
);
$strPath2Export = BX_PERSONAL_ROOT."/php_interface/include/sale_export/";
$strPath2Export1 = "/bitrix/modules/sale/export/";
CheckDirPath($_SERVER["DOCUMENT_ROOT"].$strPath2Export);
if ($handle = opendir($_SERVER["DOCUMENT_ROOT"].$strPath2Export))
{
while (($file = readdir($handle)) !== false)
{
if ($file == "." || $file == "..")
continue;
if (is_file($_SERVER["DOCUMENT_ROOT"].$strPath2Export.$file) && substr($file, strlen($file)-4)==".php")
{
$export_name = substr($file, 0, strlen($file) - 4);
$arAvailableExports[$export_name] = $file;
}
}
}
closedir($handle);
$errorMessage = "";
if (CModule::IncludeModule("sale"))
{
$EXPORT_FORMAT = Trim($EXPORT_FORMAT);
if (strlen($EXPORT_FORMAT) > 0)
{
if (array_key_exists($EXPORT_FORMAT, $arAvailableExports))
{
$exportFilePath = "";
if (file_exists($_SERVER["DOCUMENT_ROOT"].$strPath2Export.$arAvailableExports[$EXPORT_FORMAT])
&& is_file($_SERVER["DOCUMENT_ROOT"].$strPath2Export.$arAvailableExports[$EXPORT_FORMAT]))
$exportFilePath = $_SERVER["DOCUMENT_ROOT"].$strPath2Export.$arAvailableExports[$EXPORT_FORMAT];
elseif (file_exists($_SERVER["DOCUMENT_ROOT"].$strPath2Export1.$arAvailableExports[$EXPORT_FORMAT])
&& is_file($_SERVER["DOCUMENT_ROOT"].$strPath2Export1.$arAvailableExports[$EXPORT_FORMAT]))
$exportFilePath = $_SERVER["DOCUMENT_ROOT"].$strPath2Export1.$arAvailableExports[$EXPORT_FORMAT];
if (StrLen($exportFilePath) > 0)
{
@set_time_limit(50000);
$runtimeFields = array();
$arAccessibleSites = array();
$dbAccessibleSites = CSaleGroupAccessToSite::GetList(
array(),
array("GROUP_ID" => $GLOBALS["USER"]->GetUserGroupArray()),
false,
false,
array("SITE_ID")
);
while ($arAccessibleSite = $dbAccessibleSites->Fetch())
{
if (!in_array($arAccessibleSite["SITE_ID"], $arAccessibleSites))
$arAccessibleSites[] = $arAccessibleSite["SITE_ID"];
}
$filter_lang = Trim($filter_lang);
if (strlen($filter_lang) > 0)
{
if (!in_array($filter_lang, $arAccessibleSites) && $saleModulePermissions < "W")
$filter_lang = "";
}
$arFilter = array();
$arOrderProps = array();
$arOrderPropsCode = array();
$dbProps = \Bitrix\Sale\Internals\OrderPropsTable::getList(array(
'order' => array("PERSON_TYPE_ID" => "ASC", "SORT" => "ASC"),
'select' => array("ID", "NAME", "PERSON_TYPE_NAME" => "PERSON_TYPE.NAME", "PERSON_TYPE_ID", "SORT", "IS_FILTERED", "TYPE", "CODE", "SETTINGS"),
));
while ($arProps = $dbProps->fetch())
{
$key = "";
if(strlen($arProps["CODE"]) > 0)
{
$key = $arProps["CODE"];
if(empty($arOrderPropsCode[$key]))
$arOrderPropsCode[$key] = $arProps;
}
else
{
$key = $arProps["ID"];
$arOrderProps[IntVal($key)] = $arProps;
}
if($key)
{
if($arProps["IS_FILTERED"] == "Y" && $arProps["TYPE"] != "MULTISELECT" && $arProps["TYPE"] != "FILE")
$arFilterFields[] = "filter_prop_".$key;
}
}
if (isset($OID) && is_array($OID) && count($OID) > 0)
$arFilter["ID"] = $OID;
elseif (isset($OID) && IntVal($OID) > 0)
$arFilter["ID"] = IntVal($OID);
if(IntVal($filter_id_from)>0) $arFilter[">=ID"] = IntVal($filter_id_from);
if(IntVal($filter_id_to)>0) $arFilter["<=ID"] = IntVal($filter_id_to);
if(strlen($filter_date_from)>0) $arFilter[">=DATE_INSERT"] = trim($filter_date_from);
if(strlen($filter_date_to)>0)
{
if($arDate = ParseDateTime($filter_date_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if(StrLen($filter_date_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_date_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arFilter["<=DATE_INSERT"] = $filter_date_to;
}
else
{
$filter_date_to = "";
}
}
if(strlen($filter_date_update_from)>0)
{
$arFilter[">=DATE_UPDATE"] = trim($filter_date_update_from);
}
elseif($set_filter!="Y" && $del_filter != "Y")
{
$filter_date_update_from_DAYS_TO_BACK = \Bitrix\Main\Config\Option::get("sale", "order_list_date", 30);
$filter_date_update_from = GetTime(time()-86400 * \Bitrix\Main\Config\Option::get("sale", "order_list_date", 30));
$arFilter[">=DATE_UPDATE"] = $filter_date_update_from;
}
if(strlen($filter_date_update_to)>0)
{
if($arDate = ParseDateTime($filter_date_update_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if(StrLen($filter_date_update_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_date_update_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arFilter["<=DATE_UPDATE"] = $filter_date_update_to;
}
else
{
$filter_date_update_to = "";
}
}
if(strlen($filter_date_paid_from)>0) $arFilter[">=DATE_PAYED"] = trim($filter_date_paid_from);
if(strlen($filter_date_paid_to)>0)
{
if($arDate = ParseDateTime($filter_date_paid_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if(StrLen($filter_date_paid_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_date_paid_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arFilter["<=DATE_PAYED"] = $filter_date_paid_to;
}
else
{
$filter_date_paid_to = "";
}
}
if(strlen($filter_date_allow_delivery_from)>0) $arFilter[">=DATE_ALLOW_DELIVERY"] = trim($filter_date_allow_delivery_from);
if(strlen($filter_date_allow_delivery_to)>0)
{
if($arDate = ParseDateTime($filter_date_allow_delivery_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if(StrLen($filter_date_allow_delivery_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_date_allow_delivery_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arFilter["<=DATE_ALLOW_DELIVERY"] = $filter_date_allow_delivery_to;
}
else
{
$filter_date_allow_delivery_to = "";
}
}
if(strlen($filter_lang)>0 && $filter_lang!="NOT_REF") $arFilter["=LID"] = trim($filter_lang);
if(strlen($filter_currency)>0) $arFilter["CURRENCY"] = trim($filter_currency);
if(isset($filter_status) && !is_array($filter_status) && strlen($filter_status) > 0)
$filter_status = array($filter_status);
if(isset($filter_status) && is_array($filter_status) && count($filter_status) > 0)
{
$countFilter = count($filter_status);
for ($i = 0; $i < $countFilter; $i++)
{
$filter_status[$i] = trim($filter_status[$i]);
if(strlen($filter_status[$i]) > 0)
$arFilter["=STATUS_ID"][] = $filter_status[$i];
}
}
if (strlen($filter_by_recommendation)>0) $arFilter["=BY_RECOMMENDATION"] = trim($filter_by_recommendation);
if(strlen($filter_date_status_from)>0) $arFilter[">=DATE_STATUS"] = trim($filter_date_status_from);
if(strlen($filter_date_status_to)>0)
{
if($arDate = ParseDateTime($filter_date_status_to, CSite::GetDateFormat("FULL", SITE_ID)))
{
if(StrLen($filter_date_status_to) < 11)
{
$arDate["HH"] = 23;
$arDate["MI"] = 59;
$arDate["SS"] = 59;
}
$filter_date_status_to = date($DB->DateFormatToPHP(CSite::GetDateFormat("FULL", SITE_ID)), mktime($arDate["HH"], $arDate["MI"], $arDate["SS"], $arDate["MM"], $arDate["DD"], $arDate["YYYY"]));
$arFilter["<=DATE_STATUS"] = $filter_date_status_to;
}
else
{
$filter_date_status_to = "";
}
}
if(strlen($filter_payed)>0) $arFilter["=PAYED"] = trim($filter_payed);
if(strlen($filter_canceled)>0) $arFilter["=CANCELED"] = trim($filter_canceled);
if(strlen($filter_deducted)>0) $arFilter["=DEDUCTED"] = trim($filter_deducted);
if(strlen($filter_allow_delivery)>0) $arFilter["=ALLOW_DELIVERY"] = trim($filter_allow_delivery);
if(strlen($filter_marked)>0) $arFilter["=MARKED"] = trim($filter_marked);
if(strlen($filter_buyer)>0) $arFilter["%BUYER"] = trim($filter_buyer);
if(strlen($filter_user_login)>0) $arFilter["USER.LOGIN"] = trim($filter_user_login);
if(strlen($filter_user_email)>0) $arFilter["USER.EMAIL"] = trim($filter_user_email);
if(IntVal($filter_user_id)>0) $arFilter["=USER_ID"] = IntVal($filter_user_id);
if(is_array($filter_group_id) && count($filter_group_id) > 0)
{
foreach($filter_group_id as $v)
{
if(IntVal($v) > 0)
$arFilter["USER_GROUP.GROUP_ID"][] = $v;
}
}
if(IntVal($filter_affiliate_id)>0) $arFilter["AFFILIATE_ID"] = IntVal($filter_affiliate_id);
if(strlen($filter_discount_coupon)>0) $arFilter["=ORDER_COUPONS.COUPON"] = trim($filter_discount_coupon);
if(floatval($filter_price_from)>0) $arFilter[">=PRICE"] = floatval($filter_price_from);
if(floatval($filter_price_to)>0) $arFilter["<PRICE"] = floatval($filter_price_to);
if(strlen($filter_xml_id)>0) $arFilter["%XML_ID"] = trim($filter_xml_id);
if(strlen($filter_tracking_number)>0) $arFilter["%SHIPMENT.TRACKING_NUMBER"] = trim($filter_tracking_number);
if(isset($filter_universal) && strlen($filter_universal) > 0)
$arFilter["NAME_SEARCH"] = trim($filter_universal);
if(strlen($filter_account_number)>0) $arFilter["ACCOUNT_NUMBER"] = trim($filter_account_number);
if(strlen($filter_sum_paid) > 0)
{
if($filter_sum_paid == "Y")
$arFilter[">SUM_PAID"] = 0;
else
$arFilter["<=SUM_PAID"] = 0;
}
if(isset($filter_person_type) && is_array($filter_person_type) && count($filter_person_type) > 0)
{
$countFilterPerson = count($filter_person_type);
for ($i = 0; $i < $countFilterPerson; $i++)
{
if(IntVal($filter_person_type[$i]) > 0)
$arFilter["=PERSON_TYPE_ID"][] = $filter_person_type[$i];
}
}
if(isset($filter_source) && $filter_source != 0)
{
if($filter_source == -1)
$arFilter["=SOURCE.TRADING_PLATFORM_ID"] = "";
else
$arFilter["=SOURCE.TRADING_PLATFORM_ID"] = $filter_source;
}
if(!empty($filter_pay_system) && is_array($filter_pay_system))
{
$countFilterPay = count($filter_pay_system);
$whereExpression = "";
for ($i = 0; $i < $countFilterPay; $i++)
{
if(intval($filter_pay_system[$i]) <= 0)
continue;
if($whereExpression == "")
$whereExpression .= "(";
else
$whereExpression .= " OR ";
$whereExpression .= "PAY_SYSTEM_ID = ".intval($filter_pay_system[$i]);
}
if(strlen($whereExpression) > 0)
{
$whereExpression .= ")";
$runtimeFields["REQUIRED_PS_PRESENTED"] = array(
'data_type' => 'boolean',
'expression' => array(
'CASE WHEN EXISTS (SELECT ID FROM b_sale_order_payment WHERE ORDER_ID = %s AND '.$whereExpression.') THEN 1 ELSE 0 END',
'ID'
)
);
$arFilter["=REQUIRED_PS_PRESENTED"] = 1;
}
}
if(!empty($filter_tracking_number) && strlen($filter_tracking_number) > 0)
{
$runtimeFields["REQUIRED_PS_PRESENTED"] = array(
'data_type' => 'boolean',
'expression' => array(
'CASE WHEN EXISTS (SELECT ID FROM b_sale_order_payment WHERE ORDER_ID = %s AND '.$whereExpression.') THEN 1 ELSE 0 END',
'ID'
)
);
}
if(!empty($filter_delivery_service) && is_array($filter_delivery_service))
{
$countFilterDeliveryService = count($filter_delivery_service);
$whereExpression = "";
for ($i = 0; $i < $countFilterDeliveryService; $i++)
{
if(intval($filter_delivery_service[$i]) <= 0)
continue;
if($whereExpression == "")
$whereExpression .= "(";
else
$whereExpression .= " OR ";
$whereExpression .= "DELIVERY_ID = ".intval($filter_delivery_service[$i]);
}
if(strval($whereExpression) != "")
{
$whereExpression .= ")";
$runtimeFields["REQUIRED_DLV_PRESENTED"] = array(
'data_type' => 'boolean',
'expression' => array(
'CASE WHEN EXISTS (SELECT ID FROM b_sale_order_delivery WHERE ORDER_ID = %s AND SYSTEM="N" AND '.$whereExpression.') THEN 1 ELSE 0 END',
'ID'
)
);
$arFilter["=REQUIRED_DLV_PRESENTED"] = 1;
}
}
if(!empty($filter_product_id) || !empty($filter_product_xml_id))
{
$whereExpression = "";
if (intval($filter_product_id) > 0)
{
$whereExpression .= "(PRODUCT_ID = ".intval($filter_product_id);
}
if (strval(trim($filter_product_xml_id)) != "")
{
if($whereExpression == "")
$whereExpression .= "(";
else
$whereExpression .= " AND ";
/** @var \Bitrix\Main\DB\Connection $connection */
$connection = \Bitrix\Main\Application::getConnection();
/** @var \Bitrix\Main\DB\SqlHelper $sqlHelper */
$sqlHelper = $connection->getSqlHelper();
$whereExpression .= "PRODUCT_XML_ID = '".$sqlHelper->forSql($filter_product_xml_id)."'";
}
if(strval($whereExpression) != "")
{
$whereExpression .= ")";
$runtimeFields["REQUIRED_PRODUCT_PRESENTED"] = array(
'data_type' => 'boolean',
'expression' => array(
'CASE WHEN EXISTS (SELECT ID FROM b_sale_basket WHERE ORDER_ID = %s AND '.$whereExpression.') THEN 1 ELSE 0 END',
'ID'
)
);
$arFilter["=REQUIRED_PRODUCT_PRESENTED"] = 1;
}
}
$filterOrderPropValue = array();
$filterOrderProps = array();
foreach ($arOrderProps as $key => $value)
{
if($value["IS_FILTERED"] == "Y" && $value["TYPE"] != "MULTIPLE")
{
$tmp = trim(${"filter_prop_".$key});
if(StrLen($tmp) > 0)
{
if($value["TYPE"]=="STRING" && !preg_match("/^\d+$/", $tmp))
$filterName = "%PROPERTY_VALUE_".$key;
else
$filterName = "PROPERTY_VALUE_".$key;
$filterOrderProps[$filterName] = $tmp;
$filterOrderPropValue[$key] = $tmp;
}
}
}
foreach ($arOrderPropsCode as $key => $value)
{
if($value["IS_FILTERED"] == "Y" && $value["TYPE"] != "MULTIPLE")
{
$tmp = trim(${"filter_prop_".$key});
if(StrLen($tmp) > 0)
{
if($value["TYPE"]=="STRING" && !preg_match("/^\d+$/", $tmp))
$filterName = "%PROPERTY_VAL_BY_CODE_".$key;
else
$filterName = "PROPERTY_VAL_BY_CODE_".$key;
$filterOrderProps[$filterName] = $tmp;
$filterOrderPropValue[$key] = $tmp;
}
}
}
if($saleModulePermissions < "W")
{
if(strlen($filter_lang) <= 0 && count($arAccessibleSites) > 0)
$arFilter["=LID"] = $arAccessibleSites;
}
$allowedStatusesView = \Bitrix\Sale\OrderStatus::getStatusesUserCanDoOperations($intUserID, array('view'));
if($saleModulePermissions < "W")
{
if(!$arFilter["=STATUS_ID"])
$arFilter["=STATUS_ID"] = array();
$intersected = array_intersect($arFilter["=STATUS_ID"], $allowedStatusesView);
if(!empty($arFilter["=STATUS_ID"]))
{
if(empty($intersected))
{
$arFilter[]["=STATUS_ID"] = $arFilter["=STATUS_ID"];
$arFilter[]["=STATUS_ID"] = $allowedStatusesView;
unset($arFilter["=STATUS_ID"], $arFilter["=STATUS_ID"]);
}
else
{
$arFilter["=STATUS_ID"] = $intersected;
}
}
else
{
$arFilter["=STATUS_ID"] = $allowedStatusesView;
}
}
if(isset($arFilter["NAME_SEARCH"]) && strlen($arFilter["NAME_SEARCH"]) > 0)
{
$nameSearch = $arFilter["NAME_SEARCH"];
unset($arFilter["NAME_SEARCH"]);
$arFilter[] = array(
"LOGIC" => "OR",
"%USER.LOGIN" => $nameSearch,
"%USER.NAME" => $nameSearch,
"%USER.LAST_NAME" => $nameSearch,
"%USER.SECOND_NAME" => $nameSearch,
"%USER.EMAIL" => $nameSearch,
);
}
$propIterator = 0;
foreach ($arOrderPropsCode as $key => $value)
{
if($value["IS_FILTERED"] != "Y" || $value["TYPE"] == "MULTIPLE")
continue;
if(
(isset($filterOrderProps["PROPERTY_VAL_BY_CODE_".$key]) && strlen($filterOrderProps["PROPERTY_VAL_BY_CODE_".$key]) > 0)
|| (isset($filterOrderProps["%PROPERTY_VAL_BY_CODE_".$key]) && strlen($filterOrderProps["%PROPERTY_VAL_BY_CODE_".$key]) > 0)
)
{
$propIterator++;
$runtimeFields['PROP_'.$propIterator] = array(
'data_type' => 'Bitrix\Sale\Internals\OrderPropsValueTable',
'reference' => array(
'ref.ORDER_ID' => 'this.ID',
),
'join_type' => 'inner'
);
$arFilter["=PROP_".$propIterator.".CODE"] = $key;
if (isset($filterOrderProps["%PROPERTY_VAL_BY_CODE_".$key]))
{
$arFilter["%PROP_".$propIterator.".VALUE"] = $filterOrderPropValue[$key];
}
else
{
$arFilter["PROP_".$propIterator.".VALUE"] = $filterOrderPropValue[$key];
}
}
}
foreach ($arOrderProps as $key => $value)
{
$propIterator++;
if($value["IS_FILTERED"] != "Y" || $value["TYPE"] == "MULTIPLE")
continue;
if(
(isset($filterOrderProps["PROPERTY_VALUE_".$key]) && strlen($filterOrderProps["PROPERTY_VALUE_".$key]) > 0)
|| (isset($filterOrderProps["%PROPERTY_VALUE_".$key]) && strlen($filterOrderProps["%PROPERTY_VALUE_".$key]) > 0)
)
{
$runtimeFields['PROP_'.$propIterator] = array(
'data_type' => 'Bitrix\Sale\Internals\OrderPropsValueTable',
'reference' => array(
'ref.ORDER_ID' => 'this.ID',
),
'join_type' => 'inner'
);
$arFilter["=PROP_".$propIterator.".ORDER_PROPS_ID"] = $key;
if (isset($filterOrderProps["%PROPERTY_VALUE_".$key]))
{
$arFilter["%PROP_".$propIterator.".VALUE"] = $filterOrderPropValue[$key];
}
else
{
$arFilter["PROP_".$propIterator.".VALUE"] = $filterOrderPropValue[$key];
}
}
}
$shownFieldsList = COption::GetOptionString("sale", "order_list_fields", "ID,USER,PAY_SYSTEM,PRICE,STATUS,PAYED,PS_STATUS,CANCELED,BASKET");
$arShownFieldsList = explode(",", $shownFieldsList);
$arShownFieldsParams = array();
$aliasFields = array();
$arSelectFields = array("PAYED");
$ind = -1;
$aliasFieldsList = \Bitrix\Sale\Compatible\OrderCompatibility::getAliasFields();
$alreadyUsedFields = \Bitrix\Sale\Order::getAllFields();
foreach ($aliasFieldsList as $fieldName => $fieldAlias)
{
if (!in_array($fieldName, $alreadyUsedFields))
{
$aliasFields[$fieldName] = $fieldAlias;
}
}
foreach ($GLOBALS["AVAILABLE_ORDER_FIELDS"] as $key => $value)
{
if (in_array($key, $arShownFieldsList))
{
$ind++;
$arShownFieldsParams[$ind] = $value;
$arShownFieldsParams[$ind]["KEY"] = $key;
$arFields_tmp = array();
if (strlen($value["SELECT"]) > 0)
$arFields_tmp = explode(",", $value["SELECT"]);
$arShownFieldsParams[$ind]["SHOW"] = $arFields_tmp;
for ($i = 0, $countFields = count($arFields_tmp); $i < $countFields; $i++)
{
$fieldName = $arFields_tmp[$i];
$findAlias = false;
if (array_key_exists($fieldName, $aliasFields))
{
$findAlias = true;
}
if ($findAlias && !array_key_exists($fieldName, $arSelectFields))
{
$arSelectFields[$fieldName] = $aliasFields[$fieldName];
}
elseif (!$findAlias && !in_array($fieldName, $arSelectFields))
{
$arSelectFields[] = $fieldName;
}
}
}
}
include($exportFilePath);
}
else
{
$errorMessage .= str_replace("#FILE#", $exportFilePath, GetMessage("SOE_NO_SCRIPT")).". ";
}
}
else
{
$errorMessage .= str_replace("#EXPORT_FORMAT#", $EXPORT_FORMAT, GetMessage("SOE_WRONG_FORMAT")).". ";
}
}
else
{
$errorMessage .= GetMessage("SOE_NO_FORMAT").". ";
}
}
else
{
$errorMessage .= GetMessage("SOE_NO_SALE").". ";
}
if (strlen($errorMessage) > 0)
{
$APPLICATION->SetTitle(GetMessage("SOE_EXPORT_ERROR"));
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_after.php");
CAdminMessage::ShowMessage($errorMessage);
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_before.php");
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_admin_after.php");
?>