Как вывести свойство типа «файл» в Битрикс?

Совсем маленькая заметка-памятка на тему «Как вывести свойство типа файл в шаблоне Битрикс». Данная задача, зачастую, возникает на страницах элементов каталога товаров, например, когда нужно вывести ссылку на инструкцию (или гарантийный талон).

Вся задача, в самом деле, решается в 3 (даже, можно сказать, что в 2.5) небольших шага, которые рассматриваются ниже.

1.  Создание свойства типа «файл»

На данном этапе не должно возникнуть сложностей, так как алгоритм стандартный:
А) В настройках инфоблока заводим свойство типа файл:

Б) Сохраняем и переходим к следующему шагу

2. Добавление файла к элементу

Это, собственно, вышеупомянутый шаг 2.5: В соответствующем инфоблоке редактируем элемент детально, находим нужное нам свойство, подгружаем файл. Сохраняем.

3. Вывод свойства в шаблоне 

И последний (но самый главный) шаг, ради которого, собственно, и была написана эта заметка — вывод нашего свойства в нужном шаблоне.

Итак, открыв на редактирование файл template.php необходимого шаблона компонента мы, в нужном месте, вводим следующий код:

<?		
$res = CIBlockElement::GetProperty($arResult['IBLOCK_ID'], $arResult['ID'], "sort", "asc", array("CODE" => "files"));
if ($ob = $res->GetNext())
    {			
$INSTRUCTION_VALUE = $ob['VALUE'];
$file = CFile::GetFileArray($INSTRUCTION_VALUE);
$INSTRUCTION_SRC = $file['SRC'];
    }
?>

Как видно, нам потребовался метод GetProperty «битриксового» класса CIBlockElement, который возвращает значение свойства для определенного элемента инфоблока.

У файлового массива несколько параметров, но, в данном случае, нас интересует только ссылка на файл. Поэтому, с помощью метода GetFileArray класса CFile  извлекаем массив значений данного свойства и, на следующей строке, присваиваем значение ссылки переменной INSTRUCTION_SRC.

И, далее, вызываем переменную в необходимом нам месте. Например:

<a href="<?=$INSTRUCTION_SRC;?>">Инструкция</a>

В общем и целом всё, таким образом можно вывести свойство типа файл в CMS Битрикс. За более подробным описанием классов и методов, использованных в данной заметке, лучше обратиться к официальной документации битрикса.