Спасибо, все получилось.
Далее в таблицу b_lists_field добавляю записи с нужным PROPERTY_#ID#, например, PROPERTY_545 и PROPERTY_544 Иду в редактирование элемента инфоблока в админке и вижу такую картину: Я должен вынести что-то на вкладку "Элемент"? Каким образом я это могу сделать? |
|||
|
|
|
|
Вообще для чего мне это надо - у нас был список, нормально созданный через интерфейс списка, но его неудачно отредактировали и какие-то поля удалились. Инфоблок мы восстановили импортом/экспортом из резервной копии портала, но откатить весь портал к дате восстановления не можем, т.к. обнаружили это не сразу и другие данные на портале тоже поменялись. Поэтому у нас сейчас есть готовый инфоблок, но список не видит части его свойств. И очень хочется с этим побороться.
Как я понимаю ситуацию - у нас инфоблок это модель, данные + метаданные, которые хранятся в БД. Редактирование инфоблока через админку и через список в пользовательской части - это отображение этих данных. И суть нашей проблемы сейчас - список "не знает" какие отображать данные и не может по метаданным обновить информацию об измененных свойствах инфоблока.
Попробовал CList::AddField с CODE и NAME как в инфоблоке - получил ошибку: [Bitrix\Main\NotSupportedException] Поле с таким кодом уже существует (150) /home/bitrix/www/bitrix/modules/lists/classes/general/listfi #0: CListPropertyField::Add(integer, array) /home/bitrix/www/bitrix/modules/lists/classes/general/listfi #1: CListFieldList->AddField(array) /home/bitrix/www/bitrix/modules/lists/classes/general/list.php:62 #2: CList->AddField(array) /home/bitrix/www/test/addField.php:20 В принципе логично - метод попытался добавить в инфоблок свойство с имеющимися характеристиками. Если указывать другой CODE и NAME, то в инфоблок добавляется новое свойство. Как использовать ::($field_id, $arFields) я не совсем понимаю. Что здесь нужно передавать в $field_id - идентификатор поля в списке? Но этого поля в списке пока нет. |
|||||
|
|
|