Назад

Изменение даты начала активности элементов в Битрикс

Главная
Блог
Изменение даты начала активности элементов в Битрикс

В процессе работы с сайтом на 1С-Битрикс часто возникает необходимость изменить или сбросить дату начала активности у элементов инфоблоков. Это может потребоваться при:

  • Массовом обновлении каталога товаров

  • Корректировке сроков публикации новостей

  • Исправлении ошибочно установленных дат

  • Переносе контента между разделами сайта

В этой статье мы подробно разберем, как правильно обнулить дату начала активности (DATE_ACTIVE_FROM) для элементов инфоблоков с помощью API Битрикса.

Почему важно управлять датами активности?

Поле DATE_ACTIVE_FROM выполняет несколько ключевых функций:

  1. Определяет момент появления элемента на сайте

  2. Позволяет автоматизировать публикацию контента по расписанию

  3. В сочетании с 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, маркетинга и корректного отображения контента.


Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Читайте по теме
Все статьи
Нужен надежный исполнитель?
Разрабатываем сайты, выполняем миграцию на Битрикс, дорабатываем функционал, сопровождаем проекты, а также занимаемся поисковым продвижением и комплексным маркетингом
Получить консультацию
Все статьи