Налаштування DAM (управління цифровими активами) для 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування DAM (управління цифровими активами) для 1С-Бітрікс
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування DAM (управління цифровими активами) для 1С-Бітрікс

DAM — це централізоване сховище медіафайлів з метаданими, тегами, правами доступу та версіонуванням. У Бітрікс роль DAM виконує модуль Медіабібліотека (fileman), але в базовій конфігурації він працює як просте файлове дерево без структурованих метаданих і пошуку за вмістом.

Архітектура модуля Медіабібліотека

Файли зберігаються в таблиці b_file — це центральний реєстр усіх файлів у системі. Поля: ID, MODULE_ID, HEIGHT, WIDTH, FILE_SIZE, CONTENT_TYPE, SUBDIR, FILE_NAME, ORIGINAL_NAME, DESCRIPTION, HANDLER_ID.

Медіабібліотека додає поверх цього структуру папок через b_medialib_collection і прив'язку файлів до колекцій через b_medialib_item. Кожен елемент (b_medialib_item) містить поля KEYWORD (теги через кому) і DESCRIPTION.

Для повноцінного DAM бракує: ієрархічних тегів, зв'язку з продуктами каталогу, історії версій, прав на рівні файлу.

Розширення метаданих

Призначені властивості медіафайлів додаються через користувацькі типи в b_uts_medialib_item. Таблиця створюється автоматично при додаванні UF-полів через інтерфейс:

Налаштування → Користувачі → Користувацькі поля → Тип об'єкта: MEDIALIB_ITEM

Типовий набір полів для DAM:

  • UF_COPYRIGHT — правовласник (рядок)
  • UF_LICENSE — тип ліцензії (список)
  • UF_EXPIRY_DATE — термін дії прав (дата)
  • UF_USAGE_RIGHTS — сфери застосування (множинний список)
  • UF_PHOTOGRAPHER — автор (рядок)

Після додавання полів вони доступні в інтерфейсі медіабібліотеки та через API CMedialibItem::GetList().

Прив'язка DAM до каталогу

Головне завдання DAM в інтернет-магазині — пов'язати медіафайли з товарами так, щоб одне зображення використовувалось у кількох місцях без дублювання файлу. У Бітрікс це вирішується через властивість інфоблоку типу «Прив'язка до елементів медіабібліотеки».

Створюється властивість в інфоблоці каталогу з типом E:MEDIALIB — це прив'язка до b_medialib_item.ID. При зміні файлу в медіабібліотеці всі товари, що його використовують, автоматично отримують оновлену версію.

Пошук по медіабібліотеці

Стандартний пошук по b_medialib_item працює лише за NAME і KEYWORD. Для пошуку за UF-полями потрібен кастомний запит:

$items = CMedialibItem::GetList([
    'order'  => ['ID' => 'DESC'],
    'filter' => [
        'KEYWORD' => 'product-photo',
        'UF_LICENSE' => 'royalty-free',
    ],
    'arSelectFields' => ['ID', 'NAME', 'FILE_ID', 'UF_COPYRIGHT'],
]);

Для повнотекстового пошуку за метаданими підключається модуль search — у методі CSearch::Index() індексуються поля UF.

Завантаження через API

Програмне завантаження файлу в медіабібліотеку з метаданими:

CModule::IncludeModule('fileman');

$fileId = CFile::SaveFile([
    'name'       => 'product-main.jpg',
    'type'       => 'image/jpeg',
    'tmp_name'   => '/tmp/upload.jpg',
    'MODULE_ID'  => 'fileman',
], 'medialib');

$itemId = CMedialibItem::Add([
    'COLLECTION_ID' => $collectionId,
    'FILE_ID'       => $fileId,
    'NAME'          => 'Фото товару',
    'KEYWORD'       => 'каталог, сезон-2024',
    'FIELDS'        => [
        'UF_COPYRIGHT' => 'Acme Studio',
        'UF_LICENSE'   => 'royalty-free',
    ],
]);

Що входить у налаштування

  • Аудит поточної структури медіабібліотеки та файлового сховища
  • Створення ієрархії колекцій під потреби проекту
  • Додавання UF-полів для розширених метаданих
  • Налаштування прив'язки медіабібліотеки до інфоблоку каталогу
  • Реалізація розширеного пошуку за метаданими
  • Налаштування прав доступу до колекцій за групами користувачів