Обработка файлов
Методы REST-сервиса получают файлы в виде строки, закодированной в base64. Также можно отправить обычный массив, первым элементом которого будет имя файла, вторым - содержимое в base64.
В случае полностью клиентского приложения можно либо воспользоваться объектом FileReader, либо просто отдать в качестве значения поля запроса ссылку на элемент формы типа "файл" (<input type="file">
).
Пример
<input type="file" id="testfile"><br /> <span onclick="sendInputFile()">send file from inputsend static file function sendInputFile() { BX24.callMethod('entity.item.add', { 'ENTITY': 'menu', 'NAME': Math.random(), 'DETAIL_PICTURE': document.getElementById('testfile') }, function(){ alert('Finished!'); }); } /* POST https://my.bitrix24.com/rest/entity.item.add.json HTTP/1.1 Host: my.bitrix24.com Content-Length: 186 Content-Type: text/plain; charset=UTF-8 auth=6a8c365cb010ba42bd5b0f6ae803f47c&ENTITY=menu&NAME=0.2630483947652045&DETAIL_PICTURE[0]=1.gif&DETAIL_PICTURE[1]=R0lGODlhAQABAIAAAP%2F%2F%2FwAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D */ function sendStaticFile() { BX24.callMethod('entity.item.add', { 'ENTITY': 'menu', 'NAME': '1.gif', 'DETAIL_PICTURE': ['1.gif', 'R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='] }, function(){ alert('Finished!'); }); } /* POST https://my.bitrix24.com/rest/entity.item.add.json HTTP/1.1 Host: my.bitrix24.com Content-Length: 173 Content-Type: text/plain; charset=UTF-8 auth=6a8c365cb010ba42bd5b0f6ae803f47c&ENTITY=menu&NAME=1.gif&DETAIL_PICTURE[0]=1.gif&DETAIL_PICTURE[1]=R0lGODlhAQABAIAAAP%2F%2F%2FwAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D */ </script>
Для методов CRM при добавлении картинки для товара вместо
'DETAIL_PICTURE': ['1.gif', 'R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==']
используйте
"PREVIEW_PICTURE": {"fileData": ["1.gif", "R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=="]}
Такая особенность вызвана тем, что в CRM поддерживается удаление файлов.
Для удаления картинки из поля, нужно вначале получить ID файла картинки в поле PHOTO методом crm.contact.get и после передать его с параметром remove в метод crm.contact.update, как пример, в контакте 308 удаляем фото ID 11062 (REGISTER_SONET_EVENT можно не передавать):
BX24.callMethod( "crm.contact.update", { id: 308, fields: { "PHOTO": {id: 11062, remove: 'Y'} }, params: { "REGISTER_SONET_EVENT": "Y" } }, function(result) { if(result.error()) console.error(result.error()); else { console.info(result.data()); } } );
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.