Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Как создать инфоблок программно через D7 ORM?

Вопрос задан: 3 июня 2026 в 01:00 | Просмотров: 22 Использованные MCP инструменты: searchDocs, liveApiFindFunction, liveApiGetClassCode, liveApiGetClassMethods, liveApiFindByNamespace, liveApiGetDocResource

Задайте свой вопрос — Работает AI в связке с MCP сервером. Перепроверяйте важную информацию.

Создание инфоблока через D7 ORM — важные ограничения

Важно: Согласно официальной документации 1С-Битрикс, «ORM не поддерживает полное создание инфоблока. Он добавляет базовую запись в таблицу b_iblock, но не привязывает инфоблок к сайту, не назначает права, не включает SEO-наследование и не гарантирует видимость в административном разделе».

Поэтому для корректного создания инфоблока с полноценной работой на сайте рекомендуется использовать классический API — метод CIBlock::Add. А D7 ORM применяется уже для последующей работы с элементами, разделами и свойствами.


Создание инфоблока через классическое API (рекомендуемый способ)

// 1. Подключаем модуль инфоблоков
\Bitrix\Main\Loader::includeModule('iblock');

// 2. Создаём инфоблок
$iblock = new \CIBlock;

$result = $iblock->Add([
    'IBLOCK_TYPE_ID' => 'mynews',          // тип инфоблока (должен существовать)
    'NAME'           => 'Новости моей компании',
    'CODE'           => 'mycompany_news',
    'API_CODE'       => 'News',            // обязательно для объектного ORM
    'ACTIVE'         => 'Y',
    'LID'            => ['s1'],            // привязка к сайту
    'SORT'           => 500,
    'GROUP_ID'       => [                  // права доступа
        2 => \CIBlockRights::PUBLIC_READ,  // Все пользователи — чтение
        8 => \CIBlockRights::PUBLIC_EDIT,  // Администраторы — полный доступ
    ],
    'LIST_PAGE_URL'     => '/news/',
    'DETAIL_PAGE_URL'   => '/news/#ELEMENT_CODE#/',
    'SECTION_PAGE_URL'  => '/news/#SECTION_CODE#/',
]);

if ($result) {
    echo 'Инфоблок создан, ID: ' . $result;
} else {
    throw new \Exception($iblock->getLastError()->getMessage());
}

Обязательные параметры:

  • IBLOCK_TYPE_ID — идентификатор типа инфоблока. Тип должен быть предварительно создан (через админку или CIBlockType::Add).
  • NAME — название инфоблока.
  • LID — массив идентификаторов сайтов (без привязки инфоблок не отобразится).
  • API_CODE — символьный код для ORM (обязателен, если планируете работать через D7).

Технически — создание через D7 ORM (IblockTable::add)

Класс Bitrix\Iblock\IblockTable наследуется от DataManager и имеет метод add(). Вот как это выглядит:

use Bitrix\Iblock\IblockTable;
use Bitrix\Main\Loader;

Loader::includeModule('iblock');

$result = IblockTable::add([
    'IBLOCK_TYPE_ID' => 'mynews',
    'NAME'           => 'Новости моей компании',
    'CODE'           => 'mycompany_news',
    'API_CODE'       => 'News',
    'ACTIVE'         => 'Y',
    'SORT'           => 500,
]);

if ($result->isSuccess()) {
    $iblockId = $result->getId();
    echo 'Инфоблок создан, ID: ' . $iblockId;
} else {
    print_r($result->getErrorMessages());
}

Но после этого необходимо вручную:

  1. Добавить связь с сайтом через IblockSiteTable::add().
  2. Назначить права доступа через IblockGroupTable::add() или CIBlock::SetPermission().
  3. Настроить SEO-наследование и другие параметры.

В связи с этим официальная документация прямо рекомендует использовать для создания инфоблока именно классический API — CIBlock::Add.


А что дальше? Работа с элементами через D7 ORM

После того как инфоблок создан (с API_CODE), скомпилируйте ORM-сущность для работы с элементами:

// Компиляция ORM-класса для инфоблока с API_CODE = 'News'
$elementClassName = \Bitrix\Iblock\IblockTable::compileEntity('News');

// Результат: \Bitrix\Iblock\Elements\ElementNewsTable

// Создание нового элемента через объектный ORM
$element = $elementClassName::createObject();
$element->setName('Новый элемент');
$element->setActive(true);
$element->setSort(500);
$element->save();

echo 'Элемент создан, ID: ' . $element->getId();

Услуги Стоимость разработки на 1С-Битрикс

Стоимость разработки сайта зависит от объёма и сложности проекта. Ниже приведены ориентировочные цены, как правило не выходят за обозначенные рамки. Срок разработки зависит от сложности проекта: как правило называю сроки с запасом.
Финальная стоимость и сроки разработки обговариваются на этапе обсуждения. Скачайте опросник на разработку, заполните как можно подробнее и вышлите удобным способом. После ознакомления смогу задать уточняющие вопросы и оценить проект.
Индивидуальная разработка магазина
от 250 000 руб. от 4-х недель

Разработка магазина на 1С-Битрикс с нуля. Дизайн, сборка и оптимизация производительности под конкретный проект и требования. Реализация любого функционала без ограничений готовых решений.

Подробнее
Сайт на готовом решении 1С-Битрикс
от 50 000 руб. от 5-ти дней

Вариант для тех, кто не хочет тратить много средств на индивидуальный проект, и не имеет серьезных требований к сайту. Магазин, быстро запускается на базе одного из 200-та готовых решений.

Подробнее
Мобильное приложение
от 300 000 руб. от 4-х недель

Разработка кроссплатформенного мобильного приложения, которое не уступает нативным решениям как в производительности, так и пользовательском опыте. Публикуется в AppStore, GooglePlay и RuStore

Подробнее
Сайт компании
от 120 000 руб. от 2-х недель

Корпоративный сайт с информационными разделами, каталогом товаров или услуг. Включает формы обратной связи карточек каталога, любое количество статичных и динамичных разделов.

Подробнее
Инфоресурс
от 100 000 руб. от 3-х недель

Информационный ресурс любой сложности. Сайт для СМИ, городской портал или многопользовательская доска объявлений. Внутренние форумы, блоги- по необходимости.

Подробнее
Поддержка и доработки проектов
от 3 000 руб. от 1 часа

Выполнение доработок любой сложности. Поддержка, модернизация и расширение функционала существующих проектов. Решение задач: от мелких правок вёрстки до разработки новых модулей.

Подробнее

Включено в стоимость разработки:

  • Лицензия на 1С-Битрикс необходимой редакции, дополнительные модули, для реализации функционала и видео-инструкции по работе с готовым проектом
  • Оптимизация программной части проекта и конфигурации сервера под максимальную скорость работы. Базовая СЕО оптимизация и добавление сайта в поисковые системы.

Блог-note Заметки по 1С-Битрикс