Дано:
- Бизнес-процесс (БП) в 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 файлу отделенные , )”
Привет! Спасибо за инструкцию.
У меня что-то идёт не так:1. Запихиваю в множественную переменную типа “Файл” файлы из множественного поля в CRM. На всякий случай, записываю значение переменной в отчёт – отсюда видим, что файлы в неё нормально пихнулись.
2. В итераторе запускаю данные об объекте, в поле “Папка или файл диска”, соответственно, указываю значение итерации – он ругается, что не найден исходный файл.
ЧЯДНТ?
Привет! Спасибо за инструкцию. У меня тут странная ошибка:1. Заполняю множественную переменную файлами из множественного поля в CRM, отчёт показывает, что переменная заполняется, кроме того, итератор проходит строго столько раз, сколько файлов в переменной – на этом этапе вроде нет ошибок. Переменная типа файл тоже, если что.
2. Активити “Детально об объекте диска” ругается, что “Не найден исходный объект.”
ЧЯДНТ?
Сейчас уже не помню нюансов, больше чем пол года не занимаюсь Б24.
Можете глянуть пример с формированием списка ссылок на группу файлов, может поможет:
https://disk.yandex.ru/d/qjVi-oDBcTgbKg
Благодарю, в инструкции упущен момент, что нужно сначала использовать активити “Загрузить на диск” внутри итератора, и уже из дополнительных результатов этого активити взять ID загруженного файла.
Так всё работает.
Ещё раз спасибо!
Коллеги, приветствую!
У меня тут затык в облачном Битрикс24 возник, может поможете…
Суть его в том, что мне необходимо встроить в текст задачи по согласованию ссылку на файл, находящийся в сделке во множественном файловом поле, а не на диске.
Перебрал кучу вариантов кода, но так и не смог найти подходящий