Здравствуйте.
Сегодня я хочу поделиться скриптом для битрикса который помогает скопировать свойство элемента инфоблока.
Это может пригодиться, например, когда вам надо сделать копию свойства для каких-то экспериментов, но не хочется испортить актуальные данные.
<?/* bitrix копирование свойства типа "привязка к разделам" внутри элемента инфоблока */
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");
//следующие 4 строки снимают ограничения по времени и памяти выполнению скрипта
//это бывает полезно когда вам надо обновить очень много элементов
@set_time_limit(99600);
ini_set("memory_limit","4096M");
ini_set("max_execution_time","0");
ini_set("max_input_time","0");
//получаем все элементы инфоблока
$prods = CIBlockElement::GetList(
array(),
//тут надо ввести ID вашего инфоблока и другие параметр для фильтрации
array('IBLOCK_ID' => 14),
false,
false,
array('*')
);
while($el = $prods->GetNextElement()){
$fields = $el->GetFields();
//тут введите код свойство которое копируется
$from = $el->GetProperty('PROP_FROM');
//обновляем свойство
CIBlockElement::SetPropertyValuesEx(
$fields['ID'], //ID обновляемого элемента
14, //ID инфоблока
array('PROP_TO' => $from['VALUE']) //код обновляемого свойства
);
}
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
?>
Надеюсь этот скрипт для копирования свойств bitrix вам поможет.
Если есть вопросы по работе или предложения по улучшению скрипта пишите.
bitrix копирование свойств типа привязка к элементам