При обмене заказов из Битрикс в 1С посмотреть order.xml

Разработка
Бывает необходимость, когда требуется проверить какие данные передаются из Битрикс в 1Ску. Можно воспользоваться следующим кодом. Его достаточно разместить на странице /test/ например, и сможете проверить передаваемые данные из Битрикс в 1С

<?php
define("NO_AGENT_CHECK", true);
define("NO_KEEP_STATISTIC", true);
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
if (!$GLOBALS['USER']->IsAdmin()) {
    die("Доступно только для администратора.");
}
CModule::IncludeModule('sale');
$arErrors = array();
if (isset($_REQUEST['ORDER_ID']) || isset($_REQUEST['ORDER_ID_TEXT'])) {
    $nOrder = ((int)$_REQUEST['ORDER_ID_TEXT'] > 0 ? (int)$_REQUEST['ORDER_ID_TEXT'] : (int)$_REQUEST['ORDER_ID']);
    if ($nOrder && CSaleOrder::GetByID($nOrder)) {
        ob_end_clean();
        header('Content-Type: text/html; charset=utf-8');
        header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
        header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
        header('Cache-Control: no-store, no-cache, must-revalidate');
        header('Cache-Control: post-check=0, pre-check=0', false);
        header('Pragma: no-cache');
        header('Content-transfer-encoding: binary');
        header('Content-Disposition: attachment; filename=order-'.$nOrder.'.xml');
        header('Content-Type: application/x-unknown');
        ob_start();
        CSaleExport::ExportOrders2Xml(array('ID' => $nOrder));
        $sXml = ob_get_clean();
        $sXml = strtr($sXml, array('encoding="windows-1251"' => 'encoding="utf-8"'));
        echo $sXml;
        exit();
    } else {
        $arErrors[] = "Заказ №{$nOrder} не найден.";
    }
}
$arOrdersID = array();
$dbOrders = CSaleOrder::GetList(
    array("ID" => "DESC"),
    array(),
    false,
    array('nTopCount' => 200),
    array('ID', 'DATE_INSERT')
);
while ($arOrder = $dbOrders->Fetch()) {
    $arOrdersID[] = $arOrder;
}
?>
<!DO CTYPE html>
<html>
<head>
    <title>Просмотр XML выгрузки для заказа</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style>
        html, body {
            position: relative;
            height: 100%;
        }
        body {
            background: #f1f1f1;
            padding: 0;
            margin: 0
        }
        .content-table {
            position: relative;
            width: 100%;
            height: 100%;
        }
        .content-cell {
            position: relative;
            text-align: center;
            vertical-align: middle;
        }
        .center-content {
            position: relative;
            box-shadow: 0 0 2px #555;
            padding: 20px;
            border-radius: 4px;
            background: #fff;
            display: inline-block;
            text-align: left;
        }
    </style>
</head>
<body>
<table class="content-table">
    <tr>
        <td class="content-cell">
            <div class="center-content">
                <? //echo '<pre>'.var_export($_REQUEST, 1).'</pre>';?>
                <form action="" method="post" style="line-height: 24px;">
                    Форма генерирует XML файл заказа, такой же как при экспорте
                    <br/>заказов с сайта в 1C, но в кодировке utf-8 для просмотре в браузере
                    <br/><br/>
                    <?
                    if ($arErrors) {
                        // Ошибки
                        echo implode('<br />', $arErrors).'<br />';
                    }
                    ?>
                    Выберите из списка (200 последних ID):
                    <select name="ORDER_ID" style="cursor: pointer;">
                        <option value="">Выберите номер заказа</option>
                        <?
                        foreach ($arOrdersID as $arOrder) {
                            echo '<option value="'.$arOrder['ID'].'">'.$arOrder['ID'].' ('.$arOrder['DATE_INSERT'].')</option>';
                        }
                        ?>
                    </select>
                    <br/>Или введите номер заказа вручную: <input type="text" name="ORDER_ID_TEXT" value=""/>
                    <br/>
                    <button type="submit" name="SUBMIT" value="Y" style="cursor: pointer;">Сгенерировать XML</button>
                    <br/><br/>* Полученный XML файл можно открыть в Google Chrome,
                    <br/>файл будет открыт с XML форматированием.
                </form>
            </div>
        </td>
    </tr>
</table>
</body>
</html>


Похожие статьи

Сергей Эсауленко
Сергей Эсауленко

Руководитель

01.10.2025
Разработка
Как правильно дорабатывать продукты Аспро, чтобы они оставались обновляемыми
Сергей Эсауленко
Сергей Эсауленко

Руководитель

07.12.2023
Разработка
Автоматические перенаправление со штатной системы оплат Битрикса
Сергей Эсауленко
Сергей Эсауленко

Руководитель

02.11.2023
Разработка
Переопределить единицу измерения Битрикс в момент обмена с 1С
Сергей Эсауленко
Сергей Эсауленко

Руководитель

08.09.2023
Разработка
Обмен с 1С по http когда сайт работает по https
Сергей Эсауленко
Сергей Эсауленко

Руководитель

20.06.2023
Разработка
Преобразователь свойства CML2_TRAITS (из 1С) в 1С-Битрикс