DAM Setup for 1C-Bitrix: Digital Asset Management

DAM (Digital Asset Management) Setup for 1C-Bitrix We configure DAM on top of the 1C-Bitrix media library. The standard fileman module is a simple file tree without metadata, full-text search, or file-level permissions. Result: 30–40% duplicates, finding a file takes 15 minutes, no version contro

Our competencies:

Frequently Asked Questions

DAM (Digital Asset Management) Setup for 1C-Bitrix

We configure DAM on top of the 1C-Bitrix media library. The standard fileman module is a simple file tree without metadata, full-text search, or file-level permissions. Result: 30–40% duplicates, finding a file takes 15 minutes, no version control. Our engineers with 5+ years of experience solve the problem: we add hierarchical tags, UF fields, link files to products without duplication, and set up versioning. A typical project pays for itself in 3–4 months by cutting duplicates, leading to significant savings on storage.

Why the Standard Media Library Falls Short

The b_file table is the central registry of all files. It contains basic fields: ID, MODULE_ID, HEIGHT, WIDTH, FILE_SIZE, CONTENT_TYPE, SUBDIR, FILE_NAME, ORIGINAL_NAME, DESCRIPTION, HANDLER_ID. On top of it, the media library adds a folder structure (b_medialib_collection) and file-to-collection links (b_medialib_item). Each item has only a KEYWORD field (comma-separated tags) and DESCRIPTION. This is insufficient for a full DAM. Missing: hierarchical tags, versioning, per-file permissions, and content-based search. We address these.

How to Integrate DAM with the Product Catalog?

The main challenge is linking media files to products so that one image can be used in multiple items without file duplication. In Bitrix, this is done via an infoblock property of type "Link to media library elements" (E:MEDIALIB). When the file in the media library changes, all linked products automatically get the updated version. We also set up automatic linking via agents: when an image is uploaded to the media library, a product is created or its visuals are updated. This reduces manual linking time by 95%.

What UF Fields Are Needed for DAM?

User fields (UF) are added via the interface: Settings → Users → User fields → Object type MEDIALIB_ITEM. Typical set:

  • UF_COPYRIGHT – copyright holder (string)
  • UF_LICENSE – license type (list)
  • UF_EXPIRY_DATE – rights expiry date (date)
  • UF_USAGE_RIGHTS – usage scope (multiple list)
  • UF_PHOTOGRAPHER – author (string)

After adding, fields are accessible via CMedialibItem::GetList() API. For full-text search on UF fields, we activate the search module and write an indexing agent.

UF Field Type Example Value
UF_COPYRIGHT string "Acme Inc."
UF_LICENSE list "royalty-free", "editorial"
UF_EXPIRY_DATE date 2025-12-31
UF_USAGE_RIGHTS multiple "web", "print", "social"
UF_PHOTOGRAPHER string "John Doe"

Comparison: Standard Media Library vs DAM (Our Setup)

Feature Standard Media Library DAM After Setup
Metadata Only Name, Keywords, Description Custom UF fields (license, author, rights expiry)
Search By Name and Keywords Full-text search over all UF fields via search module
Tag hierarchy Absent Multi-level dictionaries (HL blocks) linked to items
Product linking No automatic Via infoblock property E:MEDIALIB, sync agents
Versioning None Based on media library events
Access rights Only per collection Per file + custom groups
File search time 5–15 minutes 1–2 seconds
Duplicates 30–40% <5%

Media Library Search: Custom Query

Standard search works only on NAME and KEYWORD. For UF field search you need a custom query:

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

For full-text search over all metadata, activate the search module—in CSearch::Index() we index UF fields. We set up an agent with periodic indexing every 15 minutes.

Upload via API: Example

Programmatic file upload to media library with metadata:

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' => 'каталог, сезон', 'FIELDS' => [ 'UF_COPYRIGHT' => 'Acme Studio', 'UF_LICENSE' => 'royalty-free', ], ]); 
Typical Mistakes When Setting Up DAM
  • Not indexing UF fields for search – users won't find files by license or author.
  • Using one field for different media types (photo, video, docs) – create separate UF fields instead.
  • Not configuring collection access rights – confidential materials become accessible to all.

Work Process: From Audit to Deployment

  1. Audit – analyze current media library structure, file storage, duplicate count, metadata. (1–2 days)
  2. Design – design collection hierarchy, define UF fields, access rights, catalog linking scheme. (1 day)
  3. Implementation – create UF fields, configure search, versioning, agents, write custom display components. (3–5 days)
  4. Testing – verify upload, search, product linking, access rights, performance. (1–2 days)
  5. Deployment – release to production, train editors. You receive full documentation and source code.

Timeline – from 1 to 3 weeks depending on scope. We evaluate your project for free in 1 day. Contact us for a consultation.

What’s Included in the Setup

  • Audit of current media library structure and file storage
  • Creation of collection hierarchy tailored to the project
  • Addition of UF fields for extended metadata
  • Configuration of media library–catalog linking
  • Implementation of extended metadata search
  • Configuration of collection access rights by user groups
  • Versioning via events (optional)
  • Integration with REST API for external access

We guarantee the functionality specified in the technical requirements. Order the setup—get a DAM that reduces file search time by 3x and lowers duplicates to <5%. More details on media library capabilities in the official documentation.