Николаев Виталий
Блог веб-разработчика: Битрикс, PHP, Python, Linux и SEO
Битрикс Битрикс
27.08.2025

Битрикс выгрузить все элементы вместе со свойствами в файл

Иногда нужно быстро выгрузить все элементы инфоблока 1С-Битрикс в CSV-файл для анализа, переноса данных или резервной копии.

Ниже пример PHP-скрипта, который выгружает:

  • ID элемента;
  • название элемента;
  • все активные свойства инфоблока;
  • файловые свойства;
  • множественные свойства.

Скрипт экспорта элементов инфоблока в CSV

<?php
use Bitrix\Main\Loader;

require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");

if (!Loader::includeModule("iblock")) {
    die("Модуль Инфоблоки не подключен");
}

$IBLOCK_ID = 55;

$FILE_PATH = $_SERVER["DOCUMENT_ROOT"] . "/upload/export_iblock_{$IBLOCK_ID}.csv";

// Получаем список всех свойств инфоблока
$arProps = [];

$rsProps = CIBlockProperty::GetList(
    ["SORT" => "ASC"],
    ["IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y"]
);

while ($arProp = $rsProps->Fetch()) {
    $arProps[$arProp["CODE"]] = $arProp;
}

// Заголовки для CSV: ID, NAME + все свойства
$headers = ["ID", "NAME"];

foreach ($arProps as $code => $prop) {
    $headers[] = $prop["CODE"];
}

$fp = fopen($FILE_PATH, "w");

fputcsv($fp, $headers, ";");

// Выбираем элементы инфоблока
$arSelect = ["ID", "IBLOCK_ID", "NAME"];

$arFilter = [
    "IBLOCK_ID" => $IBLOCK_ID,
    "ACTIVE" => "Y"
];

$res = CIBlockElement::GetList(
    ["ID" => "ASC"],
    $arFilter,
    false,
    false,
    $arSelect
);

while ($arItem = $res->GetNextElement()) {

    $fields = $arItem->GetFields();

    $props = $arItem->GetProperties();

    $row = [
        $fields["ID"],
        $fields["NAME"]
    ];

    foreach ($arProps as $code => $propInfo) {

        $value = $props[$code]["VALUE"];

        if (empty($value)) {
            $row[] = "";
            continue;
        }

        // Если свойство — файл
        if ($propInfo["PROPERTY_TYPE"] === "F") {

            if (is_array($value)) {

                $filePaths = [];

                foreach ($value as $fileId) {

                    $filePath = CFile::GetPath($fileId);

                    if ($filePath) {
                        $filePaths[] = $filePath;
                    }
                }

                $row[] = implode(",", $filePaths);

            } else {

                $row[] = CFile::GetPath($value);
            }
        }

        // Если множественное свойство
        elseif ($propInfo["MULTIPLE"] === "Y" && is_array($value)) {

            $row[] = implode(",", $value);
        }

        // Обычное свойство
        else {

            $row[] = $value;
        }
    }

    fputcsv($fp, $row, ";");
}

fclose($fp);

echo "Экспорт завершен. Файл: " . $FILE_PATH;

Что делает скрипт

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

В результате создается файл:

/upload/export_iblock_55.csv

Где 55 — ID инфоблока.

Настройка ID инфоблока

ID нужного инфоблока указывается в переменной:

$IBLOCK_ID = 55;

Если нужно выгрузить другой инфоблок, достаточно изменить это значение.

Куда сохраняется CSV-файл

Путь к файлу задается здесь:

$FILE_PATH = $_SERVER["DOCUMENT_ROOT"] . "/upload/export_iblock_{$IBLOCK_ID}.csv";

После выполнения скрипта CSV-файл появится в папке:

/upload/

Какие данные выгружаются

В CSV попадают:

  • ID элемента;
  • NAME элемента;
  • все активные свойства инфоблока;
  • пути к файлам из файловых свойств;
  • значения множественных свойств через запятую.

Обработка файловых свойств

Если свойство имеет тип файл, скрипт получает путь к файлу через:

CFile::GetPath($fileId)

Для множественных файловых свойств пути объединяются через запятую.

Обработка множественных свойств

Если свойство множественное, значения объединяются в одну строку:

implode(",", $value)

Это позволяет корректно записать несколько значений в одну ячейку CSV-файла.

Когда пригодится такой экспорт

  • перенос данных между сайтами;
  • резервное копирование элементов инфоблока;
  • анализ свойств в Excel;
  • массовая проверка данных;
  • подготовка к миграции сайта;
  • выгрузка каталога или блога.

Итог

Такой скрипт позволяет быстро выгрузить элементы инфоблока Битрикс в CSV-файл без настройки дополнительных модулей и сложных импортов.

Его удобно использовать как основу для собственных задач экспорта, миграции и анализа данных.

46 просмотров

Комментарии

Где заказы?
Почему у одних компаний очередь из клиентов, а у других пустой сайт и тишина?
Телеграм канал «Где заказы?» — про продажи, сайты и ошибки бизнеса на реальных примерах. Подписаться