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







