Запрет изменения полей товаров при выгрузке из 1С на сайт Битрикс

Обзор обновления aveCRM 7.8
Обзор обновления aveCRM 7.9
Запрет изменения полей товаров при выгрузке из 1С на сайт Битрикс

При разработке интернет магазина на 1С-Битрикс бывают ситуации, когда выгружаются только названия товаров, цены и остатки. Подробные описания и картинки добавляются уже самостоятельно после этого. Для того, чтобы запретить при обмене с 1С изменять нужные поля, можно воспользоваться кодом:

<?
AddEventHandler("iblock", "OnBeforeIBlockElementUpdate","SaveItem");
function SaveItem(&$arFields)
{
    if (!empty($_REQUEST['mode']) && $_REQUEST['mode']=='import') {

        // запрет смены рубрики
        $db_old_groups = CIBlockElement::GetElementGroups($arFields['ID'], true);
		$arFields['IBLOCK_SECTION'] = [];

		while($ar_group = $db_old_groups->Fetch()) {
			if(!in_array($ar_group['ID'],$arFields['IBLOCK_SECTION'])) {
				$arFields['IBLOCK_SECTION'][]=$ar_group['ID'];
			}
		}

        // запрет смены превью
        unset($arFields['PREVIEW_PICTURE']);

        // запрет смены детальной картинки
        unset($arFields['DETAIL_PICTURE']);

        // запрет смены текста превью
        unset($arFields['PREVIEW_TEXT']);

        // запрет смены детального текста
        unset($arFields['DETAIL_TEXT']);
    }
}

Данный код необходимо разместить в файле /bitrix/php_interface/init.php, а если его нет - то создать

Вы готовы начать работу или получить консультацию?

Самый простой способ - написать нам. Не стесняйтесь задавать вопросы. Мы готовы начать обсуждение вашего проекта сейчас, сделайте следующий шаг, напишите нам.