SectionTable

Класс Modulemarket\Translator\Iblock\SectionTable — ORM-таблица переводов разделов инфоблока в 1С-Битрикс. Наследует Bitrix\Main\Entity\DataManager, таблица БД — fan_translator_iblock_section. Связь с основным разделом задаётся полем SECTION типа Reference на Bitrix\Iblock\SectionTable. Карта полей объединяет ключи ID, LANGUAGE_ID, SITE_ID, связь SECTION и переводимые колонки из getTranslatableFields().

Строка перевода раздела — запись с составным первичным ключом: ID раздела инфоблока + LANGUAGE_ID + SITE_ID.

Примечание — исходный файл класса: /bitrix/modules/modulemarket.translator/lib/iblock/sectiontable.php.

Важно! Подключайте модули iblock и modulemarket.translator. Для выборок и записей явно указывайте LANGUAGE_ID и SITE_ID в фильтре или в массиве полей — значения по умолчанию полей зависят от констант окружения.

Обзор API класса

Компонент Описание
getTableName() Имя таблицы: fan_translator_iblock_section.
getMap() Поля ID, LANGUAGE_ID, SITE_ID, связь SECTION, переводимые поля карты Iblock\SectionTable.
getTranslatableFields() Список колонок, попадающих в таблицу перевода (см. спойлер в конце страницы).
onBeforeAdd / onBeforeUpdate Если в сохраняемых данных нет TIMESTAMP_X, подставляется текущие дата и время.

Пример: выборка перевода раздела (getList)

Code Copy code Code copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use Bitrix\Main\Loader;
use Modulemarket\Translator\Iblock\SectionTable;

Loader::includeModule('iblock');
Loader::includeModule('modulemarket.translator');

$sectionId = 100;

$res = SectionTable::getList([
    'filter' => [
        '=ID' => $sectionId,
        '=LANGUAGE_ID' => 'ua',
        '=SITE_ID' => 's1',
    ],
    'select' => [
        'ID',
        'LANGUAGE_ID',
        'SITE_ID',
        'NAME',
        'DESCRIPTION',
        'ACTIVE',
        'GLOBAL_ACTIVE',
    ],
    'limit' => 1,
]);

if ($row = $res->fetch()) {
    echo htmlspecialcharsbx($row['NAME']);
}

Пример: добавление строки перевода раздела (add)

Code Copy code Code copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use Bitrix\Main\Loader;
use Modulemarket\Translator\Iblock\SectionTable;

Loader::includeModule('iblock');
Loader::includeModule('modulemarket.translator');

$result = SectionTable::add([
    'ID' => 100,
    'LANGUAGE_ID' => 'ua',
    'SITE_ID' => 's1',
    'ACTIVE' => 'Y',
    'GLOBAL_ACTIVE' => 'Y',
    'NAME' => 'Название раздела (перевод)',
    'DESCRIPTION' => 'Описание раздела',
]);

if ($result->isSuccess()) {
    echo 'Перевод раздела сохранён.';
} else {
    print_r($result->getErrorMessages());
}

Целостность данных при добавлении

Ссылки по теме

Документация 1С-Битрикс: DataManager

Документация 1С-Битрикс: класс Bitrix\Iblock\SectionTable

Переводимые поля (getTranslatableFields())

Поля перевода раздела: ACTIVE, GLOBAL_ACTIVE, NAME, DESCRIPTION, TIMESTAMP_X, MODIFIED_BY, DATE_CREATE, CREATED_BY, SEARCHABLE_CONTENT.

Количество показов: 557
Дата изменения: 15.05.2026 23:35:51