@SpeakeazyYT1

Не изменяются значения пользовательского поля раздела с типом «Список» в 1C-Bitrix. Почему?

Добрый день. У меня возникла проблема при работе с API Bitrix. Я добавил новое пользовательское поле в разделы инфоблока с типом "Список" и в него добавил 3 значения с айдишниками соответственно 4,5,6. Так как изначально не получится выбрать значение из списка для всех разделов уже существующих, поэтому я решил сделать выборку всех разделов инфоблока и пройтись по каждому из них, обновив пользовательское поле UF_***. Я прочёл в API, чтобы изменил свойство с типом "Список", нужно в значение массива прописать id поля в этом списке. В моём случае я хочу отметить поле в списке с id = 4. Получился примерно такой код:
$arFilter = array(
	'IBLOCK_ID' => 4,
);

$arSelect = array(
	'ID',
	'CODE',
	'IBLOCK_ID',
	'NAME',
	'UF_CHOOSE_RULE'
);

$dbSection = CIBlockSection::GetList(array(), $arFilter, false, $arSelect);
while( $arSection = $dbSection-> GetNext() ){
   $sections[] = $arSection;
}

//print_r($sections);

$bs = new CIBlockSection;
foreach ($sections as $k => $sec) {
	$bs->Update($sec['ID'], array('UF_CHOOSE_RULE' => '6'));
}

Я попробовал исполнить данный код, ошибок никаких не сыпется, но и результата нормального тоже нет, как было отмечено поле "нет", так и осталось отмечено. В чём же может быть дело? Или с пользовательскими полями разделов по другому надо работать?
  • Вопрос задан
  • 179 просмотров
Решения вопроса 1
@SpeakeazyYT1 Автор вопроса
Нашёл решение:
$bs->Update(ID_РАЗДЕЛА, array('UF_CHOOSE_RULE' => array( 
'VALUE' => 6
)))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
serginhold
@serginhold
Скорее всего просто что-то накосячил с названиями/значениями по невнимательности.

Обнови просто один элемент (попытка). Посмотри что вернул метод Update. Если false, то смотришь ошибку в $bs->LAST_ERROR. Всё, обычный дебаг, надо чтоли ради этого вопросы создавать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы