Конструктор опросов
«Конструктор опросов» — приложение для Битрикс24, в котором админ портала создаёт внутренние опросы и назначает их сотрудникам, а ответы агрегируются в сводную аналитику с подсчётом баллов.
5 типов вопросов:
Текст — свободная строка/абзац
Чекбокс — Да/Нет, веса задаются отдельно (можно отрицательные)
Число — произвольное значение × коэффициент
Шкала — кнопки 1–10 / 1–5 (или любой диапазон до 20 делений) × коэффициент
Выбор — несколько вариантов с весом каждого; режим «один из» (radio) или «несколько» (checkbox)
Что считает приложение: для каждого респондента — суммарный балл (взвешенный по всем ответам); для опроса в целом — сводный отчёт (min, max, среднее, медиана, гистограмма распределения по интервалам), плюс по каждому вопросу свой блок аналитики (распределение делений шкалы, процент «Да/Нет», топ выбранных опций, текстовые ответы списком). Есть выгрузка в CSV.
Доступы: установщик приложения и любой администратор портала (user.admin === true) видят вкладки «Опросы / Мне назначены / База знаний / О приложении». Обычный сотрудник — «Мои опросы / База знаний / О приложении» и проходит только то, что ему назначили.
Дизайн — единая дизайн-система студии (/var/www/shared/b24app.css), светлая/тёмная темы синхронизируются на сервере (per-portal).
Как настроить раздел «База знаний»
Где живут статьи: на сайте eugenekulakov.ru (Payload CMS). Приложение тянет их через прокси-эндпоинты:
Что | URL прокси | Что под капотом |
|---|---|---|
Список статей |
|
|
Одна статья |
|
|
APP_CODE приложения = bitrix24-survey-constructor (задано в config.php). Это ключ, по которому статья «прикрепляется» к приложению.
Что сделать в админке eugenekulakov.ru (Payload CMS):
Зайдите в коллекцию «База знаний» / «Knowledge Base».
Создайте статью и заполните поля:
Title — заголовок (показывается в карточке и в шапке статьи)
Excerpt — короткая аннотация (1–2 строки в карточке)
Category — категория («Настройка», «FAQ», «Гайд» и т. п.) — отображается над заголовком
Content — основной HTML (Lexical/Slate-редактор Payload). Можно использовать
<h2>/<h3>/<p>/<ul>/<a>/<img>/<code>/<pre>. Скрипты, iframe, формы фронт вырежет санитайзером.Slug — человеко-читаемый URL-фрагмент (
nastroika-vesovи т. п.). Должен содержать хотя бы одну букву/цифру, иначе кнопка «Открыть на сайте ↗» в просмотрщике скроется (защита от пустых slug/kb/--).App / Application — обязательно укажите
bitrix24-survey-constructor. Это самое важное поле — без него статья не появится в нашем приложении. Конкретное название поля зависит от настройки Payload-коллекции (это либоapp: 'bitrix24-survey-constructor', либо many-to-many связь с коллекцией Apps).Status / Published — поставьте Published (черновики не отдаются публичным API).
Сохраните. Статья сразу попадёт в
/api/kb?app=bitrix24-survey-constructor.
Когда обновление появится в приложении
На сервере прокси кэширует ответы 5 минут в
/var/www/b24-oprosy/data/cache_site_kb_*.json.В браузере мы шлём
Cache-Control: no-store— кэш браузера не мешает.Хотите ускорить — удалите кэш на сервере:
ssh eugene@85.239.52.217 "rm -f /var/www/b24-oprosy/data/cache_site_kb_*.json"
Проверка, что статьи реально приходят
curl 'https://oprosy.flow-claude-expert.ru/index.php?mode=site_kb&member_id=6def0e0bb05ac6fd1de52a9d75e2fd20'Должен вернуться JSON {"app":"bitrix24-survey-constructor","items":[{...}]}. Сейчас items: [] — это ожидаемо, статей с этим app ещё нет на сайте.
Если статья опубликована, но в приложении не видна — чек-лист
Поле
app/applicationв статье = ровноbitrix24-survey-constructor(без пробелов, без капса).Status = Published (опубликовано), а не Draft.
На сайте
https://eugenekulakov.ru/api/kb?app=bitrix24-survey-constructorуже видно эту статью.Сбросьте серверный кэш (команда выше) или подождите 5 минут.
Перезагрузите фрейм в Битрикс24 (правый клик → «Перезагрузить кадр»).
Если на сайте API «упало»
Прокси приложения отдаёт STALE-кэш (последний успешный ответ) с заголовком X-Cache: STALE — пользователи увидят последний рабочий список вместо ошибки.
Если нужно — могу заглянуть в админку eugenekulakov.ru / Payload, чтобы убедиться что коллекция KB настроена под этот приложенный app-ключ. Скиньте скриншот настроек коллекции «База знаний» — подскажу, что именно править.