Модуль «Календарь событий» в 1С-Битрикс хранит события в виде записей с датами, категориями и правами доступа. Разберём, как создать категории и корректно вывести события на публичную часть сайта.
Что такое категории в календаре событий
Категория — это способ группировки событий по смыслу: например, «Вебинары», «Конференции», «Внутренние мероприятия». Каждое событие обязательно относится хотя бы к одной категории, а на публичной части сайта категории используются как фильтр вывода.
Категория задаёт три вещи:
- Идентификатор и название — по ID компонент отбирает события для вывода;
- Сортировку — порядок отображения в списках админки и на сайте;
- Права доступа — какие группы пользователей видят и редактируют события категории.
Модуль calendar должен быть установлен и активен. Проверить это можно в разделе Настройки → Настройки продукта → Модули.
Как создать категорию событий
Категории создаются в административной части. Порядок действий:
- Перейдите в Сервисы → Календарь событий → Категории событий.
- Нажмите «Добавить категорию» на контекстной панели.
- Заполните поле «Название» — оно отображается пользователям.
- Укажите «Сортировку» (индекс сортировки, по умолчанию 100 — чем меньше число, тем выше в списке).
- При необходимости задайте цвет категории для визуального выделения событий в календаре.
- На вкладке «Доступ» назначьте права группам пользователей.
- Сохраните изменения.
После сохранения категория получит числовой ID — запомните его, он понадобится при настройке компонента вывода.
Права доступа к категориям
Права назначаются на уровне категории для групп пользователей. Уровни доступа:
| Уровень | Код | Что разрешает |
|---|---|---|
| Доступ закрыт | D | Категория и её события не видны |
| Просмотр | R | Просмотр событий категории |
| Добавление | W | Добавление и редактирование своих событий |
| Полный доступ | X | Редактирование всех событий и настроек категории |
По умолчанию группе «Все пользователи (в том числе неавторизованные)» обычно достаточно уровня R, чтобы события отображались на сайте для гостей. Если события не выводятся анонимным посетителям, проверьте именно эту настройку.
Вывод событий на сайт компонентами
За вывод отвечают визуальные компоненты из набора «Календарь событий». Основные:
calendar.list— список ближайших или всех событий;calendar.grid— события в виде календарной сетки (месяц);calendar.detail— детальная страница одного события.
Чтобы разместить список событий:
- Откройте нужную страницу в визуальном редакторе публичной части.
- На панели компонентов найдите раздел «Сервисы → Календарь событий».
- Перетащите компонент списка на страницу.
- В параметрах укажите категории для вывода (по ID), число событий и период.
- Задайте шаблон компонента и сохраните страницу.
Если нужно показать события только одной категории, передайте её ID в параметр отбора; для нескольких категорий укажите массив идентификаторов.
Фильтрация и сортировка при выводе
Компоненты позволяют управлять составом и порядком событий без правки кода:
- По категориям — параметр отбора
CATEGORY_IDограничивает список выбранными категориями; - По периоду — вывод только будущих событий или событий за конкретный месяц;
- По сортировке — обычно по дате начала (
ACTIVE_FROM) или по индексу сортировки категории; - Постраничная навигация — включается параметром постраничного вывода при большом числе событий.
Кэширование компонента желательно оставить включённым — при добавлении события кэш сбрасывается автоматически, а нагрузка на базу снижается.
Частые ошибки
Типичные проблемы при настройке категорий и вывода:
- События не видны гостям. Не выдан уровень
Rгруппе «Все пользователи» на категорию — проверьте вкладку «Доступ». - Компонент показывает пустой список. Указан неверный ID категории или события находятся вне выбранного периода вывода.
- Изменения не отображаются. Включено кэширование, а кэш не сбросился — очистите кэш компонента или всего сайта в Настройки → Настройки продукта → Автокэширование.
- Неверный порядок событий. Перепутана сортировка: индекс категории и сортировка по дате события конфликтуют — задайте одно правило в параметрах компонента.
- Детальная страница не открывается. Не настроен путь к странице детального просмотра или отсутствует компонент
calendar.detailна этой странице.
Итог
Работа с «Календарём событий» строится по простой схеме: создать категории в разделе Сервисы → Календарь событий, назначить им права доступа и вывести события на сайт компонентами calendar.list, calendar.grid или calendar.detail.
Ключевые моменты: события всегда привязаны к категории, видимость для посетителей зависит от прав на категорию, а порядок и состав вывода настраиваются параметрами компонента без правки кода. Проверяйте права и кэш — на них приходится большинство проблем.