Достаточно часто, при разработке сайтов на 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 . Но если нет этого файла, то его нужно создать.