Заметки
Как загрузить файл на Диск и прикрепить к CRM
Как загрузить файл на Диск Битрикс24 и связать его с CRM: uploadfile, объект Диска, прикрепление и таймлайн.
Для CRM лучше не пытаться прикреплять локальный путь. Сначала загрузите файл на Диск, получите ID объекта Диска и уже его используйте в таймлайне, деле, документе или поле типа «Файл Диска».
Задача
Если файл нужно прикрепить к CRM, чаще всего его сначала загружают на Диск, а потом связывают с CRM-сущностью: через комментарий таймлайна, дело, документ или файловое поле типа «Файл Диска».
Загрузка на Диск
Для загрузки в папку используется disk.folder.uploadfile. В ответе вы получаете объект Диска, с которым уже можно работать дальше.
BX24.callMethod(
'disk.folder.uploadfile',
{
id: 15,
data: { NAME: 'contract.pdf' },
fileContent: ['contract.pdf', 'base64_encoded_content_here'],
},
function (result) {
console.log(result.data());
}
); Перед загрузкой нужно знать ID папки. Его можно получить через хранилище, дочерние элементы папки или заранее сохранить в настройках интеграции.
Прикрепление к CRM
Один из удобных сценариев — добавить комментарий в таймлайн CRM и приложить к нему файл. Так файл становится виден в истории карточки.
BX24.callMethod(
'crm.timeline.comment.add',
{
fields: {
ENTITY_TYPE: 'deal',
ENTITY_ID: 123,
COMMENT: 'Файл загружен автоматически',
FILES: [9043],
},
},
function (result) {
console.log(result.data());
}
); Формат поля FILES зависит от метода и версии API. Если метод ждёт файлы Диска, передавайте ID объекта Диска, а не путь к файлу и не ID прикреплённого объекта.
Где появляется attached object
После прикрепления файла к CRM может появиться отдельная запись связи — прикреплённый объект. Это не сам файл, а связь файла Диска с CRM-объектом, комментарием или делом.
BX24.callMethod(
'disk.attachedObject.get',
{ id: 423 },
function (result) {
console.log(result.data());
}
); Если дальше нужно получить сам файл, идите от прикрепления к объекту Диска, а уже потом к внутреннему файловому ID или ссылке.