1С-Бітрікс Розробникам - Як я робив механізм скачування файлів

Попович Олексій

Вже неодноразово стикався із завданням виведення користувачеві на завантаження файлів, залитих як властивості інфоблоку. І якщо цю саму властивість ставити з типом "Файл" то бітрікс автоматично даному файлу надавав унікальне ім'я, конфлікту файлів у системі не виникало, але видавати цей файл було вкрай проблематично.

Донедавна замість властивості "Файл" ставив інше - "Прив'язка до файлу на сервері" і тоді по ІД файлу витягувалося його ім'я, файл видавався на скачування і все було просто чудово.

Але, одного разу, виникло завдання і необхідність більш професійного підходу до цього питання і ось вирішив зробити повноцінний механізм із закачування/стрибання файлів.

Отже, сама задача:Користувач сайту через компонент додавання нового елемента ІБ додає свій елемент. Однією з властивостей елемента є поле "Файл" із типом "Файл". Далі цей елемент через виведення списку новин виводимо іншим користувачам. Файл повинен бути доступний для скачування з тим ім'ям, з яким його заливали, а не з "кракозяброю", з якою він зберігається на сервері.

Заливка файлу проходить нормально, звичайним чином, тому на ній зупинятись не буду.

Виведення елементів відбувається за допомогою стандартного компонента news.list. При виведенні елементів, коли добираємося до якості з файлом, отримуємо лише ІД файлу і нічого більше.

Т.к. у мене таких файлів могло бути кілька, то цей блок вийшов такий: