Вы запустили интернет-магазин на 1С-Битрикс, товары из 1С импортируются, но штрихкоды не передаются. Покупатели в B2B требуют EAN-13 для загрузки в свои системы, а стандартный обмен CommerceML их игнорирует. Мы сталкивались с этой задачей десятки раз — вот как её решаем. Наш опыт позволяет гарантировать корректную синхронизацию за 3–5 дней, сократив ручной ввод на 90%.
Как штрихкоды хранятся в 1С
В 1С:УТ 11 и других конфигурациях штрихкоды хранятся в регистре сведений ШтрихкодыНоменклатуры. Структура: Номенклатура (ссылка на справочник), Характеристика (если привязан к SKU), Единица измерения (разные EAN для штуки, коробки, поддона), Штрихкод (строка EAN-8, EAN-13, Code128, QR, Datamatrix), Тип штрихкода. Один товар может иметь несколько штрихкодов: EAN-13 для единицы, EAN-13 для упаковки (6 штук), Code128 для поддона, дополнительный штрихкод поставщика.
Почему стандартный CommerceML не подходит?
В CommerceML 2.08 есть тег Штрихкод, но поддержка в стандартном модуле обмена Битрикс ограничена. Штрихкод передаётся как дополнительный реквизит или внутри <Товар>:
<Товар><Ид>товар-guid</Ид><Штрихкод>4607025491117</Штрихкод></Товар>
Некоторые версии модуля обмена Битрикс записывают этот тег в свойство CML2_BAR_CODE. Проверьте: если это свойство существует после первого импорта — штрихкод передаётся стандартно. Если нет — нужен обработчик события импорта.
| Параметр | Стандартный CommerceML | Кастомный обработчик |
|---|---|---|
| Количество штрихкодов | Один на товар | Множественные (по единицам измерения) |
| Поддержка SKU | Нет | Да |
| Гибкость | Ограничен | Полный контроль — в 3 раза больше возможностей |
| Сложность настройки | Минимальная | Средняя (требуется программист) |
Как передать множественные штрихкоды из 1С
Для нескольких штрихкодов (по единицам измерения) стандартного тега недостаточно. Используем ДополнительныеРеквизиты:
<ДополнительныеРеквизиты>
<ЗначениеРеквизита>
<Наименование>ШтрихкодШтука</Наименование>
<Значение>4607025491117</Значение>
</ЗначениеРеквизита>
<ЗначениеРеквизита>
<Наименование>ШтрихкодКоробка</Наименование>
<Значение>4607025491124</Значение>
</ЗначениеРеквизита>
</ДополнительныеРеквизиты>
В Битрикс создаём свойства инфоблока BARCODE_UNIT и BARCODE_BOX с типом «Строка». Обработчик события OnIBlockCMLImport2ElementAdd заполняет эти свойства:
AddEventHandler('catalog', 'OnIBlockCMLImport2ElementAdd',
'fillBarcodeProperties');
function fillBarcodeProperties(&$arFields, &$arProps, $arXML) {
if (isset($arXML['BARCODE_UNIT'])) {
$arProps['BARCODE_UNIT'] = $arXML['BARCODE_UNIT'];
}
if (isset($arXML['BARCODE_BOX'])) {
$arProps['BARCODE_BOX'] = $arXML['BARCODE_BOX'];
}
}
Штрихкоды у торговых предложений (SKU)
Если штрихкод привязан к характеристике (например, разные EAN у красной и синей футболки), передаём его на уровне предложения. В XML предложения:
<Предложение>
<Ид>товар-guid#характеристика-guid</Ид>
<Штрихкод>4607025491131</Штрихкод>
</Предложение>
В инфоблоке предложений создаём свойство BARCODE и аналогичный обработчик для события OnIBlockCMLImport2OfferAdd.
Поиск по штрихкоду
После заполнения свойства BARCODE поиск реализуется через стандартный компонент поиска Битрикс или кастомно:
$result = CIBlockElement::GetList(
[],
['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'PROPERTY_BARCODE' => $scannedCode],
false, false, ['ID', 'NAME', 'DETAIL_PAGE_URL']
);
Для мобильного сайта подключаем библиотеку для сканирования через камеру (ZXing или QuaggaJS). Пользователь сканирует упаковку — сайт мгновенно открывает карточку товара.
Кейс: B2B-площадка с EDI (из нашей практики)
Производитель продуктов питания с EDI-интеграцией: ритейлеры требуют EAN-13 на каждую позицию прайс-листа. Штрихкоды велись в 1С, но исторически не выгружались на B2B-портал. Наш клиент тратил 2 часа в день на ручной ввод.
Решение: единовременная выгрузка всех штрихкодов из 1С (внешняя обработка → CSV), загрузка в Битрикс через скрипт массового обновления свойства BARCODE. Время: 4 часа на 12 тыс. позиций. Настроили последующую синхронизацию при обмене: новые товары приходят со штрихкодом в ДополнительныеРеквизиты, обработчик заполняет свойство. Изменение штрихкода существующей позиции — через тот же механизм. Ручной ввод сократился на 95%.
Пошаговая инструкция: как настроить выгрузку штрихкодов
- Проанализируйте текущую схему обмена: версии 1С, конфигурацию, модуль обмена.
- Создайте свойства инфоблока для штрихкодов (основной и для SKU).
- Настройте передачу штрихкодов из 1С через дополнительные реквизиты или стандартный тег.
- Разработайте обработчик событий импорта для заполнения свойств.
- Проверьте синхронизацию на тестовом контуре.
- Обучите менеджеров работе с штрихкодами.
Что входит в работу
- Анализ текущей схемы обмена (версии 1С, конфигурация, модуль обмена)
- Настройка свойств инфоблоков и предложений
- Разработка обработчика событий импорта
- Тестирование синхронизации на тестовом контуре
- Документация по настройкам и доработкам
- Обучение менеджеров (1–2 часа)
- Поддержка месяц после внедрения
Сроки и стоимость
Сроки: от 3 до 7 дней в зависимости от сложности (множественные штрихкоды, SKU, EDI). Стоимость рассчитывается индивидуально после анализа вашей схемы. Получите консультацию по вашей задаче — оценим проект бесплатно.
Мы занимаемся интеграциями 1С и Битрикс более 10 лет, выполнили более 200 проектов. Гарантируем результат, закреплённый в договоре и техническом задании. Закажите настройку выгрузки — и забудьте о ручном вводе штрихкодов.







