Настройка базы знаний на 1С-Битрикс
База знаний отличается от FAQ не только объёмом — это иерархическая структура документации с полнотекстовым поиском, перекрёстными ссылками и навигацией. На Битриксе такой раздел строится либо на инфоблоках с глубокой вложенностью разделов, либо на модуле learning (есть в редакциях Business и выше).
Модуль learning vs инфоблоки: что выбрать
Модуль bitrix:learning изначально создан для онлайн-курсов, но его можно адаптировать под базу знаний. Он даёт готовую иерархию (курс → урок), встроенный поиск и права доступа. Минус — жёсткая структура и устаревший интерфейс администрирования.
Инфоблоки гибче. Создаёте инфоблок knowledge_base с вложенными разделами на 3-4 уровня: Продукт → Категория → Тема → Статья. Разделы b_iblock_section поддерживают неограниченную глубину вложенности через поле IBLOCK_SECTION_ID. Для базы знаний с сотнями статей это оптимально.
Свойства элемента-статьи:
-
RELATED_ARTICLES— типПривязка к элементам, множественное. Для блока «Смотрите также» -
TAGS— типСтрока, множественное (или стандартные теги Битрикса черезTAGSвb_iblock_element) -
HELPFUL_YES/HELPFUL_NO— типЧисло. Счётчики голосов «Статья помогла?» -
LAST_UPDATED— дата последнего обновления контента (отдельно от системногоTIMESTAMP_X)
Иерархическая навигация и breadcrumbs
Навигация — критичная часть базы знаний. Пользователь должен понимать, где он находится, и быстро переходить к соседним статьям.
Для хлебных крошек Битрикс умеет строить путь автоматически через CIBlockSection::GetNavChain(). В компоненте детального просмотра bitrix:news.detail хлебные крошки добавляются через $APPLICATION->SetTitle() и $APPLICATION->AddChainItem() прямо в template.php.
Боковая навигация с деревом разделов — через bitrix:menu с режимом bitrix:menu.sections или через кастомную выборку CIBlockSection::GetList() с параметрами SECTION_ID текущего раздела. Для дерева на 3+ уровней используйте рекурсивный вывод или готовый класс CIBlockSectionTree.
Полнотекстовый поиск
Стандартный поиск Битрикса через search хорошо работает для базы знаний. Настройки индексирования: в параметрах инфоблока установите USE_SEARCH = Y, укажите поля для индексации (название + детальный текст). Переиндексация запускается через /bitrix/admin/search_reindex.php.
Для фасетного поиска по тегам и разделам — комбинируйте bitrix:search.page с GET-параметрами фильтрации. Компонент bitrix:search.page принимает параметр arrFILTER_iblock_id для ограничения поиска по конкретному инфоблоку.
Если стандартного поиска не хватает (много статей, нужен поиск с учётом морфологии), рассмотрите интеграцию со Sphinx или Elasticsearch через события OnSearchIndex и OnSearchReindex. Это требует дополнительной инфраструктуры, но даёт качественно иной поиск.
Контроль версий и история изменений
Для внутренней базы знаний с несколькими редакторами нужна история изменений статей. Модуль main Битрикса имеет встроенное версионирование для инфоблоков — включается в настройках инфоблока (VERSIONING = Y). История хранится в таблице b_iblock_element_version.
При включённом версионировании каждое сохранение элемента создаёт запись в истории. Редактор может откатиться к предыдущей версии через административный интерфейс. Для нагруженных баз знаний с частыми правками настройте ограничение хранимых версий — по умолчанию хранятся все, что раздувает таблицу.
Права доступа к разделам
Базы знаний часто имеют публичную и приватную части. Права на разделы инфоблока настраиваются через CIBlock::SetPermission() на уровне групп пользователей. Приватные разделы требуют проверки в компоненте — стандартные компоненты bitrix:news.* уважают права инфоблока автоматически.







