Николаев Виталий
<Разработка сайтов>
|

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

Для получения всех свойств элементов битрикс можно воспользоваться скриптом, в этом скрипте я еще записал свойства в csv файл:
<?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;