Документация для разработчиков
Темная тема

Add

Описание и параметры

int CIBlockProperty::Add(
 array arFields
);

Метод добавляет новое свойство. Отменить добавление или изменить поля свойства можно в обработчике события OnBeforeIBlockPropertyAdd. После добавления нового свойства вызываются обработчики события OnAfterIBlockPropertyAdd. Нестатический метод.

Параметры вызова

ПараметрОписание
arFields Массив Array("поле"=>"значение", ...).
Содержит значения всех полей свойства. Кроме того, с помощью поля "VALUES", значением которого должен быть массив структуры
array(
   array(
      "VALUE"=>"значение",
      "DEF"=>"по умолчанию (Y/N)",
      "SORT"=>"индекс сортировки"
      ...
   ),
)
, можно установить варианты выбора для свойств типа "список" (подробнее смотрите метод CIBlockProperty::UpdateEnum()).

Возвращаемое значение

Метод возвращает ID добавленного свойства, если добавление прошло успешно, при возникновении ошибки метод вернет false, а в свойстве объекта LAST_ERROR будет содержаться текст ошибки.

Примеры использования

<?
$arFields = Array(
"NAME" => "Цвет",
"ACTIVE" => "Y",
"SORT" => "100",
"CODE" => "color",
"PROPERTY_TYPE" => "L",
"IBLOCK_ID" => 11
);

$arFields["VALUES"][0] = Array(
"VALUE" => "Красный",
"DEF" => "N",
"SORT" => "100"
);

$arFields["VALUES"][1] = Array(
"VALUE" => "Желтый",
"DEF" => "N",
"SORT" => "200"
);

$arFields["VALUES"][2] = Array(
"VALUE" => "Зеленый",
"DEF" => "Y",
"SORT" => "300"
);

$ibp = new CIBlockProperty;
$PropID = $ibp->Add($arFields);
?>
//добавление свойства типа "HTML"
 $arFields = Array(
        "NAME" => "Итог",
        "ACTIVE" => "Y",
        "SORT" => "600",
        "CODE" => "ITOG",
        "PROPERTY_TYPE" => "S",
        "USER_TYPE" => "HTML", 
        "IBLOCK_ID" => $arParams["IBLOCK_ID"],
        );
      
      $ibp = new CIBlockProperty;
      $PropID = $ibp->Add($arFields);


//для добавления свойства типа "Видео" в массиве arFields должно быть указано:
"PROPERTY_TYPE" => "S",
"USER_TYPE" => "video",
//установка параметра "Выводить поле для описания значения" для свойства инфоблока ("WITH_DESCRIPTION" => "Y")
// доступно только для типов свойств:  S - строка, N - число и F - файл
  $arFields = Array(
      "NAME" => "Прочее",
      "ACTIVE" => "Y",
      "SORT" => "1700",
      "CODE" => "F_OTHER",
      "PROPERTY_TYPE" => "S",
      "IBLOCK_ID" => $IBLOCK_ID,
      "WITH_DESCRIPTION" => "Y",
      );

   $iblockproperty = new CIBlockProperty;
   $PropertyID = $iblockproperty->Add($arFields);
//добавление к инфоблоку свойства типа "Справочник"
 $arFields = Array(
   "NAME" => "Производитель",
   "ACTIVE" => "Y",
   "SORT" => "50",
   "CODE" => "PROIZVODITEL",
   "PROPERTY_TYPE" => "S",
   "USER_TYPE" => "directory",
   "IBLOCK_ID" => 888888888888888,//номер вашего инфоблока
   "LIST_TYPE" => "L",
   "MULTIPLE" => "N",
   "USER_TYPE_SETTINGS" => array("size"=>"1", "width"=>"0", "group"=>"N", "multiple"=>"N", "TABLE_NAME"=>"b_producers")
);

$ibp = new CIBlockProperty;
$PropID = $ibp->Add($arFields);


//затем следует в значение свойства вставить значение поля  UF_XML_ID от вашего справочника
CIBlockElement::SetPropertyValuesEx(123188, 888888888888888, array('PROIZVODITEL'=>'000000701'));


© «Битрикс», 2001-2023, «1С-Битрикс», 2023