# Квэлп: Данные свойств — полное руководство

Полный текст встроенной документации qwelp.propertydata, сверенный 08.09.2026. Ссылки административной справки «Добавить запись» и «права доступа» обозначают действия в административном разделе вашей установки.

## Начало

После установки модуля выполните три шага. На странице появится кнопка, а таблица откроется по нажатию в центре экрана.

### 1. Создайте таблицу {#pd-record}

Нажмите «Добавить запись». Для первого примера заполните:

- Название — **Таблица размеров**.
- Символьный код — `size_guide`. Раскройте «Дополнительные настройки» и укажите код свойства `SIZE`.
- Сайт — ваш сайт. Активность включена; инфоблок, раздел и значение оставьте «Любой», свойство из списка не выбирайте.

На вкладке «Данные» заполните колонки и строки, затем сохраните запись.

Для привязки к каталогу выберите инфоблок, свойство и нужное значение по названию. Значения подгружаются автоматически; искать ID не нужно. «Любое значение» подходит для общей таблицы свойства.

## Кнопка на сайте

Откройте сохранённую запись → вкладку **«Вставка»**. Там два готовых фрагмента:

1. **Скрипт** — подключите один раз в общем шаблоне страницы, вне кешируемого компонента.
2. **HTML-кнопка** — вставьте там, где нужна таблица. Надпись и CSS-класс кнопки можно менять.

По нажатию таблица загружается отдельно: кеш страницы или компонента не хранит её содержимое. Одним скриптом можно обслуживать несколько кнопок. При вставке через визуальный редактор используйте режим HTML.

:::details Подключение через PHP-компонент

Если удобнее разместить компонент, вставьте этот вызов в PHP-код страницы Bitrix:

```php
$APPLICATION->IncludeComponent('qwelp:propertydata.trigger', '', [
    'PROPERTY_CODE' => 'SIZE',
    'DATA_CODE' => 'size_guide',
    'BUTTON_TEXT' => 'Таблица размеров',
]);
```

:::

## Таблица на странице

Используйте этот код вместо вызова кнопки:

```php
$APPLICATION->IncludeComponent('qwelp:propertydata.view', '', [
    'PROPERTY_CODE' => 'SIZE',
    'DATA_CODE' => 'size_guide',
]);
```

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

**Текст и строки** меняются в записи на вкладке «Данные». **Цвета, размер шрифта и скругление окна** — в CSS вашего сайта:

1. Откройте файл стилей активного шаблона сайта, обычно `/local/templates/ИМЯ_ШАБЛОНА/template_styles.css`.
2. Добавьте пример ниже в конец файла. Замените цвета и числа на свои.
3. Очистите кеш страницы/компонента и Композит, если включён. Перезагрузите страницу и откройте таблицу.

:::details Готовый пример CSS

```css
body .sl-propertydata-trigger {
    color: #6750a4;
}
.sl-propertydata-modal .sl-propertydata-modal__panel {
    width: min(760px, 100%);
    border-radius: 16px;
    background: #ffffff;
    color: #222222;
}
.sl-propertydata-modal .sl-propertydata-modal__table {
    font-size: 15px;
}
.sl-propertydata-modal .sl-propertydata-modal__table th {
    background: #f0ebfa;
}
```

`color` — цвет текста, `background` — фон, `border-radius` — скругление, `font-size` — размер текста. `760px` — максимальная ширина окна; оставьте `100%`, чтобы оно помещалось на телефоне.

:::

Пример меняет стандартное оформление всех всплывающих таблиц на этом сайте. Он подходит и для HTML-кнопки, и для PHP-компонента. Надпись и CSS-класс HTML-кнопки можно менять прямо во вставленном коде; в PHP-компоненте — через параметры кнопки.

Для своего дизайна скопируйте готовый шаблон. В копии будут разметка, стили и скрипт; обновления модуля её не перезапишут.

:::details Свой шаблон для HTML-кнопки

1. Скопируйте всю папку `/bitrix/js/qwelp/propertydata/popup/templates/.default/` в `/local/templates/ИМЯ_ШАБЛОНА/qwelp/propertydata/brand/`.
2. В копии меняйте `template.html` — разметку окна и таблицы, `style.css` — оформление, `script.js` — вывод данных.
3. В готовую HTML-кнопку из вкладки «Вставка» добавьте атрибут:

```html
data-popup-template="/local/templates/ИМЯ_ШАБЛОНА/qwelp/propertydata/brand/"
```

Замените ИМЯ_ШАБЛОНА на имя шаблона вашего сайта. Остальные атрибуты кнопки оставьте. Скрипт сам подключит три файла из указанной папки; без этого атрибута работает стандартное оформление. Папка должна быть доступна на том же домене.

Сохраняйте служебные `data-qwelp-propertydata-*` атрибуты и мобильную прокрутку. Для нескольких дизайнов на одной странице замените декоративный префикс `sl-propertydata-modal` на свой одновременно в HTML и CSS. Текст ячеек выводите через `textContent`, как в исходном скрипте. После изменений обновите кеш статических файлов браузера/CDN.

