Имя: Пароль:
1C
1С v8
1C+Битрикс24: скачать запись телефонного разговора в 1С
0 LenaPoluhina
 
02.05.20
12:15
Всем привет!
Может кто-то сталкивался с подобной проблемой.
Задача: необходимо скачать запись телефонного разговора из Б24 в 1С:
Делаю через входящий вебхук.
1) Сначала методом
https://xxx.bitrix24.ru/rest/115/irzp8qu7r5rlgqr5/voximplant.statistic.get
получаю информацию о всех телефонных звонках.
Далее из поля RECORD_FILE_ID - получаю идентификатор файла, который лежит на диске Битрикс24 и хранит запись разговора.
2) Чтобы получить этот файл, выполняю метод:
https://ххх.bitrix24.ru/rest/115/irzp8qu7r5rlgqr5/disk.file.get?id=653
, где id=653 - это RECORD_FILE_ID из предыдущего запроса.
Ответом мне приходит такой json:
{"result":{"ID":"653","NAME":"73833251706_in_2019_08_02-12_11_55_79137744395_xwrg.mp3","CODE":null,"STORAGE_ID":"11","TYPE":"file","PARENT_ID":"651","DELETED_TYPE":"0","GLOBAL_CONTENT_VERSION":"1","FILE_ID":"679","SIZE":"504417","CREATE_TIME":"2019-08-02T12:16:14+03:00","UPDATE_TIME":"2019-08-02T12:16:14+03:00","DELETE_TIME":null,"CREATED_BY":"23","UPDATED_BY":"23","DELETED_BY":"0","DOWNLOAD_URL":"https:\/\/ххх.bitrix24.ru\/rest\/115\/irzp8qu7r5rlgqr5\/download\/?token=disk%7CaWQ9NjUzJl89ZTV4ZGY1bUt2ZmNOSHBPV1hQMlBKYzl3RExuaHhCYnY%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5qVXpKbDg5WlRWNFpHWTFiVXQyWm1OT1NIQlBWMWhRTWxCS1l6bDNSRXh1YUhoQ1luWT18MTE1fGlyenA4cXU3cjVybGdxcjQi.iMpZxQIfqL7x0SSPjhuLcJmLvQm4K%2Fl3QMERKtSjK7g%3D","DETAIL_URL":"https:\/\/ххх.bitrix24.ru\/docs\/file\/\u0422\u0435\u043b\u0435\u0444\u043e\u043d\u0438\u044f - \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0432\u043e\u043d\u043a\u043e\u0432\/2019-08\/73833251706_in_2019_08_02-12_11_55_79137744395_xwrg.mp3"},"time":{"start":1588401800.1425271,"finish":1588401800.188405,"duration":0.045877933502197266,"processing":0.024543046951293945,"date_start":"2020-05-02T09:43:20+03:00","date_finish":"2020-05-02T09:43:20+03:00"}}

Проблема, собственно вот в чем.
Если то, что содержится в "DOWNLOAD_URL" вставить в URL в браузере, то скачивание начинается автоматически.
Но из 1С у меня не получается это сделать так, чтоб файл скачался и сохранился.

Пробовала через hTTP соединение - "файл не найден".
Пробовала на управляемой форме создать ПолеHTMLдокумента, и туда эту строку поместить - 1С выдает диалоговое окно с вопросом "куда сохранить файл".
А нужно, чтоб без вопросов сохранял.
Кто-нибудь сталкивался? Решал такую задачу? Как скачать в 1С запись разговора по ссылке?

П.С. В ответе есть еще "DETAIL_URL", который содержит ссылку на файлик. Скачала его с помощью HTTP соединения. Все хорошо скачалось, но размер файла - меньше на 200Kb, и он не воспроизводится.
1 Cyberhawk
 
02.05.20
12:21
"вставить в URL в браузере, то скачивание начинается автоматически" // А теперь вставь в постман и посмотри, что там приходит
2 LenaPoluhina
 
02.05.20
12:57
(1) Запустила. Тоже самое, спрашивает куда сохранить скачанный файлик.
3 Cyberhawk
 
02.05.20
13:12
(2) Покажи на картинке
4 LenaPoluhina
 
02.05.20
13:43
Все, разобралась))
Все банально и просто оказалось.

Я когда по DOWNLOAD_URL получала файлик через HTTP соединение, то делала это без указания места на диске, куда файл надо поместить. (Изначально задача была в кэш скачать).
Но система выдавала ошибку. (с json или xml такое, например, прокатывает).
А в случае с аудиофайлом - обязательно надо место на диске указывать.

        СоединениеHTTP = Новый HTTPСоединение("ххх.bitrix24.ru",,,,,,Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(),
            Новый СертификатыУдостоверяющихЦентровWindows()));
            
            ИмяВременногоФайла=ПолучитьИмяВременногоФайла(".mp3");
            ЗапросТекст = "/rest/115/irzp8qu7r5rlgqr5/download/?token=disk%7CaWQ9NjUzJl89ZTV4ZGY1bUt2ZmNOSHBPV1hQMlBKYzl3RExuaHhCYnY%3D%7CImRvd25sb2FkfGRpc2t8YVdROU5qVXpKbDg5WlRWNFpHWTFiVXQyWm1OT1NIQlBWMWhRTWxCS1l6bDNSRXh1YUhoQ1luWT18MTE1fGlyenA4cXU3cjVybGdxcjQi.iMpZxQIfqL7x0SSPjhuLcJmLvQm4K%2Fl3QMERKtSjK7g%3D";
        
            ОтветСервера = СоединениеHTTP.Получить(ЗапросТекст,ИмяВременногоФайла);    

Вот так нормально скачивает.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший