Настройка FAQ-раздела на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка FAQ-раздела на 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка FAQ-раздела на 1С-Битрикс

FAQ на Битриксе — это всегда компромисс между простотой управления для редактора и гибкостью отображения для разработчика. Два основных подхода: инфоблок с элементами «вопрос-ответ» или модуль техподдержки support. Для публичного FAQ на сайте инфоблок предпочтительнее.

Инфоблок для FAQ: минимальная структура

Создаёте инфоблок с символьным кодом faq. Свойства элемента:

  • Название элемента = вопрос (поле NAME в b_iblock_element)
  • Детальное описание = ответ (поле DETAIL_TEXT)
  • SORT — сортировка вопросов внутри категории
  • CATEGORY — свойство типа Привязка к разделу для группировки по темам

Разделы инфоблока (b_iblock_section) служат категориями FAQ — «Доставка», «Оплата», «Гарантия». Это удобнее, чем отдельное свойство-категория, потому что разделы поддерживают вложенность и автоматически фильтруются в компонентах.

Флаг ACTIVE позволяет редакторам временно скрывать вопросы без удаления. Это важно — без него приходится удалять и пересоздавать.

Компонент вывода и accordion

Для списка FAQ оптимален bitrix:news.list с параметром IBLOCK_ID вашего FAQ-инфоблока. Детальные страницы для FAQ обычно не нужны — всё выводится на одной странице в виде аккордеона.

В template.php итерируетесь по $arResult["ITEMS"] и для группировки по категориям используете свойство $arItem["IBLOCK_SECTION_ID"]. Предзагрузите разделы через CIBlockSection::GetList() в component_epilog.php и постройте карту section_id => section_name.

Аккордеон — чистый CSS или минимальный JS. Без jQuery, без библиотек:

document.querySelectorAll('.faq-question').forEach(el => {
    el.addEventListener('click', function() {
        this.closest('.faq-item').classList.toggle('is-open');
    });
});

Состояние открытых вопросов в localStorage — опционально, но полезно для длинных FAQ.

Schema.org разметка для SEO

FAQ — один из немногих типов контента, для которого Google показывает rich results в поиске. Разметка FAQPage добавляет вопросы и ответы прямо в сниппет поисковой выдачи.

В шаблоне компонента генерируете JSON-LD:

$faqSchema = ['@context' => 'https://schema.org', '@type' => 'FAQPage', 'mainEntity' => []];
foreach ($arResult["ITEMS"] as $item) {
    $faqSchema['mainEntity'][] = [
        '@type' => 'Question',
        'name' => $item["NAME"],
        'acceptedAnswer' => ['@type' => 'Answer', 'text' => strip_tags($item["DETAIL_TEXT"])]
    ];
}
echo '<script type="application/ld+json">' . json_encode($faqSchema, JSON_UNESCAPED_UNICODE) . '</script>';

Ограничение Google: не более 20 вопросов в разметке на одной странице. Если FAQ большой — выводите разметку только для верхних 20 элементов по сортировке.

Поиск по FAQ

При большом количестве вопросов нужна фильтрация. Стандартный модуль поиска Битрикса (search) индексирует элементы инфоблоков автоматически — достаточно убедиться, что USE_SEARCH = Y в настройках инфоблока. Компонент bitrix:search.page выведет результаты с ограничением по инфоблоку.

Для мгновенного поиска (без перезагрузки страницы) — фильтруйте по атрибуту data-question через JS прямо в DOM: быстро, без серверных запросов, работает на несколько сотен вопросов без деградации.