# Квэлп: Группировка свойств

Полное руководство из встроенной справки qwelp.propgroups. Версия 1.0.0, сверка 11.10.2026.

## Начало

### Первый результат за три шага

Модуль объединяет характеристики элементов инфоблока в группы и добавляет ссылки к значениям свойств. Для каждого раздела можно задать свой набор групп.

1. Откройте Группировки. В блоке «Создать новую группировку» выберите инфоблок, затем область применения.
2. Добавьте группу, задайте название, сортировку и выберите свойства. Нажмите «Применить» и проверьте сообщение об успешном сохранении.
3. Подключите вывод в шаблоне сайта по разделу «Подключение к сайту» и откройте карточку элемента.

Настройка групп сама по себе не заменяет разметку сайта. Разработчик один раз подключает API модуля; затем группы настраиваются через админку.

Открыть группировкиНастроить права

## Группы и наследование

### Группы и наследование

На стартовой странице показаны все доступные группировки без отдельного фильтра. Выбор инфоблока и раздела расположен в компактной панели. В редакторе поиск по коду или названию помогает выбрать свойства группы.

1. Выберите инфоблок и «Для всех разделов» либо конкретный раздел.
2. Добавьте группы: например, «Основные характеристики» и «Размеры». Меньшая сортировка выводится раньше.
3. Выберите свойства для каждой группы и сохраните. Свойства связываются по символьному коду: после переименования кода обновите настройку.

| Приоритет | Источник |
| --- | --- |
| 1 | Текущий раздел элемента. |
| 2 | Ближайший родительский раздел, где настроены группы. |
| 3 | Общая группировка инфоблока. |

Наборы не складываются: выбирается первый найденный. Свойства без группы остаются в конце без заголовка. Пустые группы не выводятся.

:::details Вернуть наследование

Удалите все группы текущего раздела и сохраните. Будут использованы настройки родителя или инфоблока. Значения свойств элементов не удаляются.

:::

:::details Несколько сайтов

Настройки принадлежат инфоблоку и разделу. Сайты с одним инфоблоком используют общие настройки; для разных группировок нужны разные инфоблоки.

:::

## Ссылки значений

### Сделать значение ссылкой

1. Откройте группировку и добавьте правило ссылок.
2. Выберите свойство и режим, включите правило. При необходимости задайте открытие в новой вкладке.
3. Нажмите «Применить», затем проверьте переход на сайте.

| Режим | Настройка |
| --- | --- |
| Ручные ссылки | Одна пара «значение=адрес» на строку. Ручное соответствие имеет приоритет над автоматическим режимом. |
| Элемент / раздел | Связанный элемент или раздел выбранного инфоблока; используются шаблоны его URL. |
| Фильтр | Штатный адрес filter/.../apply/ в выбранном или текущем разделе. На странице назначения нужен настроенный умный фильтр. |

```
Хлопок=/materials/cotton/
Лён=/materials/linen/
```

Замените адреса примера существующими страницами. Разрешены локальные пути, якоря и HTTP/HTTPS; небезопасный адрес не выводится.

Справа от поля «Шаблон URL» нажмите «Переменные»: откроется список поддерживаемых макросов с пояснениями. Нажатие вставляет макрос в позицию курсора или вместо выделения. Окно закрывается крестиком или Escape. Поле используется в режиме «Элемент инфоблока», в том числе для свойств с привязкой к разделам; в ручном режиме и режиме фильтра оно не применяется. После вставки сохраните правило.

:::details Шаблоны адресов

Подстановки: #SITE_DIR#, #PROPERTY_CODE#, #VALUE#, #VALUE_SLUG#, #IBLOCK_ID#, #SECTION_ID#. Проверьте URL отдельно на каждом сайте. Модуль не создаёт страницы назначения.

:::

:::details Наследование правил

Для каждого кода свойства используется первое активное правило от текущего раздела к родителям и общей настройке. Неактивное правило не блокирует наследование.

:::

## Подключение к сайту

### Подключить API к шаблону

Раздел для разработчика. Модуль использует штатный Битрикс и собственные ресурсы; установка не изменяет шаблоны клиента.

1. Скопируйте шаблон catalog.element в шаблон сайта штатным способом. Сохраните исходную копию.
2. В result_modifier.php после подготовки DISPLAY_PROPERTIES добавьте код подготовки групп.
3. В template.php замените существующий блок характеристик примером вывода. Передавайте только разрешённые посетителю свойства.

:::details Подготовить группы и ссылки

