Веб-сайты часто требуют контроля изменений: кто и когда редактировал элементы, добавлял новые или удалял существующие. В Битрикс для этого есть встроенный инструмент — Журнал событий.
В этой статье разберем:
-
Где найти журнал событий в админке
-
Как включить логирование изменений для инфоблоков
-
Как работать с журналом через API
-
Практические примеры фильтрации событий
-
Рекомендации по использованию
1. Где находится журнал событий?
Журнал доступен в админке по адресу:
text/bitrix/admin/event_log.php?lang=ruЛибо через меню: Настройки → Журнал событий.
Здесь отображаются все изменения на сайте:
-
Редактирование элементов инфоблоков
-
Изменения в структуре разделов
-
Действия пользователей
-
Системные события
2. Включение журналирования для инфоблоков
По умолчанию не все изменения записываются. Чтобы журнал фиксировал правки в инфоблоках, нужно:
Вариант 1. Через настройки инфоблока
-
Перейдите в Контент → Инфоблоки → Типы инфоблоков.
-
Выберите нужный инфоблок, откройте вкладку "Журнал событий".
-
Включите опции:
-
Записывать добавление элементов
-
Записывать изменение элементов
-
Записывать удаление элементов
-
Вариант 2. Программно через API
// Включение журналирования для инфоблока
CIBlock::SetPermission($iblockId, array("log" => "Y"));3. Работа с журналом через API
Основной метод для работы — CEventLog::GetList().
Базовый пример (вывод всех событий)
$rsLog = CEventLog::GetList(
array("ID" => "DESC"), // Сортировка
false, // Фильтр (false — без фильтра)
false // Постраничная навигация (false — не использовать)
);
while ($arLog = $rsLog->GetNext()) {
echo "<pre>";
print_r($arLog);
echo "</pre>";
}Полезные поля в журнале
| Поле | Описание |
|---|---|
| TIMESTAMP_X | Дата и время события |
| AUDIT_TYPE_ID | Тип события (см. таблицу ниже) |
| ITEM_ID | ID элемента (инфоблока, раздела и т. д.) |
| USER_ID | ID пользователя, который внес изменения |
| DESCRIPTION | Дополнительные данные (например, название элемента) |
Типы событий (AUDIT_TYPE_ID)
| Тип | Описание |
|---|---|
| IBLOCK_ELEMENT_ADD | Добавление элемента |
| IBLOCK_ELEMENT_EDIT | Редактирование элемента |
| IBLOCK_ELEMENT_DELETE | Удаление элемента |
| IBLOCK_SECTION_ADD | Добавление раздела |
| IBLOCK_SECTION_EDIT | Редактирование раздела |
| IBLOCK_SECTION_DELETE | Удаление раздела |
4. Фильтрация событий (примеры)
Вывод только изменений элементов конкретного инфоблока
$rsLog = CEventLog::GetList(
array("ID" => "DESC"),
array(
"MODULE_ID" => "iblock",
"AUDIT_TYPE_ID" => "IBLOCK_ELEMENT_EDIT",
"ITEM_ID" => 123 // ID элемента
)
);Поиск действий конкретного пользователя
$rsLog = CEventLog::GetList(
array("ID" => "DESC"),
array(
"USER_ID" => 1 // ID пользователя
)
);5. Рекомендации по использованию
Оптимизация хранения
Журнал может разрастаться, поэтому:
-
Настройте автоочистку (например, удалять записи старше 3 месяцев).
-
Используйте фильтрацию, чтобы не загружать лишние данные.
Альтернативные решения
-
Модуль "Аудит изменений" — расширенный журнал с детализацией.
-
Сторонние системы логирования (например, ELK Stack для больших проектов).
Безопасность
-
Ограничьте доступ к журналу только администраторам.
-
Регулярно делайте резервные копии логов.
Вывод
Журнал событий Битрикс — мощный инструмент для контроля изменений. Его можно использовать как в админке, так и через API для интеграции с другими системами.
Дополнительные материалы:
Теперь вы знаете, как отслеживать изменения на сайте и работать с журналом событий в Битрикс!