Предположим существует комментарий к которому могут быть прикреплены файлы и вам известен его ID (комментария), например:
Таким образом для получения файлов вы можете воспользоваться кодом:
* @var CUserTypeManager
*/
global $USER_FIELD_MANAGER;
use Bitrix\Main\Loader;
use Bitrix\Disk\Driver;
use Bitrix\Crm\Timeline\CommentController;
use Bitrix\Disk\AttachedObject;
Loader::requireModule('crm');
Loader::requireModule('disk');
/**
* Timeline comment id
* @var int
*/
$commentId = 30;
$userFieldWithValues = $USER_FIELD_MANAGER->GetUserFields(
entity_id: CommentController::UF_FIELD_NAME,
value_id: $commentId,
selectFields: [
CommentController::UF_COMMENT_FILE_NAME
]
);
$attachedObjectIds = [];
if (
array_key_exists(
CommentController::UF_COMMENT_FILE_NAME,
$userFieldWithValues
)
&& $userFieldWithValues[CommentController::UF_COMMENT_FILE_NAME]["VALUE_EXISTS"]
) {
$attachedObjectIds = $userFieldWithValues[CommentController::UF_COMMENT_FILE_NAME]["VALUE"];
}
$files = [];
if (!empty($attachedObjectIds)) {
$urlManager = Driver::getInstance()->getUrlManager();
foreach ($attachedObjectIds as $value) {
if (!$value) {
continue;
}
$attachedObject = AttachedObject::loadById($value, ['OBJECT']);
$file = $attachedObject->getObject();
if (!$attachedObject || !$file) {
continue;
}
$files[] = [
'name' => htmlspecialcharsbx($file->getName()),
'size' => \CFile::formatSize($file->getSize()),
'url' => $urlManager->getUrlUfController('download', ['attachedId' => $value])
];
}
}
/**
* array(1) {
* [0]=> array(3) {
* ["name"]=> string(20) "2025-07-03_13-36.png"
* ["size"]=> string(10) "28.97 КБ"
* ["url"]=> string(60) "/bitrix/tools/disk/uf.php?attachedId=1&action=download&ncc=1"
* }
* }
*/
var_dump($files);