Ограничение длины строки в свойстве типа html/текст

3k
Алексей,
Ограничение длины строки в свойстве типа html/текст
Ограничение длины строки в свойстве типа html/текст

Максимум туда влезает, примерно, 60 тысяч символов и этого иногда недостаточно. Для решения нужно изменить тип поля с text на longtext.

Максимум туда влезает, примерно, 60 тысяч символов и этого иногда недостаточно. Для решения нужно изменить тип поля с text на longtext.

Идём на страницу SQL запросов /bitrix/admin/sql.php?lang=ru&del_query=Y и выполняем запрос

SHOW FIELDS FROM `b_iblock_element_property` WHERE `Field` = 'VALUE';

Проверяем что в поле Type стоит значение text. Этот тип ограничен 64 Kb (65,535 символов).

Проверяем что в поле Type стоит значение text.

Для изменения типа с text на longtext, выполните SQL запрос ниже. На всякий случай, данные в свойствах, в результате запроса, не пропадут. Но, перед выполнением, лучше сделать резервную копию БД.

ALTER TABLE `b_iblock_element_property` MODIFY `VALUE` LONGTEXT;
SHOW FIELDS FROM `b_iblock_element_property` WHERE `Field` = 'VALUE';

После его выполнения, Type изменится на longtext, а ограничение изменится на 16MB (4,294,967,295 символов).

После его выполнения, Type изменится на longtext

Но этого не достаточно. Битрикс ограничил длину строки в ядре на 63200 символов, в файле /bitrix/modules/iblock/classes/general/prop_html.php:208

Битрикс ограничил длину строки в ядре на 63200 символов

Тут варианта 2:

  1. Кастомнуть ядро :) Плохой вариант
  2. Сделать свой тип свойства. Если дойдут руки, покажу пример.

Есть вопросы или нашли ошибку? Напишите комментарий (можно без регистрации), отвечать стараюсь быстро.

Опубликовано 29 марта 2022
костыли, БД, mysql, свойства
Поделиться
Комментарии
❮…❯
Авторизуйтесь чтобы получать уведомления об ответе
Максимум туда влезает, примерно, 60 тысяч символов и этого иногда недостаточно. Для решения нужно изменить тип поля с text на longtext.