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

Битрикс получаем все свойства элемента

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

Например:

  • при переносе сайта;
  • аудите каталога;
  • настройке импорта;
  • интеграции с 1С;
  • разработке API;
  • анализе структуры инфоблока.

Ниже пример PHP-скрипта, который получает все свойства инфоблока и сохраняет их в CSV-файл.

Что выгружает скрипт

Скрипт выгружает:

  • название свойства;
  • символьный код;
  • обязательность;
  • множественность;
  • тип свойства.

PHP-скрипт выгрузки свойств инфоблока

<?php

use Bitrix\Main\Loader;

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

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

$IBLOCK_ID = 55;

$filePath = $_SERVER["DOCUMENT_ROOT"]
    . "/upload/iblock_{$IBLOCK_ID}_fields.csv";

// Открываем файл для записи
$fp = fopen($filePath, "w");

// Заголовки CSV
fputcsv(
    $fp,
    ["Название", "Код", "Обязательное", "Множественное", "Тип поля"],
    ";"
);

// Функция преобразования типа свойства
function getPropertyTypeName($prop)
{
    $types = [
        "S" => "Строка",
        "N" => "Число",
        "L" => "Список",
        "F" => "Файл",
        "E" => "Привязка к элементу",
        "G" => "Привязка к разделу"
    ];

    $baseType =
        $types[$prop["PROPERTY_TYPE"]]
        ?? $prop["PROPERTY_TYPE"];

    // Если есть пользовательский тип
    if (!empty($prop["USER_TYPE"])) {
        $baseType .= " ({$prop["USER_TYPE"]})";
    }

    return $baseType;
}

// Получаем список свойств инфоблока
$properties = CIBlockProperty::GetList(
    ["SORT" => "ASC"],
    ["IBLOCK_ID" => $IBLOCK_ID]
);

while ($prop = $properties->Fetch()) {

    $row = [
        $prop["NAME"],
        $prop["CODE"],
        ($prop["IS_REQUIRED"] === "Y" ? "да" : "нет"),
        ($prop["MULTIPLE"] === "Y" ? "да" : "нет"),
        getPropertyTypeName($prop)
    ];

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

fclose($fp);

echo "Файл успешно создан: " . $filePath;

Как работает скрипт

Скрипт:

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

ID инфоблока

В скрипте используется:

$IBLOCK_ID = 55;

Замените значение на ID своего инфоблока.

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

Файл сохраняется в директорию:

/upload/

Имя файла формируется автоматически:

iblock_55_fields.csv

Какие типы свойств определяются

Скрипт автоматически определяет:

  • строка;
  • число;
  • список;
  • файл;
  • привязка к элементу;
  • привязка к разделу.

Поддержка пользовательских типов

Если у свойства указан:

USER_TYPE

то он также будет добавлен в CSV.

Например:

Строка (HTML)

Пример результата CSV

Название;Код;Обязательное;Множественное;Тип поля
Артикул;ARTICLE;да;нет;Строка
Галерея;MORE_PHOTO;нет;да;Файл
Бренд;BRAND;нет;нет;Привязка к элементу

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

  • аудит структуры каталога;
  • документирование проекта;
  • подготовка миграций;
  • разработка интеграций;
  • настройка импорта/экспорта;
  • анализ инфоблоков;
  • работа с большими каталогами.

Как открыть CSV-файл

Полученный CSV-файл можно открыть:

  • в Excel;
  • LibreOffice Calc;
  • Google Sheets;
  • Notepad++.

Итог

С помощью CIBlockProperty::GetList() можно быстро получить все свойства инфоблока и выгрузить их в CSV-файл.

Такой подход удобен для анализа структуры Битрикс-проектов, каталогов и интеграций.

27 просмотров

Комментарии

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