:::

:::details Свой шаблон для PHP-компонента

1. Используйте штатное действие Bitrix «Копировать шаблон компонента» в режиме правки или скопируйте всю папку `/bitrix/components/qwelp/propertydata.trigger/templates/.default/` в `/local/templates/ИМЯ_ШАБЛОНА/components/qwelp/propertydata.trigger/brand/`.
2. Выберите `brand` в поле «Шаблон компонента» или укажите его вторым аргументом `IncludeComponent()`.
3. Меняйте `template.php` и `parts/` — разметку, `style.css` — стили, `script.js` — поведение. Bitrix подключит файлы копии автоматически.

Для таблицы внутри страницы аналогично используйте `propertydata.view`. После изменений очистите кеш компонента, родительского компонента и Композит. Если компонент размещён в `/local/components/`, копируйте фактически используемый шаблон оттуда. Исправления обновлений в пользовательские копии переносит разработчик сайта.

:::

## Проверка

Откройте страницу и нажмите кнопку. Таблица должна открыться по центру; крестик и Escape закрывают окно. Дальше меняйте содержимое во вкладке «Данные» — код на сайте менять не нужно.

:::details Кнопка или таблица не появилась?

Для HTML-кнопки проверьте подключение скрипта, активность записи и её сайт. После переноса модуля на другую установку или смены сайта записи скопируйте кнопку заново. Для PHP-примера дополнительно проверьте совпадение кодов `SIZE` и `size_guide` и очистите кеш Bitrix.

:::

### Проверка после подключения {#pd-check}

1. Откройте страницу как посетитель: таблица соответствует записи, кнопка открывает окно, крестик и Escape закрывают его.
2. Проверьте экран 320×568, 375×667, 390×844 и горизонтальный режим: закрытие доступно, широкая таблица прокручивается внутри окна.
3. В режиме правки сохраните параметры без изменений, затем измените один допустимый параметр и сохраните снова. После каждого сохранения проверьте страницу в обычном режиме.
4. Измените одну ячейку записи и проверьте обновление страницы. Модуль очищает свой тег кеша и планирует очистку публичного кеша; пользовательское кеширование интегратора требует отдельной проверки. После изменения шаблона очистите кеш компонента, родительского компонента и Композит.
5. Если сайтов несколько, создайте отличающиеся таблицы с явными привязками к сайтам и проверьте каждый домен. Записи «Все сайты» общие намеренно.

Если таблица не появилась, проверьте установку модуля, активность записи, сайт, ID инфоблока, код/ID свойства, код записи, значение и цепочку разделов. Временно выберите `HIDE_IF_EMPTY=N`, чтобы отличить отсутствие данных от отсутствия компонента. Если дизайн не изменился — проверьте, какой шаблон и какая вложенная копия действительно выбраны Bitrix.

## Для разработчика

### Установка модуля {#pd-install}

1. Подготовьте сайт на «1С-Битрикс: Управление сайтом» в UTF-8 с PHP 8.2 или выше и MySQL 8.0 или выше. Проверка установщика допускает main от 23.0.0; для новой установки используйте актуальную стабильную платформу. Для выбора реальных свойств и разделов нужен модуль «Информационные блоки».
2. Загрузите решение штатными средствами Marketplace и установите его в административном разделе. Для ручного теста распакуйте предоставленный разработчиком пакет так, чтобы файл `install/index.php` находился внутри `/bitrix/modules/qwelp.propertydata/`, затем откройте «Настройки → Настройки продукта → Модули» и нажмите «Установить». ZIP с папкой `.last_version` — формат передачи в Marketplace: в каталог модуля переносится содержимое этой папки.
3. Откройте «Квэлп → Квэлп: Данные свойств». Модуль сам создаёт раздел «Квэлп» и работает без других модулей Qwelp. Здесь доступны «Все записи», «Добавить запись» и «Документация».
4. При необходимости настройте права доступа: D — доступ закрыт, R — просмотр списка и документации, W — создание, изменение и удаление. Эти права общие для модуля; они не разделяют редакторов по сайтам.

Установщик создаёт собственную таблицу БД, административные страницы, два компонента в `/bitrix/components/qwelp/` и расширения в `/bitrix/js/qwelp/propertydata/`. Шаблон сайта, товары и `init.php` менять для установки не требуется. Автоматического добавления таблиц во все карточки товаров нет: место вывода выбирает интегратор. Платные внешние сервисы, Bootstrap, jQuery и другие модули Qwelp для обычного вывода не нужны. Первая вставка PHP в шаблон требует навыков разработки Bitrix.

### Параметры компонентов {#pd-params}

