1С-Битрикс — заполнение одного свойства элемента значениями другого

14.09.2021  09:30

Задача: заполнять свойство типа дата значениями стандартного свойства «Начало активности».

В настройках нужного инфоблока добавляем свойство с кодом DATE_START, которое и будет заполняться из даты начала активности (если эта дата заполнена. Код добавляем в init.php и в моём случае он срабатывает только при добавлении элемента, чтобы была возможность значение свойства менять при необходимости вручную в админке.

AddEventHandler( "iblock", "OnAfterIBlockElementAdd", array( "MyClass", "FillProp" ) );
// AddEventHandler( "iblock", "OnAfterIBlockElementUpdate", array( "MyClass", "FillProp" ) );
class MyClass {
	function FillProp( $arFields ){
		if(!empty($arFields["ACTIVE_FROM"])){
			$IBLOCK_ID = $arFields['IBLOCK_ID'];
			$properties = CIBlockProperty::GetList(Array("sort"=>"asc", "name"=>"asc"), Array("ACTIVE"=>"Y", "IBLOCK_ID"=>$IBLOCK_ID));
			while ($prop_fields = $properties->GetNext())
			{
				if($prop_fields["CODE"] == 'DATE_START'){
					list($cDate,$cTime) = explode(" ",$arFields["ACTIVE_FROM"]);
					CIBlockElement::SetPropertyValuesEx( $arFields['ID'], false, array( 'DATE_START' => $cDate ) );
				}
			}
		}
	 }
}


В моём случае из даты начала активности оставляется только дата, время мне не нужно. Код получился короткий и простой, думаю по нему всё понятно.
Андрей Панёвин
Здравствуйте! Я — Андрей Панёвин и занимаюсь профессиональной разработкой сайтов на платформе 1С-Битрикс (исключительно программирование). Есть вопросы по статье или нужно реализовать доработки по программной части? Могу подсказать и помочь по скайпу (andrey.panevin.ru), WhatsApp (+7-911-091-0670), Telegram (@panevin_ru) или перепиской в ВК.
1000 р./час. Часовой пояс — московский.






Помогла статья? На поездку на море (Охотское):


перейти в Блог

Ударим лайками по бездорожью, разгильдяйству и бюрократизму!


Ключевые слова (тэги): 1С-Битрикс 72  PHP 85  web-программирование 110  

Вам есть что сказать — ну я же чую.
Высказаться о наболевшем, я выслушаю-:
Имя


email (не публикуется)