```php
if (\Bitrix\Main\Loader::includeModule('qwelp.propgroups'))
{
    $service = new \Qwelp\PropGroups\Service\PropertyGroupService(
        new \Qwelp\PropGroups\Repository\PropertyGroupRepository()
    );
    $arResult['PROPERTY_GROUPS'] = $service->groupProperties(
        $arResult['DISPLAY_PROPERTIES'] ?? [],
        $service->getGroupsForProduct(
            (int)$arResult['IBLOCK_ID'], (int)$arResult['IBLOCK_SECTION_ID']
        )
    );
    $arResult['PROPERTY_GROUPS'] = (new \Qwelp\PropGroups\Service\PropertyLinkResolver())
        ->enrichPropertyGroups($arResult['PROPERTY_GROUPS'], [
            'iblockId' => (int)$arResult['IBLOCK_ID'],
            'sectionId' => (int)$arResult['IBLOCK_SECTION_ID'],
            'siteId' => SITE_ID,
        ]);
}
```

:::

:::details Вывести группы

```php
<?php
if (\Bitrix\Main\Loader::includeModule('qwelp.propgroups'))
{
    echo \Qwelp\PropGroups\Service\PropertyValueRenderer::renderGroups(
        $arResult['PROPERTY_GROUPS'] ?? []
    );
}
```

:::

### Оформление и кеш

Добавьте оформление property-group и qwelp-propgroups__value-link в style.css клиентской копии шаблона. Штатный компонент подключает его и при попадании в кеш.

Регистрируйте тег iblock_id_ с ID исходного инфоблока в активном tagged cache компонента. API ссылок добавляет теги целевых инфоблоков. Собственный кеш должен учитывать сайт и группы доступа. Сохранение групп сбрасывает связанный кеш и Композит; произвольные сохранённые HTML-фрагменты должны иметь тот же тег.

Публичные ключи значений: VALUE_ITEMS и HAS_VALUE_LINKS. Интеграции с другими решениями выполняются только на стороне шаблона сайта через публичный API.

## Проверка

### Проверка после настройки

1. На своём тестовом инфоблоке проверьте текущий, дочерний и соседний разделы.
2. Сверьте порядок, свойства без группы, пустые и множественные значения.
3. Перейдите по ручной ссылке, ссылке элемента и фильтра, если они используются.
4. Повторите открытие с прогретым кешем и Композитом. Переименуйте группу: новое имя должно появиться без ручной очистки всего кеша.
5. Проверьте второй сайт, узкое окно и обычного посетителя.

:::details На сайте ничего не изменилось

Проверьте вызов API в реально используемом шаблоне, инфоблок и основной раздел элемента. Свойство должно входить в DISPLAY_PROPERTIES, иметь символьный код и значение.

:::

:::details Ссылка отсутствует или ведёт на 404

Проверьте активность правила, точное значение, инфоблок назначения, его права и шаблоны URL. Для фильтра проверьте ЧПУ на целевой странице.

:::

:::details Сохранение отклонено

Нужны право W на модуль и право изменения выбранного инфоблока. При истечении сессии перезагрузите страницу. Не повторяйте сохранение при ошибке, не проверив исходные данные.

:::

## Справка

### Установка и справка

Время кеширования: Qwelp → Группировка свойств → Настройки. Права: Настройки → Настройки модулей → Группировка свойств → Доступ. Документация — последний пункт меню модуля.

| Параметр | Значение |
| --- | --- |
| Модуль | qwelp.propgroups — Квэлп: Группировка свойств |
| Платформа | PHP 8.2+, main 23.0.0+, «Информационные блоки», UTF-8, MySQL 8.0+. |
| Установка | Marketplace → Установленные решения. Общие файлы: /bitrix/modules/qwelp.propgroups/ и собственные входы /bitrix/admin/qwelp_propgroups_*.php. |
| Права | D — нет доступа; R — чтение; W — изменение. Для записи нужны также права инфоблока. |
| Область | Инфоблок и раздел. Общий инфоблок означает общие настройки для сайтов. |
| Внешние сервисы | Не требуются. Отправки данных внешним сервисам нет. |
| Вывод на сайте | Подключение API к клиентскому шаблону выполняет разработчик. |

:::details Удаление

Флажок «Сохранить данные группировки свойств» оставляет обе таблицы с группами и правилами ссылок. Без него удаляются собственные данные модуля. Элементы и свойства инфоблоков сохраняются. В шаблоне оставьте проверку includeModule или удалите вызовы API.

:::

:::details Переопределения и обновление

Выпуск использует общий /bitrix/. У каждого сайта /local/ может быть независимым или отсутствовать. Клиентская копия в /local/modules/ имеет приоритет и не заменяется обновлением общей поставки. Изменённые клиентом файлы установщик не перезаписывает.

:::

Поддержка: qwelp.ru (https://qwelp.ru). Укажите версию модуля и Битрикса, действие и ошибку. Не передавайте пароли, sessid и лицензионный ключ.