| Параметр | Назначение |
| --- | --- |
| `IBLOCK_ID` | ID инфоблока контекста; 0 — без конкретного инфоблока. Запись с выбранным инфоблоком не подходит контексту 0. |
| `PROPERTY_ID`, `PROPERTY_CODE` | ID или символьный код свойства. Передавайте хотя бы один; если заданы оба, они должны описывать одно свойство. |
| `PROPERTY_VALUE_ID`, `PROPERTY_VALUE_XML_ID` | ID и XML_ID значения списка. Пустые строки — без конкретного значения. Если у записи заполнены оба поля, передайте оба совпадающих значения. |
| `DATA_CODE` | Дополнительный фильтр по символьному коду записи. Не заменяет контекст свойства, сайта, инфоблока и раздела. |
| `SECTION_ID`, `SECTION_PATH_IDS` | Текущий раздел и массив ID его предков от корня к ближайшему родителю. Доступны в параметрах обоих компонентов. Компонент не определяет раздел из URL и не строит цепочку автоматически. |
| `HIDE_IF_EMPTY` | Y по умолчанию — не показывать компонент, если подходящей записи нет. N — показать пустое состояние. |
| `CACHE_TYPE`, `CACHE_TIME` | Штатный кеш Bitrix. Используйте A; время задаётся в секундах. По умолчанию — 36000000; короткие примеры используют это значение. |
| `BUTTON_TEXT` | Только trigger: подпись кнопки. При пустой строке стандартный шаблон показывает «Таблица размеров». |
| `BUTTON_TAG`, `BUTTON_CLASS`, `SHOW_ARROW` | Только trigger: тег button (по умолчанию) или a, дополнительные CSS-классы, стрелка Y/N (по умолчанию N). |
| `SHOW_TITLE` | Только view: заголовок таблицы Y/N, по умолчанию Y. |

Сайт компонент берёт из текущего `SITE_ID`; отдельного сохраняемого параметра сайта нет. Для параметров, которыми управляет визуальный редактор, используйте строки, числа и массивы примитивных значений. Динамическую передачу раздела и значения из родительского каталога должен настроить интегратор с проверкой сохранения в редакторе.

### Как выбирается запись {#pd-targeting}

Выбирается одна активная запись, подходящая контексту. Общие записи могут служить запасным вариантом. Более конкретные совпадения получают суммарный приоритет: сайт +40, инфоблок +30, ID свойства +30, код свойства +20, XML_ID значения +50, ID значения +35, точный раздел без наследования +90, раздел с наследованием +60 и глубина раздела в переданной цепочке. При одинаковой сумме выигрывает меньшая «Сортировка», затем меньший ID записи. Применение к подразделам работает только при передаче цепочки разделов.

Ограничения текущей версии: таблица — до 40 колонок и 200 строк; заголовок колонки — до 255 символов, ячейка — до 1000. Превышения обрезаются при сохранении. Список администрирования загружает максимум 500 записей; поиск вывода рассматривает до 100 кандидатов на контекст, предварительно упорядоченных по сортировке и ID. Не создавайте сотни пересекающихся правил для одного свойства. Поддерживается текстовая таблица, без исполнения HTML в ячейках. Публично размещённые таблицы доступны посетителям; не храните в них закрытые сведения.

### Изменение HTML-разметки PHP-компонента {#pd-template}

Для PHP-вызова скопируйте целиком `/bitrix/components/qwelp/propertydata.trigger/templates/.default/` в `/local/templates/ИМЯ_ШАБЛОНА/components/qwelp/propertydata.trigger/.default/`. Если компонент установлен в `/local/components/`, копируйте его фактически используемый шаблон оттуда. Для таблицы внутри страницы аналогично используйте `propertydata.view`. Именованную копию, например `brand`, укажите вторым аргументом вызова компонента. На HTML-кнопку с отдельным скриптом эта копия не влияет.

В trigger копируются `template.php`, папка `parts/`, `style.css`, `script.js`, `.parameters.php` и `lang/`. Bitrix сам подключает CSS и JS выбранного шаблона. Сохраняйте data-атрибуты, связь кнопки и окна, клавиатурное закрытие, ограничения visualViewport, safe-area и внутреннюю прокрутку. Пользовательские копии не обновляются автоматически; перенос исправлений в них выполняет интегратор. Подробности есть в README модуля.

### Удаление и повторная установка {#pd-remove}

Удаление доступно администратору в списке модулей. По умолчанию таблицы с данными сохраняются и могут использоваться после повторной установки. Флажок «Удалить таблицы и данные модуля» удаляет их для всей установки, включая записи всех сайтов. Перед этим сделайте резервную копию и подтвердите необходимость удаления.

Модуль управляет только файлами, принадлежащими ему по установочному манифесту; изменённые или чужие файлы могут остановить безопасное удаление. Копии оформления в `/local/templates/` и добавленные интегратором вызовы на страницах остаются: их нужно убрать вручную перед удалением компонентов. Для обращения в поддержку используйте контакты и регламент в карточке приобретённого решения, приложите версии PHP/Bitrix, текст ошибки и параметры компонента без паролей и лицензионных ключей.
