Про вариант от ТП ничего сказать не могу. Есть свой.
Если вы используете и стандартный обмен с сайтом, то логичнее дописать вызов на стандартной странице обмена /bitrix/modules/sale/admin/1c_exchange.php.
Она выглядит так:
[CODE]<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
?>
<?
if($type=="sale")
{
$APPLICATION->IncludeComponent("bitrix:sale.export.1c", "", Array(
"SITE_LIST" => COption::GetOptionString("sale", "1C_SALE_SITE_LIST", ""),
"EXPORT_PAYED_ORDERS" => COption::GetOptionString("sale", "1C_1C_EXPORT_PAYED_ORDERS", ""),
"EXPORT_ALLOW_DELIVERY_ORDERS" => COption::GetOptionString("sale", "1C_EXPORT_ALLOW_DELIVERY_ORDERS", ""),
"EXPORT_FINAL_ORDERS" => COption::GetOptionString("sale", "1C_EXPORT_FINAL_ORDERS", ""),
"FINAL_STATUS_ON_DELIVERY" => COption::GetOptionString("sale", "1C_FINAL_STATUS_ON_DELIVERY", "F"),
"REPLACE_CURRENCY" => COption::GetOptionString("sale", "1C_REPLACE_CURRENCY", ""),
"GROUP_PERMISSIONS" => explode(",", COption::GetOptionString("sale", "1C_SALE_GROUP_PERMISSIONS", "")),
"USE_ZIP" => COption::GetOptionString("sale", "1C_SALE_USE_ZIP", "Y"),
)
);
}
elseif($type=="catalog")
{
$APPLICATION->IncludeComponent("bitrix:catalog.import.1c", "", Array(
"IBLOCK_TYPE" => COption::GetOptionString("catalog", "1C_IBLOCK_TYPE", "-"),
"SITE_LIST" => array(COption::GetOptionString("catalog", "1C_SITE_LIST", "-")),
"INTERVAL" => COption::GetOptionString("catalog", "1C_INTERVAL", "-"),
"GROUP_PERMISSIONS" => explode(",", COption::GetOptionString("catalog", "1C_GROUP_PERMISSIONS", "")),
"GENERATE_PREVIEW" => COption::GetOptionString("catalog", "1C_GENERATE_PREVIEW", "Y"),
"PREVIEW_WIDTH" => COption::GetOptionString("catalog", "1C_PREVIEW_WIDTH", "100"),
"PREVIEW_HEIGHT" => COption::GetOptionString("catalog", "1C_PREVIEW_HEIGHT", "100"),
"DETAIL_RESIZE" => COption::GetOptionString("catalog", "1C_DETAIL_RESIZE", "Y"),
"DETAIL_WIDTH" => COption::GetOptionString("catalog", "1C_DETAIL_WIDTH", "300"),
"DETAIL_HEIGHT" => COption::GetOptionString("catalog", "1C_DETAIL_HEIGHT", "300"),
"ELEMENT_ACTION" => COption::GetOptionString("catalog", "1C_ELEMENT_ACTION", "D"),
"SECTION_ACTION" => COption::GetOptionString("catalog", "1C_SECTION_ACTION", "D"),
"FILE_SIZE_LIMIT" => COption::GetOptionString("catalog", "1C_FILE_SIZE_LIMIT", 200*1024),
"USE_CRC" => COption::GetOptionString("catalog", "1C_USE_CRC", "Y"),
"USE_ZIP" => COption::GetOptionString("catalog", "1C_USE_ZIP", "Y"),
"USE_OFFERS" => COption::GetOptionString("catalog", "1C_USE_OFFERS", "N"),
"USE_IBLOCK_TYPE_ID" => COption::GetOptionString("catalog", "1C_USE_IBLOCK_TYPE_ID", "N"),
)
);
}
else
{
$APPLICATION->RestartBuffer();
echo "failure\n";
echo "Unknown command type.";
}
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>[/CODE] код должен стать похож на что-то типа
[CODE]<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
?>
<?
if($type=="sale")
{
$APPLICATION->IncludeComponent("bitrix:sale.export.1c", "", Array(
"SITE_LIST" => COption::GetOptionString("sale", "1C_SALE_SITE_LIST", ""),
"EXPORT_PAYED_ORDERS" => COption::GetOptionString("sale", "1C_1C_EXPORT_PAYED_ORDERS", ""),
"EXPORT_ALLOW_DELIVERY_ORDERS" => COption::GetOptionString("sale", "1C_EXPORT_ALLOW_DELIVERY_ORDERS", ""),
"EXPORT_FINAL_ORDERS" => COption::GetOptionString("sale", "1C_EXPORT_FINAL_ORDERS", ""),
"FINAL_STATUS_ON_DELIVERY" => COption::GetOptionString("sale", "1C_FINAL_STATUS_ON_DELIVERY", "F"),
"REPLACE_CURRENCY" => COption::GetOptionString("sale", "1C_REPLACE_CURRENCY", ""),
"GROUP_PERMISSIONS" => explode(",", COption::GetOptionString("sale", "1C_SALE_GROUP_PERMISSIONS", "")),
"USE_ZIP" => COption::GetOptionString("sale", "1C_SALE_USE_ZIP", "Y"),
)
);
}
elseif($type=="catalog")
{
$APPLICATION->IncludeComponent("bitrix:catalog.import.1c", "", Array(
"IBLOCK_TYPE" => COption::GetOptionString("catalog", "1C_IBLOCK_TYPE", "-"),
"SITE_LIST" => array(COption::GetOptionString("catalog", "1C_SITE_LIST", "-")),
"INTERVAL" => COption::GetOptionString("catalog", "1C_INTERVAL", "-"),
"GROUP_PERMISSIONS" => explode(",", COption::GetOptionString("catalog", "1C_GROUP_PERMISSIONS", "")),
"GENERATE_PREVIEW" => COption::GetOptionString("catalog", "1C_GENERATE_PREVIEW", "Y"),
"PREVIEW_WIDTH" => COption::GetOptionString("catalog", "1C_PREVIEW_WIDTH", "100"),
"PREVIEW_HEIGHT" => COption::GetOptionString("catalog", "1C_PREVIEW_HEIGHT", "100"),
"DETAIL_RESIZE" => COption::GetOptionString("catalog", "1C_DETAIL_RESIZE", "Y"),
"DETAIL_WIDTH" => COption::GetOptionString("catalog", "1C_DETAIL_WIDTH", "300"),
"DETAIL_HEIGHT" => COption::GetOptionString("catalog", "1C_DETAIL_HEIGHT", "300"),
"ELEMENT_ACTION" => COption::GetOptionString("catalog", "1C_ELEMENT_ACTION", "D"),
"SECTION_ACTION" => COption::GetOptionString("catalog", "1C_SECTION_ACTION", "D"),
"FILE_SIZE_LIMIT" => COption::GetOptionString("catalog", "1C_FILE_SIZE_LIMIT", 200*1024),
"USE_CRC" => COption::GetOptionString("catalog", "1C_USE_CRC", "Y"),
"USE_ZIP" => COption::GetOptionString("catalog", "1C_USE_ZIP", "Y"),
"USE_OFFERS" => COption::GetOptionString("catalog", "1C_USE_OFFERS", "N"),
"USE_IBLOCK_TYPE_ID" => COption::GetOptionString("catalog", "1C_USE_IBLOCK_TYPE_ID", "N"),
)
);
}
elseif($type=="my_object")
{
$APPLICATION->IncludeComponent("bitrix:catalog.import.1c", "", Array(
"IBLOCK_TYPE" => "my_iblock_type",
... и так далее по вашей необходимости
)
);
}
else
{
$APPLICATION->RestartBuffer();
echo "failure\n";
echo "Unknown command type.";
}
?>
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>[/CODE]
в 1С-ке, соответственно, можно использовать точно такую же процедуру как и выгрузка каталога, только с другим параметром - my_object.
Возможно имеет смысл кастомизировать компонент catalog.import.1c, что бы не получилось накладки с каталогом.