В ряде случаев файл, отправленный пользователем в мессенджер, необходимо передать во внешнюю систему или включить ссылку в письмо. Для этого необходимо сформировать ссылку на полученный файл.
Сама ссылка формируется по следующим правилам:
https://<sherlock_url>/api/files/attachment/<Имя_файла>
Имя файла при получении от пользователя платформа размещает в переменной #System.Text#. Также имя файла будет в конкретной переменной контекста бота, если использовалась команда ожидания данных.
Обратим внимание, что в случае если пользователь пришлет текст с приложенными файлами, то в #System.Text# или переменной контекста бота будет помещено текст, присланный клиентом. Для получения имени файла надо использовать переменную #System.Text# в событии [Получен файл от клиента]
Полную информацию о файлах текущего сообщения можно получить запросом к базе:
SELECT f.* FROM tbl_File f INNER JOIN tbl_FileLink fl ON fl.FileId=f.ID
WHERE ObjectID IN (SELECT TOP 1 ID FROM tbl_Message
WHERE RequestID='#Request.ID#' AND MessageDirectionID=1 ORDER BY CreatedAt DESC)
При обработке результатов данного запроса количество файлов можно узнать в переменной контекста бота #SQL_RecordCount#. Если нужен только один файл, то его идентификатор по умолчанию будет в переменной контекста бота #Id#. Если файлов несколько, то список будет сохранен в переменную контекста бота #SQL_Result#.