← К заметкам

Заметки

lists.element.add не видит IBLOCK_ID из-за лишнего fields

Сообщение про отсутствующий IBLOCK_CODE сбивает с толку, когда в запрос уже передан IBLOCK_ID. Одна из причин — весь запрос завёрнут в fields, и метод не видит идентификатор списка на ожидаемом уровне.

В lists.element.add тип списка, его ID и символьный код нового элемента передаются отдельно. Только значения полей элемента находятся внутри FIELDS:

{
  "IBLOCK_TYPE_ID": "lists",
  "IBLOCK_ID": 12,
  "ELEMENT_CODE": "demo-request-001",
  "FIELDS": {
    "NAME": "Заявка на доступ"
  }
}

Здесь 12 — пример ID списка, а demo-request-001 — символьный код создаваемого элемента. Для другого элемента нужен другой код. Достаточно передать IBLOCK_ID или IBLOCK_CODE; требование не означает, что всегда нужны оба.

Значение IBLOCK_TYPE_ID тоже имеет смысл: lists — обычные списки, bitrix_processes — процессы в ленте, lists_socnet — списки групп. Для группового списка нужен соответствующий контекст группы.

Если после исправления структуры приходит ACCESS_DENIED, это уже другой ответ: проверьте доступ владельца вебхука к выбранному списку. Скоуп REST и права на конкретный список — разные настройки.

Для файлового свойства есть отдельный пример загрузки файла в список.

Документация: lists.element.add.