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

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

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

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

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

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

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

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

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

Следуя этим рекомендациям, вы сможете диагностировать и, возможно, устранить проблему с фильтрацией по свойствам в Битрикс.
Проблема была в отсутствующем поле UF_SORT у проблемного HighLoad блока. Написал миграцию добавляющую её: <br/> <pre><code class="php">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-&gt;helperManager = $this-&gt;getHelperManager();
        $this-&gt;hlBlockManufacturersId = $this-&gt;helperManager-&gt;Hlblock()-&gt;getHlblockIdIfExists(
            'highloadBlockName'
        );
    }

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

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

        if ($deleteResult) {
            $this-&gt;outSuccess('Всё ok. Свойство сортировки добавлено');
        } else {
            $this-&gt;outError('Не ok. Свойство сортировки не добавлено');
        }
    }
}</code></pre>
Похожие вопросы