Битрикс получаем все свойства элемента
Иногда в 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-файл.
Такой подход удобен для анализа структуры Битрикс-проектов, каталогов и интеграций.
Комментарии