Дано:
- Бизнес-процесс (БП) в CRM Битрикс24
- Файл на Диске (а точнее, поле типа Файл или Файл (Диск))
Нужно:
- В БП сформировать кликабельную ссылку на файл для использования, например, в описании какого-нибудь действия
Решение
В БП для формирования ссылок на файлы можно использовать действие Детально об объекте Диска. Для этого нужно:
1) добавить в БП действие Детально об объекте Диска, в котором указать ID файла
2) использовать поля из секции Дополнительные результаты для получения самих ссылок:
- Поле URL для просмотра – адрес страницы файла на Диске (типа /docs/shared/file/file_name), на которой выводится информация о файле и команды для управления файлом (в т.ч. и команда непосредственного открытия файла в браузере, если его формат позволяет это сделать). Значение поля в БП будет выглядеть так: {=<id>:DetailUrl}
- Поле URL для загрузки – адрес для прямого скачивания файла с Диска (типа /disk/downloadFile/file_id/?&ncc=1&filename=file_name). Значение поля в БП будет выглядеть так: {=<id>:DownloadUrl}
3) использовать тег url для формирования кликабельной ссылки для пользователя.
Например:
- Ссылка на просмотр файла: [url={=<id_поля>:DetailUrl}]открыть[/url]
- Ссылка на скачинивае файла: [url={=<id_поля>:DownloadUrl}]скачать[/url]
Пример в действии БП:
Ссылки на несколько файлов
Если поле с файлом – множественное, то для формирования нескольких ссылок можно использовать действие Итератор. Алгоритм:
1) добавить в БП действие Итератор, в котором указать множественную переменную с файлами
Примечание:
Действие Итератор поддерживает перебор только переменных. Т.е., например, поля БП в живой ленте использовать не получится. Придется создавать переменную и копировать в нее значение поля.
2) в каждой итерации цикла получать url на очередной файл с помощью действия Детально об объекте Диска, как в начале статьи
3) Создать переменную типа Многострочный текст, в которой формировать и склеивать все ссылки
На скрине используется конкатенация переменной (строки) Ссылки на документы (с id равным {=Variable:DocsLinks}) со ссылками на очередной файл, т.е.:
1 |
[Ссылки на документы] = [Ссылки на документы] + <ссылка на очередной файл> |
Скрин итератора:
Публичные ссылки
Данный функционал стал доступен в Битрикс24 начиная с версии модуля БП 20.0.700.
publink – модификатор для создания публичной ссылки на файл, не требующей авторизации на портале (описание).
Пример:
Публичная ссылка на файл: {=Document:PROPERTY_MY_FILE > publink}
В результате будет ссылку вида:
1 |
http://[адрес_портала]/bitrix/services/main/ajax.php?action=bizproc.file.show&token=305.0904b680f9932ca0ad3c378fb5159dac1a6521a3a9023408451a5e7a3a1061 |
shortlink – модификатор для создания короткой публичной ссылки на файл, не требующей авторизации на портале (описание).
Пример:
Короткая публичная ссылка на файл: {=Document:PROPERTY_MY_FILE > shortlink}
В результате будет ссылку вида:
1 |
http://[адрес_портала]/~tcMUt |
src – модификатор для создания прямой публичной ссылки к файлу на сервере, не требующей авторизации на портале.
Пример:
Ссылка на файл – [url={=Document:PROPERTY_FILE > src}]link[/url]
В результате будет ссылку вида:
1 |
http://[адрес_портала]/~tcMLt |
Внимание!
Использование такого модификатора на коробочных версиях может быть небезопасно.
Например, если данный файл загружает пользователь: он может загрузить HTML и по такой ссылке откроется в браузере страница вашего сайта, в которой пользователем может быть написан вредоносный код.
Но возможно обойти использованием CDN (как в облачной версии Битрикс24) или настройкой вашего сервера (правила .htaccess и т.п., запрещающие выполнение html/php файлов в папке из папки /upload/).
Чучак, смени шрифт, это же пиздец
Подскажите, что делаю не так! ССылки на несколько файлов.
Загружаю в множественную переменную 2 файла, далее следую Вашей инструкции, на выходе у меня получается 2 ссылки (смотря сколько файлов загрузил), только в каждой ссылки (пусть к 1 и 2 файлу отделенные , ). Что я делаю не так?
Привет, тут не понял фразу:
“только в каждой ссылки (пусть к 1 и 2 файлу отделенные , )”