Меню

Пошаговая обработка большого количества элементов инфоблока, быстро скрипт

RSS
Пошаговая обработка большого количества элементов инфоблока, быстро скрипт, Иногда нужно что-то массово сделать с элементами инфоблока, если их много можно упереться в лимиты. Пошаговый скрипт для обработки элементов.
 
Это быстрый черновик для будущей, развернутой заметки в блог.

Иногда нужно что-то массово сделать с элементами инфоблока, если их много можно упереться в лимиты.
Пошаговый скрипт для обработки элементов.

С помощью этого скрипта можно обработать элементы пошагово.
Размещаете скрипт на странице и открываете ее в браузере.
Код
<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");

use Bitrix\Main\Loader;
Loader::includeModule("iblock");

$ibId = 5; // Ваш инфоблок
$elsCount = 10; // По сколько элементов обрабатывать за шаг
$lastId = $_POST['LAST_ID'];
$i = 0;
$ibElements = CIBlockElement::GetList(
    array('ID' => 'ASC'),
    array(
        'IBLOCK_ID' => $ibId,
        '>ID' => $lastId
    ),
    false,
    array(
        'nTopCount' => $elsCount
    ),
    array(
      // Тут указываете поля элемента, которые нужны для обработки
      // Для примера, нужен только ID
      'ID'
    )
);
while ($dbRes = $ibElements->Fetch()) {
    // Тут пишите свой обработчик элементов
    // Для примера удаление элементов
    CIBlockElement::Delete($dbRes['ID']);
    $lastId = $dbRes['ID'];
$i++;
}
?>
<form action="" method="POST">
        <input type="text" name="LAST_ID" value="<?echo $lastId > 2 ? $lastId : '1';?>">
        <button type="submit" id="go">Go</button>
</form>
<? if ($i > 1) {?>
    <script>
        $('#go').click();
    </script>
<?
} else {
    ?>
    Элементы обработаны
    <?php
} ?>

Скрипт написан по быстрому.

Смысл в том что, пошагово отправляем на страницу ID последнего обработанного элемента элемента
и на каждом шаге обновляем этот ID получая по nTopCount элементов за шаг.
Стартуем c 1-го ID, даже  если такого ID нет, счетчик сместится до ближайшего существующего.

В примере, пошагово удаляются элементы инфоблока. Но вы можете использовать это для любой обработки элементов.
Что-то перезаписать в них, изменить, обновить цены, остатки и так далее. В общем, что угодно.
Изменено: Михаил Базаров - 27.05.2024 15:43:47
Читают тему
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 
Поблагодарить и поддержать:
Или подписаться на boosty канал: Видео на Bst

Блог-note: заметки разработчика

GIT-репозиторий на собственном сервере с веб-интерфейсом: Gitea - аналог GitHub

Задача: Развернуть git-репозиторий на собственном сервере с помощью Gitea — для ведения проектов, с веб-интерфейсом и по...

Показать пользователю накопительную скидку за все сделанные заказы, из модуля маркетинга

Задача: показать, текущему авторизованному, пользователю сумму всех выполненных заказов и процент накопительной скидки- ...

Основные функции вывода в шаблонах Битрикс

Знаю, что все их знают. Но иногда не бывает лишним собрать все самое используемое в одну кучку. Ведь у каждого бывают мо...

Создание агента в 1С-Битрикс, на реальном примере

Задача: Каждый час нужно обновлять свойство элементов/товаров с типом строка "В наличии", вписывать в него либ...

Заполнить свойство заказа выбранным пунктом самовывоза и передать в 1С

Задача: При оформлении заказа пользователь может выбрать пункт самовывоза (склады магазина). Нужно заполнить сво...

Прямое открытие мессенджеров по ссылке из приложения Apache Cordova

Задача: При клике по ссылкам на Telegram и WhatsApp в мобильном приложении необходимо сразу открывать мессенджеры без пр...

Работа с HTTP-запросами в Bitrix: Обзор возможностей класса \Bitrix\Main\HttpRequest

Класс \Bitrix\Main\HttpRequest, является наследником класса Request, представляет собой мощный инструмент для работы с д...

Добавление не существующего товара в корзину и заказ, 1С-Битрикс

Задача: нужно добавить в корзину товар, которого не существует в каталоге, с возможностью задать ему произвольные назван...

Помечаем новинки лейблом в каталоге битрикс

Достаточно часто, при разработке каталога товаров или интернет магазина на системе управления Битрикс, встает задача как...