В процессе работы с сайтом на 1С-Битрикс часто возникает необходимость изменить или сбросить дату начала активности у элементов инфоблоков. Это может потребоваться при:
-
Массовом обновлении каталога товаров
-
Корректировке сроков публикации новостей
-
Исправлении ошибочно установленных дат
-
Переносе контента между разделами сайта
В этой статье мы подробно разберем, как правильно обнулить дату начала активности (DATE_ACTIVE_FROM) для элементов инфоблоков с помощью API Битрикса.
Почему важно управлять датами активности?
Поле DATE_ACTIVE_FROM выполняет несколько ключевых функций:
-
Определяет момент появления элемента на сайте
-
Позволяет автоматизировать публикацию контента по расписанию
-
В сочетании с
DATE_ACTIVE_TOсоздает временные ограничения показа
Сброс этой даты может понадобиться, когда вы хотите:
-
Сделать контент доступным немедленно
-
Убрать привязку к конкретной дате публикации
-
Исправить ошибки в настройках отображения элементов
Далее мы рассмотрим рабочий способ массового обнуления этого параметра через стандартный API Битрикса.
Когда нужно менять дату активности?
Изменение DATE_ACTIVE_FROM (даты начала показа) может потребоваться в следующих случаях:
Товары в каталоге – если нужно перезапустить период видимости
Новости и статьи – для корректировки порядка вывода
Акции и спецпредложения – если сроки изменились
Любые другие элементы инфоблоков
Как изменить дату активности (PHP-код + оптимизация)
1. Используем API Битрикс (CIBlockElement)
Для работы с элементами инфоблоков применяются методы:
-
CIBlockElement::GetList– выборка элементов -
CIBlockElement::Update– обновление параметров
2. Оптимизированный код (с фильтрацией)
<?php
if (CModule::IncludeModule("iblock")) {
$IBLOCK_ID = 4; // Замените на ID вашего инфоблока
$elements = CIBlockElement::GetList(
false,
[
"IBLOCK_ID" => $IBLOCK_ID,
"ACTIVE" => "Y", // Только активные элементы
"!DATE_ACTIVE_FROM" => false // Пропускаем элементы без даты (оптимизация)
],
false,
false,
['ID', 'NAME']
);
while ($element = $elements->GetNext()) {
$elementId = $element['ID'];
$iblockElement = new CIBlockElement;
// Устанавливаем пустую дату (можно заменить на нужную)
$iblockElement->Update($elementId, [
'DATE_ACTIVE_FROM' => '' // Сброс даты
// 'DATE_ACTIVE_FROM' => '2024-05-01 00:00:00' // Или задать новую
]);
}
echo "Даты активности обновлены!";
}
?>Почему этот код эффективен?
Фильтрация выборки – исключены элементы с пустой датой (!DATE_ACTIVE_FROM => false)
Гибкость – можно сбросить дату или установить новую
Быстрая работа – минимум запросов к базе данных
Дополнительные рекомендации
Бэкап перед запуском – на случай ошибок
Постраничная обработка – если элементов тысячи, добавьте NAV_PARAMS
Проверка прав доступа – убедитесь, что скрипт имеет права на изменение
Вывод
С помощью этого кода вы сможете легко управлять датами активности в Битрикс, что полезно для SEO, маркетинга и корректного отображения контента.