Всем доброе время суток.
Возник вопрос по поводу запрета перезаписи полей PREVIEW_TEXT и DETAIL_TEXT при выгрузки из 1С.
Найденное решение на просторах инета:
не дало результата. Попытка получать старые значения и перезаписывать их в массиве, также ни к чему не привело.
Возможно кто-то сталкивался с такой проблемой?
Возник вопрос по поводу запрета перезаписи полей PREVIEW_TEXT и DETAIL_TEXT при выгрузки из 1С.
Найденное решение на просторах инета:
| Код |
|---|
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", "DropPreviewText");
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", "DropPreviewText");
function DropPreviewText($arFields){
if (@$_REQUEST['mode']=='import') {
unset($arFields['PREVIEW_TEXT']);
unset($arFields['PREVIEW_TEXT_TYPE']);
unset($arFields['DETAIL_TEXT']);
unset($arFields['DETAIL_TEXT_TYPE']);
}
} |
| Код |
|---|
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate", Array("DropPreviewTextClass", "DropPreviewText"));
AddEventHandler("iblock", "OnBeforeIBlockElementAdd", Array("DropPreviewTextClass", "DropPreviewText"));
class DropPreviewTextClass {
function DropPreviewText($arFields){
if (@$_REQUEST['mode'] == 'import'){
$arFilterTMP = Array("IBLOCK_ID"=>$arFields["IBLOCK_ID"], "ID"=>$arFields["ID"]);
$res = CIBlockElement::GetList(Array(), $arFilterTMP);
if ($ob = $res->GetNextElement()){
$arFieldsTMP = $ob->GetFields();
$arFields['PREVIEW_TEXT'] = $arFieldsTMP["PREVIEW_TEXT"];
$arFields['PREVIEW_TEXT_TYPE'] = $arFieldsTMP['PREVIEW_TEXT_TYPE'];
$arFields['DETAIL_TEXT'] = $arFieldsTMP['DETAIL_TEXT'];
$arFields['DETAIL_TEXT_TYPE'] = $arFieldsTMP['DETAIL_TEXT_TYPE'];
}
}
}
|