Достаточно часто, при разработке сайтов на 1С Битрикс, с интеграцией с 1С Управление Торговлей, нужно заменить «Полное наименование» и «Наименование» товара.
В 1С имеется два поля «Наименование» — внутреннее название товара и «Полное наименование» — название для документов и пр.
При выгрузки на сайт в Название товара встают данные именно из «Наименование», а как бы сделать, что бы из «Полное наименование»?
Давайте создадим обработчик событий, которые будут в момент обмена с 1С записывать полное наименование куда надо.
AddEventHandler("iblock", "OnStartIBlockElementUpdate", Array("AHandlers", "ChangeElementName1CImport"));
AddEventHandler("iblock", "OnStartIBlockElementAdd", Array("AHandlers", "ChangeElementName1CImport"));
class AHandlers {
function ChangeElementName1CImport(&$arFields) {
if($arFields['IBLOCK_ID']==6 && strstr($_SERVER['REQUEST_URI'],'1c_exchange.php')) {
$previewText = strip_tags(trim($arFields['PREVIEW_TEXT']));
$name = $arFields['NAME'];
$arFields['NAME'] = $previewText;
$arFields['PREVIEW_TEXT'] = $name;
}
}
}
В нашем случае $arFields[‘IBLOCK_ID’]==6 вместо 6 пишете ID своего инфоблока с каталогом. Этот код необходимо разместить в /bitrix/php_interface/init.php . Но если нет этого файла, то его нужно создать.
