3 октября 2023
91

Выгрузка элементов в CSV

Для выгрузки всех элементов всех инфоблоков в CSV с полями XML_ID и DETAIL_PAGE_URL воспользуйтесь следующим PHP кодом:

Пример кода:

require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");

$filename = "elements.csv";
$delimiter = ";";

$csvFile = fopen($filename, 'w');
fwrite($csvFile, implode($delimiter, ['XML_ID', 'DETAIL_PAGE_URL']) . PHP_EOL);

$rsIBlocks = CIBlock::GetList();
while ($arIBlock = $rsIBlocks->Fetch()) {
    $rsElements = CIBlockElement::GetList([], ['IBLOCK_ID' => $arIBlock['ID']]);
    while ($arElement = $rsElements->Fetch()) {
        $xmlId = $arElement['XML_ID'];
        $detailPageUrl = CIBlock::ReplaceDetailUrl($arElement['DETAIL_PAGE_URL'], $arElement, false, "E");

        fwrite($csvFile, implode($delimiter, [$xmlId, $detailPageUrl]) . PHP_EOL);
    }
}

fclose($csvFile);

Сохраните данный код в файл с расширением `.php`, поместите его в корневую директорию вашего проекта и запустите его в браузере.

Теперь в файле `elements.csv` будут содержаться все элементы всех инфоблоков с полями `XML_ID` и конкретно сгенерированным ЧПУ для `DETAIL_PAGE_URL`.

Выгрузка разделов в CSV

require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule('iblock');

// Создаем CSV файл для записи данных
$csvFile = "output.csv";
$fileHandler = fopen($csvFile, 'w');

// Заголовки столбцов
$headers = array("XML_ID", "SECTION_PAGE_URL");
fputcsv($fileHandler, $headers);

// Получаем все инфоблоки
$iblockResult = CIBlock::GetList();
while ($iblock = $iblockResult->Fetch()) {
    // Получаем все разделы инфоблока
$rsSections = \Bitrix\Iblock\SectionTable::getList([
    'select' => ['XML_ID', 'ID', 'IBLOCK_ID', 'IBLOCK_SECTION_ID', 'SECTION_PAGE_URL' => 'IBLOCK.SECTION_PAGE_URL']
]);

    while ($section = $rsSections->fetch()) {
        // Генерируем ЧПУ для SECTION_PAGE_URL
        $section["SECTION_PAGE_URL"] = CIBlock::ReplaceDetailUrl($section['SECTION_PAGE_URL'], $section, false, 'S');

        // Записываем данные в CSV файл
		fputcsv($fileHandler, array($section["XML_ID"], $section["SECTION_PAGE_URL"]));
    }
}

// Закрываем файл
fclose($fileHandler);

// Конец выполнения скрипта
echo "Выгрузка завершена!";
Позвоните нам!
Личный кабинет
Вам будет доступна история заказов, управление рассылками, свои цены и скидки для постоянных клиентов и прочее.
Ваш логин
Ваш пароль