Цитата |
---|
Игорь Долгополов написал: Используем такой скрипт для этих целей, загрузите файл на сервер, на странице скрипта выбираете нужный заказ и у вас скачивается xml, которая передается в 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();
echo strtr( $sXml , array ( 'encoding="windows-1251"' => 'encoding="utf-8"' ));
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 >
< ht ml >
< head >
< title > Просмотр XML выгрузки для заказа </ title >
< met a http-equiv = "Content-Type" content = "text/html; charset=utf-8" >
< st yle >
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>';?>
< fo rm 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 > |
|
Добрый день! Не срабатывает кнопка "Сгенерировать XML". В чем может быть причина?