Присоединяюсь к вопросу. При создании свойства очень хотелось бы задавать что Опция "Показывать на странице редактирования элемента" была бы снята.
Ответ возможно тут [URL=https://dev.1c-bitrix.ru/community/forums/forum6/topic67073/]https://dev.1c-bitrix.ru/community/forums/forum6/topic67073/[/URL] а то и тут [URL=https://dev.1c-bitrix.ru/community/webdev/user/89826/blog/8493/]https://dev.1c-bitrix.ru/community/webdev/user/89826/blog/8493/[/URL]
Ниже моя покорная штука которая создаёт свойство если его нет и по заданному флагу $nbPropOfSectionDenyIBlock вроде(протестирую потом) как бы снимает галочку "Показывать на странице редактирования элемента".[CODE]function nbSaveTovarProperityInCatalog($IBLOCK_ID_pram,$ID_of_element_pram,$CODE_pram,$NAME_pram,$nwStringDenyNumbDenyElementLink,$nnSortPriority=600,$nbPropOfSectionDenyIBlock=false){//функция добавляет свойство в каталог
$PROP = CIBlockElement::GetProperty($IBLOCK_ID_pram,$ID_of_element_pram, array("sort" => "asc"), Array("CODE"=>$CODE_pram));//проверяем, есть ли свойство с названием как в описание значения свойства в Prpperity
if(!$PROP->Fetch()){//если свойств нет, то создаем его, чтобы потом в него записать значение из Prpperity
$el = new CIBlockProperty;
$arFields=Array("CODE" => $CODE_pram,"NAME" => $NAME_pram,//mb_convert_encoding($NAME_pram,"utf-8","windows-1251"),
"PROPERTY_TYPE" => $nwStringDenyNumbDenyElementLink, "ACTIVE" => "Y","SORT" => $nnSortPriority,"IBLOCK_ID" => $IBLOCK_ID_pram,"DATE_ACTIVE_FROM"=>date("d.m.Y."),
"DATE_ACTIVE_TO"=>false,);
//"PROPERTY_TYPE" => "N",//номер, число
//$mcProps["HTML_PROP"] = array("VALUE"=>array("TEXT"=>"<h1>HTML текст</h1>, блаблабла...", "TYPE"=>"html"));
//альтерспособы добавлять значения $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");
//вставляеться по условию ниже "IBLOCK_ID" => 11
//временно отключено, вручную в админке "FILTRABLE" => "Y",
if($nbPropOfSectionDenyIBlock){//не всё в этой ифскобе пашет чтоб снять галочку "Показывать на странице редактирования элемента"
$ib = new CIBlock;$ib->Update($IBLOCK_ID_pram, array("SECTION_PROPERTY" => "N"));
$section = new CIBlockSection();if(!$section->Update($_REQUEST['unSectionIdWhereMakeTovar'],array("SECTION_PROPERTY" => "N",))){echo"Ошибка231 не снялась галочка 'Показывать на странице редактирования элемента'";}
$arFields["SECTION_PROPERTY"]="N";}//Галочка "Показывать на странице редактирования элемента"
$unIdBornedPoroperity;
if(!$unIdBornedPoroperity=$el->Add($arFields)){echo"Ошибка237 добавления свойства ".$arFields["CODE"]." ".$el->LAST_ERROR;}//изменять свойство по её айди так $el->Update($prop['ID'], $arFields
else{echo"В каталог добавлено свойство ".$arFields["NAME"];
if($nbPropOfSectionDenyIBlock){//не всё в этой ифскобе пашет чтоб снять галочку "Показывать на странице редактирования элемента"
CIBlockSectionPropertyLink::DeleteByProperty($unIdBornedPoroperity);//отвязывает свойство с идентификатором $PROPERTY_ID от всех разделов
// пусть пока только от разделов отвязывает CIBlockSectionPropertyLink::Add($_REQUEST['unSectionIdWhereMakeTovar'],$unIdBornedPoroperity);
}}//пусть пока только от разделов отвязывает CIBlockSectionPropertyLink::Delete(0,$unIdBornedPoroperity);//ноль занчит отвязать от инфоблока
return true;}
else{echo" В каталог уже существует свойство <b>".$NAME_pram."</b>";return false;}}
лайкни сообщение[/CODE]