Разработка модуля FAQ для 1С-Битрикс под ключ

Разработка модуля FAQ 1С-Битрикс Представьте: клиентский каталог содержит 500 вопросов, стандартный `bitrix:catalog.list` выводит их одним списком, поиск по ответам отсутствует, а аналитика никакая. Пользователь мучительно ищет ответ, не находит и уходит к конкуренту. Мы столкнулись с таким проек
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка модуля FAQ для 1С-Битрикс под ключ
Средний
~1-2 недели

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1415
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    995
  • 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
    733
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    863
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    772
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1134

Разработка модуля FAQ 1С-Битрикс

Представьте: клиентский каталог содержит 500 вопросов, стандартный bitrix:catalog.list выводит их одним списком, поиск по ответам отсутствует, а аналитика никакая. Пользователь мучительно ищет ответ, не находит и уходит к конкуренту. Мы столкнулись с таким проектом на одном из наших кейсов — интернет-магазин с сотнями вопросов по доставке, оплате и возвратам. Стандартный инфоблок не справлялся: страница загружалась медленно, редактор тратил часы на ручную сортировку, а менеджеры получали десятки одинаковых обращений в чат. Мы разработали специализированный модуль, который решает эти проблемы. Наш опыт работы с Битриксом — более 10 лет и 20+ реализованных проектов. Модуль использует ORM (объектно-реляционное отображение, Wikipedia) для работы с данными и поддерживает полнотекстовый поиск.

Ограничения стандартного инфоблока для FAQ

Инфоблок с полями «вопрос» и «ответ» — быстрое решение, но оно не масштабируется. Основные боли:

  • Нет полнотекстового поиска по ответам — поиск Битрикс ищет только по заголовкам страниц.
  • Нет группировки по категориям с аккордеоном — все вопросы вывалены одним списком.
  • Нет аналитики: какие вопросы ищут, какие не помогают.
  • Нет формы «Задать вопрос» прямо на странице.

Кастомный модуль закрывает все эти пробелы. Он включает ORM-модели, AJAX-поиск с подсветкой, голосование, микроразметку и отчёты.

Как мы решаем эти проблемы

Мы строим модуль на ORM Битрикс (QuestionTable, CategoryTable, SearchLogTable). Это даёт строгую типизацию, события и удобную выборку. Поиск реализован через AJAX с фильтрацией по %QUESTION% и %ANSWER%, а для больших нагрузок — полнотекстовый индекс MySQL/PostgreSQL.

Как ускорить поиск при тысяче вопросов?

Стандартный поиск через %LIKE% в MySQL тормозит при 1000+ записей. В модуле мы реализуем два уровня:

  1. Быстрый AJAX-поиск — запрос через QuestionTable::getList() с фильтром %QUESTION% и %ANSWER% (до 1000 записей).
  2. Полнотекстовый индекс — при переходе на PostgreSQL (или MySQL 5.7+) создаётся колонка fts_vector с tsvector, обновляемая триггером. Поиск через MATCH ... AGAINST работает в 10 раз быстрее LIKE.
public function search(string $query): array { $query = mb_strtolower(trim($query)); SearchLogTable::add(['QUERY' => $query]); $result = QuestionTable::getList([ 'select' => ['ID', 'QUESTION', 'ANSWER', 'CATEGORY_ID'], 'filter' => [ 'IS_ACTIVE' => 'Y', [ 'LOGIC' => 'OR', '%QUESTION' => $query, '%ANSWER' => $query, ], ], 'limit' => 10, 'order' => ['IS_FEATURED' => 'DESC', 'VIEWS' => 'DESC'], ])->fetchAll(); return array_map(fn($q) => $this->highlight($q, $query), $result); } 

Что даёт микроразметка Schema.org?

Микроразметка FAQPage (Wikipedia: Schema.org) генерируется автоматически для каждого вопроса. Это позволяет Яндексу и Google выводить ответы прямо в сниппете, увеличивая кликабельность. Реализация — вставка itemscope и itemprop в HTML. Мы интегрировали её в компонент вывода, не требующий дополнительных настроек. Закажите модуль с микроразметкой и получите рост органического трафика.

Что входит в разработку модуля?

Компонент Описание
ORM-модели Таблицы категорий, вопросов, голосов, лога поиска
AJAX-поиск Поиск по вопросам и ответам с подсветкой совпадений
Аккордеон Группировка по категориям на чистом CSS, без JS
Счётчик просмотров Инкремент через AJAX
Голосование «помогло/не помогло» Статистика для сортировки и выявления проблемных ответов
Форма «Задать вопрос» Сохранение черновика для публикации
Микроразметка Schema.org FAQPage Генерируется автоматически для всех вопросов
Аналитика Отчёты по пустым поискам, популярным вопросам и негативным голосам
Административный интерфейс Управление категориями, вопросами, просмотр статистики

Сроки разработки

Этап Срок
ORM-таблицы, модель категорий и вопросов 0.5 дня
AJAX-поиск с подсветкой 1 день
Аккордеон-компонент, Schema.org 1 день
Счётчики просмотров, голосование 0.5 дня
Форма «задать вопрос» 0.5 дня
Аналитика и отчёты 1 день
Административный интерфейс 1 день
Тестирование 0.5 дня
Итого 6 рабочих дней

Подключение полнотекстового поиска через PostgreSQL tsvector добавляет +1 день.

Пример реализации

При открытии вопроса счётчик инкрементируется:

QuestionTable::update($questionId, ['VIEWS' => new \Bitrix\Main\DB\SqlExpression('VIEWS + 1')]); 

После прочтения пользователь голосует «Это помогло» или «Не помогло». Статистика голосов используется для сортировки (полезные вопросы выше) и для переписывания непонятных ответов.

Аккордеон реализован на details/summary — индексируется поисковиками, не требует JavaScript. При наличии ?q=slug-voprosa секция раскрывается автоматически.

Микроразметка FAQPage генерируется автоматически:

<div itemscope itemtype="https://schema.org/FAQPage"> <div itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"> <h3 itemprop="name">Как оформить возврат?</h3> <div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"> <div itemprop="text">Для оформления возврата...</div> </div> </div> </div> 

Аналитика и отчёты

На основе b_vendor_faq_search_log мы строим отчёты:

  • Топ запросов без результатов — что ищут, но не находят.
  • Популярные вопросы по просмотрам за период.
  • Вопросы с высоким процентом «не помогло».

Эти данные помогают редактору улучшать контент.

Пошаговая реализация полнотекстового поиска

  1. Создайте колонку fts_vector в таблице вопросов.
  2. Напишите триггер, обновляющий fts_vector при вставке/обновлении записи.
  3. Замените %LIKE% на MATCH ... AGAINST в методе search().
  4. Настройте релевантность через веса полей (например, вопрос важнее ответа).
  5. Протестируйте скорость на 10 000 записей.

Почему выбирают нас

  • Официальная документация 1С-Битрикс подтверждает лучшие практики, которые мы используем.
  • Опыт 10+ лет в разработке на Битрикс и Битрикс24.
  • Сертифицированные специалисты — гарантируем качество кода и соблюдение сроков.
  • Прозрачный процесс — вы всегда видите статус проекта.
  • Поддержка 30 дней после сдачи — бесплатное обучение администраторов.

Оцените ваш проект — свяжитесь с нами для консультации. Рассчитаем стоимость и сроки. Получите персональное предложение уже сегодня.