JastaFly
@JastaFly

После обновления Битрикс пропала фильтрация по свойству?

После обновления Битрикса до 24.0.775 в адмике перестала работать фильтрация элементов каталога по свойству одному из свойств. У данного свойства тип Справочник, при попытке отфильтровать элементы по нему, в выпадающем списке ничего не находит:
66e40e1292356547915196.png
Попробовал ввести значение в ручную, фильтрация так-же не удалась:
66e40ed0388b9101881378.png
Попробовал сделать полную переиндексацию, так-же не помогло. Может кто сталкивался с таким, подскажите в чем может быть проблема?
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
JastaFly
@JastaFly Автор вопроса
Проблема была в отсутствующем поле UF_SORT у проблемного HighLoad блока. Написал миграцию добавляющую её:
namespace Sprint\Migration;

class AddSortFieldInHighloadBlock20240926165615 extends Version
{
    protected $author = 'https://github.com/JastaFly';
    protected $description = 'Добавляет поле сортировки в Highload-блок';
    protected $moduleVersion = '4.12.6';
    private HelperManager $helperManager;
    private int $hlBlockManufacturersId;

    /**
     * @throws Exceptions\HelperException
     * @return bool|void
     */
    public function __construct()
    {
        $this->helperManager = $this->getHelperManager();
        $this->hlBlockManufacturersId = $this->helperManager->Hlblock()->getHlblockIdIfExists(
            'highloadBlockName'
        );
    }

    public function up()
    {
        $this->helperManager->Hlblock()->saveField(
            $this->hlBlockManufacturersId,
            [
                'FIELD_NAME' => 'UF_SORT',
                'USER_TYPE_ID' => 'double',
                'XML_ID' => '',
                'SORT' => '100',
                'MULTIPLE' => 'N',
                'MANDATORY' => 'N',
                'SHOW_FILTER' => 'N',
                'SHOW_IN_LIST' => 'Y',
                'EDIT_IN_LIST' => 'Y',
                'IS_SEARCHABLE' => 'N',
                'SETTINGS' => [
                    'PRECISION' => 4,
                    'SIZE' => 20,
                    'MIN_VALUE' => 0.0,
                    'MAX_VALUE' => 0.0,
                    'DEFAULT_VALUE' => NULL,
                ],
                'EDIT_FORM_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                'LIST_COLUMN_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                'LIST_FILTER_LABEL' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                'ERROR_MESSAGE' => ['en' => 'Sorting', 'ru' => 'Сортировка'],
                'HELP_MESSAGE' => ['en' => 'Sorting', 'ru' => 'Сортировка']
            ]
        );
    }

    public function down()
    {
        $deleteResult = $this->helperManager->Hlblock()->deleteField($this->hlBlockManufacturersId, 'UF_SORT');

        if ($deleteResult) {
            $this->outSuccess('Всё ok. Свойство сортировки добавлено');
        } else {
            $this->outError('Не ok. Свойство сортировки не добавлено');
        }
    }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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