← К заметкам

Заметки

Как прикрепить файл к элементу списка через REST

В файловое свойство универсального списка передают содержимое файла, а не локальный путь. Для одиночного свойства типа «Файл» подойдёт пара имени и Base64:

BX24.callMethod('lists.element.add', {
    IBLOCK_TYPE_ID: 'lists',
    IBLOCK_ID: 25,
    ELEMENT_CODE: 'file-check-001',
    FIELDS: {
        NAME: 'Проверка вложения',
        PROPERTY_45: ['check.txt', 'b2s=']
    }
}, function (result) {
    if (result.error()) {
        console.error(result.error());
        return;
    }
    console.log(result.data());
});

Пример создаёт элемент с текстовым файлом ok. PROPERTY_45 нужно заменить на код своего файлового свойства, полученный через lists.field.get. Для множественного свойства передают массив значений файлов.

Тип «Файл (Диск)» отличается: для него используется идентификатор Диска, а не эта Base64-пара. После сохранения обычного файла ссылку получают через lists.element.get.file.url с ID списка, элемента и поля.

В облаке речь идёт о доступных REST списках и процессах. В коробке состав доступных инфоблоков и права нужно проверять в контексте установленной версии.

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