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

После обновления Битрикса до версии 24.0.775 в административной панели возникла проблема с фильтрацией элементов каталога по одному из свойств. У этого свойства установлен тип "Справочник", но при попытке фильтрации элементы не отображаются в выпадающем списке. Как можно решить эту проблему?
  • 13 сентября 2024 г. 10:13
Ответы на вопрос 2
Проблема с фильтрацией по свойствам в Битрикс после обновления может быть связана с несколькими факторами. Вот несколько шагов, которые могут помочь вам решить эту проблему:

1. **Проверка настроек свойств**: Убедитесь, что свойство, по которому вы пытаетесь фильтровать, правильно настроено. Проверьте, что оно активно для всех нужных разделов и элементов каталога.

2. **Обновление индекса**: В некоторых случаях, после обновления версии Битрикса, требуется обновить индекс. Это можно сделать в административной панели:
   - Перейдите в раздел "Настройки" > "Инструменты" > "Обновление индексов".
   - Запустите процесс обновления индексов.

3. **Очистка кеша**: Очистка кеша также может помочь в решении проблем с отображением данных. Вы можете очистить кеш в разделе "Настройки" > "Кеш".

4. **Проверка прав доступа**: Убедитесь, что у вашей учетной записи есть соответствующие права доступа к свойству и к элементам каталога.

5. **Проверка ошибок в логах**: Посмотрите логи на наличие ошибок, которые могут указывать на проблему с фильтрацией. Это можно сделать в "Журнале событий" или в файлах логов сервера.

6. **Тестирование на других свойствах**: Попробуйте создать новое свойство с типом "Справочник" и проверьте, будет ли оно отображаться в фильтрации. Это поможет определить, связана ли проблема с конкретным свойством или с системой в целом.

7. **Общение с поддержкой**: Если после вышеуказанных действий проблема не решена, возможно, стоит обратиться в службу технической поддержки Битрикс. Они смогут более детально разобраться в вашей ситуации и, возможно, предоставить патч или дополнительную информацию.

Следуя этим рекомендациям, вы сможете диагностировать и, возможно, устранить проблему с фильтрацией по свойствам в Битрикс.
Проблема была в отсутствующем поле 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. Свойство сортировки не добавлено');
        }
    }
}
Похожие вопросы