Модуль «Опросы, голосования» (vote) позволяет собирать мнения посетителей и сотрудников: от простого «да/нет» до многовопросных анкет. В этой статье разберём настройку голосований в админке и вывод формы и результатов на публичные страницы.
Структура модуля: каналы, группы и вопросы
Модуль vote организует данные иерархически, поэтому перед созданием первого голосования важно понимать структуру.
- Каналы голосований — верхний уровень, логические разделы (например, «Опросы на сайте» и «Внутренние опросы для сотрудников»). У каждого канала свои права доступа.
- Группы вопросов (опросы) — конкретное голосование внутри канала, с датами начала и окончания активности.
- Вопросы — отдельные пункты внутри опроса; их может быть несколько.
- Варианты ответов — привязаны к вопросу; тип поля определяет способ голосования.
Такая вложенность позволяет в одном опросе задать сразу несколько вопросов разного типа и выводить их единой формой.
Создание голосования в админке
Перейдите в Сервисы → Опросы, голосования → Голосования. Если каналов ещё нет, сначала создайте канал на вкладке Каналы.
- Нажмите «Добавить голосование» и выберите канал.
- На вкладке Голосование задайте заголовок, период активности (даты начала и окончания) и признак активности.
- Укажите параметры повторного голосования: разрешить ли голосовать повторно и через какой интервал (в часах).
- Настройте способ уникальности голоса — по
Cookie, поIP-адресу, по авторизованному пользователю или их комбинации. - Перейдите к добавлению вопросов: введите текст вопроса, при необходимости описание и изображение.
- Для каждого вопроса добавьте варианты ответов и выберите тип поля.
- Сохраните голосование.
Порядок вопросов и вариантов задаётся полем Сортировка — меньшее значение выводится выше.
Типы полей для ответов
Тип поля определяет, как посетитель отвечает на вопрос. Модуль поддерживает несколько вариантов.
| Тип поля | Поведение | Когда применять |
|---|---|---|
| Переключатель (radio) | Один вариант из нескольких | Классический опрос «выберите один ответ» |
| Флажки (checkbox) | Несколько вариантов одновременно | «Отметьте всё, что подходит» |
| Выпадающий список | Один вариант, компактно | Длинные списки вариантов |
| Список с прокруткой | Один или несколько вариантов | Экономия места при многих пунктах |
| Поле ввода | Свободный текст | Свой вариант ответа, комментарий |
Для варианта ответа можно включить признак «Поле для ввода» — тогда рядом с готовым вариантом появится текстовое поле для уточнения.
Права доступа к голосованиям
Права назначаются на уровне канала. Откройте канал на редактирование и перейдите на вкладку Доступ.
- Голосование запрещено — группа пользователей не видит форму.
- Голосование разрешено — можно отдать голос.
- Просмотр результатов — доступ к статистике без права голоса.
- Полный доступ — управление голосованиями канала.
Чтобы результаты видели только сотрудники, ограничьте право просмотра результатов группой Администраторы или отдельной группой, а группе Все пользователи (в том числе неавторизованные) оставьте только право голосования.
Вывод формы и результатов на страницу
Голосования выводятся публичными компонентами модуля vote. Разместите нужный компонент на странице через визуальный редактор (вкладка Компоненты → Опросы, голосования).
vote.current— вывод текущего активного голосования (форма). Автоматически показывает форму или результаты в зависимости от того, голосовал ли посетитель.vote.result— вывод результатов конкретного голосования по его ID.vote.list— список голосований канала со ссылками на детальные страницы.
Ключевые параметры компонента:
- Канал (CHANNEL_SID) — символьный код канала, из которого берутся голосования.
- ID голосования (VOTE_ID) — для вывода конкретного опроса вместо активного.
- Показывать результаты — выводить ли статистику после голосования.
- Кэширование — время жизни кэша; для результатов в реальном времени уменьшите или отключите.
Результаты по умолчанию показываются в виде диаграммы (полосы) с процентами и количеством голосов по каждому варианту.
Частые ошибки
Проблемы при работе с голосованиями чаще всего связаны с настройками активности, прав и кэша.
- Форма не отображается. Проверьте, что голосование активно, дата начала уже наступила, а дата окончания ещё не прошла. Также убедитесь, что у группы посетителя есть право «Голосование разрешено» в канале.
- Результаты не обновляются. Виновато кэширование компонента — уменьшите время кэша или включите очистку кэша при голосовании.
- Один посетитель голосует многократно. Проверьте настройку уникальности голоса: контроль только по Cookie легко обойти, для строгости добавьте контроль по авторизации.
- Пустой список в компоненте. Указан неверный символьный код канала (CHANNEL_SID) — сверьте его в свойствах канала.
- Результаты видят все. Ограничьте право «Просмотр результатов» нужной группой на вкладке «Доступ» канала.
Итог
Настройка голосований в 1С-Битрикс сводится к трём шагам: создать канал с нужными правами, добавить голосование с вопросами и вариантами ответов, вывести форму компонентом vote.current или результаты компонентом vote.result.
Обращайте внимание на период активности, способ контроля уникальности голоса и кэширование компонентов — именно эти параметры чаще всего влияют на то, корректно ли работает и отображается голосование. Для внутренних опросов сотрудников используйте отдельный канал с ограниченными правами доступа.