Студия Евгения Кулакова
К разделу

Конструктор опросов

08 мая 2026 г.Евгений Кулаков4

«Конструктор опросов» — приложение для Битрикс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 прокси

Что под капотом

Список статей

index.php?mode=site_kb&member_id=<MID>

GET https://eugenekulakov.ru/api/kb?app=bitrix24-survey-constructor

Одна статья

index.php?mode=site_kb_article&id=<ID>&member_id=<MID>

GET https://eugenekulakov.ru/api/kb/<ID>

APP_CODE приложения = bitrix24-survey-constructor (задано в config.php). Это ключ, по которому статья «прикрепляется» к приложению.

Что сделать в админке eugenekulakov.ru (Payload CMS):

  1. Зайдите в коллекцию «База знаний» / «Knowledge Base».

  2. Создайте статью и заполните поля:

    • 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).

  3. Сохраните. Статья сразу попадёт в /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 ещё нет на сайте.

Если статья опубликована, но в приложении не видна — чек-лист

  1. Поле app/application в статье = ровно bitrix24-survey-constructor (без пробелов, без капса).

  2. Status = Published (опубликовано), а не Draft.

  3. На сайте https://eugenekulakov.ru/api/kb?app=bitrix24-survey-constructor уже видно эту статью.

  4. Сбросьте серверный кэш (команда выше) или подождите 5 минут.

  5. Перезагрузите фрейм в Битрикс24 (правый клик → «Перезагрузить кадр»).

Если на сайте API «упало»

Прокси приложения отдаёт STALE-кэш (последний успешный ответ) с заголовком X-Cache: STALE — пользователи увидят последний рабочий список вместо ошибки.

Если нужно — могу заглянуть в админку eugenekulakov.ru / Payload, чтобы убедиться что коллекция KB настроена под этот приложенный app-ключ. Скиньте скриншот настроек коллекции «База знаний» — подскажу, что именно править.