Эффективная интеграция и кастомизация функционала в Битрикс24 часто требует работы на уровне API. Сегодня мы подробно рассмотрим «Создать элемент универсального списка lists.element.add». Вы узнаете экспертные методики работы с lists.element.add и научитесь избегать типичных ошибок начинающих разработчиков.
Создать элемент универсального списка lists.element.add
> Scope: lists
>
> Кто может выполнять метод: пользователь с правом «Добавление» или «Изменение» для нужного списка
Метод lists.element.add создает элемент списка.
Параметры метода
Названиетип | Описание |
|---|---|
IBLOCK_TYPE_IDstring | Идентификатор типа инфоблока. Возможные значения: — lists — тип инфоблока списка — bitrix_processes — тип инфоблока процессов — lists_socnet — тип инфоблока списков групп |
IBLOCK_IDinteger | Идентификатор инфоблока. Идентификатор можно получить с помощью метода lists.get |
IBLOCK_CODE string | Cимвольный код инфоблока. Код можно получить с помощью метода lists.get Необходимо указать хотя бы один из параметров: |
ELEMENT_CODEstring | Символьный код элемента |
FIELDSarray | Массив полей. Подробное описание |
IBLOCK_SECTION_IDinteger | Идентификатор раздела, в который добавляется элемент. Если параметр не передается, элемент создается в корне списка. Значение по умолчанию — Идентификатор можно получить с помощью метода lists.section.get |
LIST_ELEMENT_URLstring | Шаблон адреса к элементам списка. Поддерживает замены: |
Параметр FIELDS {#parametr-fields}
Названиетип | Описание |
|---|---|
NAMEstring | Название элемента |
| PROPERTY_PropertyId | Пользовательские свойства. Любое свойство элемента можно настроить как множественное. Для множественных свойств передавайте массив, даже если значение только одно. Чтобы передать значение в поле типа Файл укажите: |
Получить данные о полях списка можно с помощью метода lists.field.get
Примеры кода
- cURL (Webhook)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"IBLOCK_TYPE_ID":"lists","IBLOCK_ID":47,"ELEMENT_CODE":"test_element","LIST_ELEMENT_URL":"#list_id#/element/#section_id#/#element_id#/","FIELDS":{"NAME":"Тестовый элемент","PROPERTY_951":["1269","1271"],"PROPERTY_1003":"2024-12-31 23:59:59"}}' \
https://**put_your_bitrix24_address**/rest/**put_your_user_id_here**/**put_your_webbhook_here**/lists.element.add- cURL (OAuth)
curl -X POST \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{"IBLOCK_TYPE_ID":"lists","IBLOCK_ID":47,"ELEMENT_CODE":"test_element","LIST_ELEMENT_URL":"#list_id#/element/#section_id#/#element_id#/","FIELDS":{"NAME":"Тестовый элемент","PROPERTY_951":["1269","1271"],"PROPERTY_1003":"2024-12-31 23:59:59"},"auth":"**put_access_token_here**"}' \
https://**put_your_bitrix24_address**/rest/lists.element.add- JS
try {
const response = await $b24.callMethod(
'lists.element.add',
{
IBLOCK_TYPE_ID: 'lists',
IBLOCK_ID: 47,
ELEMENT_CODE: 'test_element',
LIST_ELEMENT_URL: '#list_id#/element/#section_id#/#element_id#/',
FIELDS: {
NAME: 'Тестовый элемент',
PROPERTY_951: ["1269", "1271"],
PROPERTY_1003: "2024-12-31 23:59:59"
}
}
);
const result = response.getData().result;
console.log('Created element with ID:', result);
processResult(result);
} catch (error) {
console.error('Error:', error);
}- PHP
try {
$response = $b24Service
->core
->call(
'lists.element.add',
[
'IBLOCK_TYPE_ID' => 'lists',
'IBLOCK_ID' => 47,
'ELEMENT_CODE' => 'test_element',
'LIST_ELEMENT_URL' => '#list_id#/element/#section_id#/#element_id#/',
'FIELDS' => [
'NAME' => 'Тестовый элемент',
'PROPERTY_951' => ["1269", "1271"],
'PROPERTY_1003' => "2024-12-31 23:59:59"
]
]
);
$result = $response
->getResponseData()
->getResult();
echo 'Success: ' . print_r($result, true);
processData($result);
} catch (Throwable $e) {
error_log($e->getMessage());
echo 'Error adding element: ' . $e->getMessage();
}- BX24.js
BX24.callMethod(
'lists.element.add',
{
IBLOCK_TYPE_ID: 'lists',
IBLOCK_ID: 47,
ELEMENT_CODE: 'test_element',
LIST_ELEMENT_URL: '#list_id#/element/#section_id#/#element_id#/',
FIELDS: {
NAME: 'Тестовый элемент',
PROPERTY_951: ["1269", "1271"], // Пользовательское свойство типа Строка (множественное)
PROPERTY_1003: "2024-12-31 23:59:59" // Пользовательское свойство типа Дата/Время
}
},
function(res) {
if (res.error()) {
console.error(res.error());
} else {
console.log(res.data());
}
}
);- PHP CRest
require_once('crest.php');
$result = CRest::call(
'lists.element.add',
[
'IBLOCK_TYPE_ID' => 'lists',
'IBLOCK_ID' => 47,
'ELEMENT_CODE' => 'test_element',
'LIST_ELEMENT_URL' => '#list_id#/element/#section_id#/#element_id#/',
'FIELDS' => [
'NAME' => 'Тестовый элемент',
'PROPERTY_951' => ["1269", "1271"],
'PROPERTY_1003' => "2024-12-31 23:59:59"
]
]
);
echo '<PRE>';
print_r($result);
echo '</PRE>';Обработка ответа
HTTP-статус: 200
{
"result": 6999,
"time": {
"start": 1763654360,
"finish": 1763654360.814629,
"duration": 0.814629077911377,
"processing": 0,
"date_start": "2025-11-19T13:59:20+03:00",
"date_finish": "2025-11-19T13:59:20+03:00",
"operating_reset_at": 1763654960,
"operating": 0
}
}Возвращаемые данные
Названиетип | Описание |
|---|---|
resultinteger | Идентификатор созданного элемента |
timetime | Информация о времени выполнения запроса |
Обработка ошибок
HTTP-статус: 400
{
"error":"ERROR_ELEMENT_FIELD_VALUE",
"error_description":"Writing file values by ID is not supported"
}Возможные коды ошибок
| Код | Описание | Значение |
|---|---|---|
ERROR_REQUIRED_PARAMETERS_MISSING | Required parameter X is missing | Обязательный параметр не передан |
ERROR_IBLOCK_NOT_FOUND | Iblock not found | Инфоблок не найден |
ERROR_ELEMENT_ALREADY_EXISTS | Element already exists | Элемент с таким CODE уже существует |
ERROR_ADD_ELEMENT | — | Ошибка при добавлении элемента |
ERROR_ELEMENT_FIELD_VALUE | Writing file values by ID is not supported | Ошибка валидации значения поля |
ACCESS_DENIED | Access denied | Недостаточно прав для добавления элемента |
- [](./lists-element-update)
- [](./lists-element-get)
- [](./lists-element-delete)
- [](./lists-element-get-file-url)
💡 Экспертное мнение и рекомендации
Ключевые выводы по теме «Создать элемент универсального списка lists.element.add»:
Использование современных стандартов D7 при работе с lists.element.add позволяет писать чистый, масштабируемый и безопасный код. Не забывайте обрабатывать исключения (try/catch) и проверять права доступа текущего пользователя перед выполнением критических операций.
Похожая задача в бизнесе?
Помогу автоматизировать процессы и внедрить ИИ
Меня зовут Андрей Горошко. Я Full-stack разработчик и эксперт по 1С-Битрикс. Настраиваю CRM Битрикс24, разрабатываю защищенные API и создаю умных ИИ-агентов для автоматизации рутины.
или на почту: gorandvas@yandex.ru