Задать вопрос
@Tsybinn

Как изменить тип данных поля в уже существующем HighloadBlock bitrix?

Тип данных в HighloadBlock можно задать только для нового поля.
мне требуется изменить тип поля с int на строка.
  • Вопрос задан
  • 1745 просмотров
Подписаться 1 Средний 3 комментария
Решения вопроса 1
@PetrPo
По всей видимости, самым правильным решением будет написать скрипт, в котором
1. Собрать все значения этого поля
2. Создать новое поле
3. Заполнить новое поле значениями
4. Удалить старое поле

Почему так, потому что поле hl блока = user field, а CUserTypeEntity::Update начинается с
unset($arFields["ENTITY_ID"]);
unset($arFields["FIELD_NAME"]);
unset($arFields["USER_TYPE_ID"]);
unset($arFields["MULTIPLE"]);

Т.е. битриксоиды не предполагают в своем api изменение поля USER_TYPE_ID
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
babarun
@babarun Куратор тега 1С-Битрикс
Безумный план моих идей в руках больных людей
Меняете USER_TYPE_ID в соответствующем b_user_field
60101336167cd475284049.png
Потом меняете тип поля соответствующего поля в таблице
601013ca1ee6e232340561.png
Только учтите что данные внутри этого "столбца" будут утеряны
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы