Export Additional Attributes from 1C to Bitrix: A Practical Setup Guide

Export Additional Attributes from 1C to Bitrix: A Practical Setup Guide Exporting additional attributes from 1C to Bitrix is not just copying fields. Imagine: a product in 1C has 50 characteristics, but only a dozen are displayed on the site. Or instead of values, GUIDs appear, filters don't work

Our competencies:

Frequently Asked Questions

Export Additional Attributes from 1C to Bitrix: A Practical Setup Guide

Exporting additional attributes from 1C to Bitrix is not just copying fields. Imagine: a product in 1C has 50 characteristics, but only a dozen are displayed on the site. Or instead of values, GUIDs appear, filters don't work, and the product card is empty. Customers complain, conversion drops. If you encounter such a situation, the export of additional attributes from 1C is configured incorrectly — and it's time to fix it. For example, the "Additional Details" directory in 1C:UT 11 often remains unexported, and reference attributes are wrapped in GUID. As a result, important filters get lost on the site, product pages look incomplete, and managers spend hours manually filling data. We have configured dozens of integrations and developed a methodology that solves these problems efficiently, providing significant cost savings.

Types of Additional Attributes in 1C

In 1C:UT 11, attributes live in two places:

  • Object attributes (AdditionalAttributes) — directly in the directory element. Exported with every exchange.
  • Object details (AdditionalDetails) — in a separate information register. Require separate inclusion in the exchange node settings.

Value types: String, Number, Date, Boolean, Reference to a directory, and String with variants. The reference type is the main headache.

How Attributes Are Transferred in CommerceML

In the XML file, attributes are placed inside <Product>:

<ValuesOfAttributes> <ValueOfAttribute> <Name>Power</Name> <Value>2500</Value> </ValueOfAttribute> <ValueOfAttribute> <Name>PowerUnit</Name> <Value>W</Value> </ValueOfAttribute> <ValueOfAttribute> <Name>WarrantyPeriod</Name> <Value>24</Value> </ValueOfAttribute> </ValuesOfAttributes> 

Bitrix, during import, creates infoblock properties with the same names and fills them with values.

Comparison of Attribute Types and Representation in Bitrix

Type in 1C Example Infoblock property type Notes
String Power: 2500 String Transferred unchanged
Reference Manufacturer: [GUID] String (link?) Requires mapping
Multiple Applicability: [A, B, C] String (multiple) Collect values into array

Problem: Automatic Property Codes

On the first import, Bitrix assigns codes like CML2_ATTR_001, CML2_ATTR_002. Working with them in templates is painful. Solution: before the production import, run a test on a copy, then manually rename codes to readable ones (POWER_WATT, WARRANTY_MONTHS). Subsequent imports won't change them because Bitrix matches by name.

Or — write a handler on OnIBlockPropertyAdd:

AddEventHandler('iblock', 'OnIBlockPropertyAdd', 'setReadablePropertyCode'); function setReadablePropertyCode(&$arFields) { if (empty($arFields['CODE'])) { $arFields['CODE'] = CUtil::translit( $arFields['NAME'], 'ru', ['change_case' => 'U', 'replace_space' => '_'] ); } } 

How to Solve the GUID Problem? Two Approaches

Reference attributes in XML come as GUID:

<ValueOfAttribute> <Name>Manufacturer</Name> <Value>f3a2b1c0-1234-5678-abcd-ef0123456789</Value> </ValueOfAttribute> 

On the site, the product card shows gibberish. Options:

  1. On the 1C side: before export, replace the GUID with the name of the directory element. This is better — it doesn't burden Bitrix with extra logic.
  2. On the Bitrix side: maintain a mapping table "GUID → value" built from the initial exchange, and substitute the value when writing the property.

Replacement on the 1C side doesn't load Bitrix but requires access to the configuration. Mapping on the Bitrix side is faster to set up (2–3 hours) but riskier when directories are updated.

What to Do with Multiple Values?

If an attribute in 1C allows multiple values, the XML passes them as repeating tags with the same name. The property in Bitrix must be "Multiple". The handler collects all values into an array:

$multiValues = []; foreach ($arXML['ADDITIONAL_REQUISITES'] as $req) { if ($req['NAME'] === 'Applicability') { $multiValues[] = $req['VALUE']; } } $arProps['APPLICABILITY'] = $multiValues; 

Step-by-Step Setup Guide

  1. Export a test XML from 1C — ensure all attribute types are included.
  2. Analyze attributes — identify reference, multiple, and string-with-variants types.
  3. Choose an approach — decide where to handle GUID: in 1C or Bitrix.
  4. Write a handler — modify the exchange module or create event handlers.
  5. Test on a copy — verify types, filters, and product cards.
  6. Deploy and train — move settings to production, set up incremental exchange.
Typical Setup Mistakes - Object details not enabled in the 1C exchange node settings. - Infoblock property not marked as Multiple for attributes with repeating values. - No handling of GUID for reference attributes. - Property codes not renamed after the first import. - Incremental exchange not configured — changes are not pulled automatically.

Case Study: Industrial Catalog with 60+ Attributes

From our practice: a pump equipment manufacturer. Each product is described by 60–80 parameters (working pressure, temperature range, housing material, protection class). In 1C — additional attributes. On the first import, Bitrix created 78 properties with unreadable codes. We spent a day renaming codes and configuring types: numeric as "Number" with units of measurement; string as "List" for filtering.

After configuration, Bitrix's smart filter component automatically offers filtering by pressure, temperature, and material — without additional development. Incremental attribute updates (when values change in 1C) take 4 minutes for the entire catalog of 2,300 items. Saving in manual maintenance time — up to 20 hours per month, which at an average operator rate of 500 RUB/hour gives a saving of 10,000 RUB monthly, and over a year 120,000 RUB. This is 1.5 times more efficient than manual data entry.

What Is Included in the Work

  • Analysis — export test XML, identify all attribute types and references.
  • Design — choose processing scheme (1C or Bitrix side), configure multiple properties.
  • Implementation — modify exchange module / write handlers, rename codes.
  • Testing — verify on a catalog copy, compare with 1C, check filters and product cards.
  • Deployment — transfer settings to production, train operators.
  • Documentation — provide detailed instructions and configuration files.
  • Support — 30 days of post-deployment support and bug fixes.

Timeline: 3 to 7 working days depending on the number of attributes and complexity of reference fields. Cost is calculated individually — typical projects start at 80,000 RUB. Request an estimate from our engineers.

Our Experience and Guarantees

  • 8+ years of experience with 1C and Bitrix integration.
  • Over 120 completed data exchange projects.
  • We provide documentation on settings and guarantee our work.

Want the same? Get a consultation for your project — we will analyze your configuration and propose a solution. Contact us — let's start with an analysis of your setup.

According to CommerceML, the XML structure must contain all necessary attributes for correct data transfer.