Настройка выгрузки единиц измерения из 1С в 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка выгрузки единиц измерения из 1С в 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1175
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Настройка выгрузки единиц измерения из 1С в 1С-Битрикс

Единицы измерения — техническая деталь, которую часто упускают при интеграции. Пока продаёшь всё в штуках, это незаметно. Но у дистрибьютора стройматериалов один товар продаётся в погонных метрах, другой в квадратных, третий в рулонах по 50 метров. Передать это корректно на сайт — нетривиальная задача.

Как единицы измерения хранятся в 1С

В 1С:УТ единицы измерения хранятся в справочнике КлассификаторЕдиницИзмерения (ОКЕИ). Каждая единица имеет:

  • Код по ОКЕИ (796 = штука, 006 = метр, 055 = кг и т.д.)
  • Краткое наименование (шт, м, кг)
  • Полное наименование

Номенклатура может иметь несколько единиц измерения:

  • Базовая единица — в которой ведётся складской учёт
  • Единица продажи — в которой продаётся покупателю (может отличаться)
  • Дополнительные единицы — с коэффициентами пересчёта

Пример: кабель учитывается в метрах (базовая), продаётся в бухтах по 100 метров (единица продажи). Покупатель заказывает «2 бухты» → на склад уходит запрос на 200 метров.

Передача единиц измерения в CommerceML

В CommerceML 2.08 единица измерения передаётся в теге БазоваяЕдиница:

<Товар>
  <Ид>товар-guid</Ид>
  <Наименование>Кабель NYM 3x2.5</Наименование>
  <БазоваяЕдиница КодОКЕИ="006" НаименованиеПолное="Метр">м</БазоваяЕдиница>
</Товар>

Битрикс сохраняет единицу измерения в поле MEASURE элемента инфоблока и в таблице b_catalog_measure. При добавлении в корзину единица отображается рядом с количеством.

Дополнительные единицы — с коэффициентами — передаются через ЕдиницыИзмерения:

<ЕдиницыИзмерения>
  <ЕдиницаИзмерения>
    <Код>бухта</Код>
    <НаименованиеПолное>Бухта</НаименованиеПолное>
    <НаименованиеКраткое>бух</НаименованиеКраткое>
    <Коэффициент>100</Коэффициент>
    <ЦенаВключаетНалоги>false</ЦенаВключаетНалоги>
  </ЕдиницаИзмерения>
</ЕдиницыИзмерения>

Стандартный модуль обмена Битрикс поддерживает этот тег и создаёт единицы измерения в торговом каталоге (b_catalog_unit) с коэффициентами пересчёта.

Настройка кратности в Битрикс

Для некоторых товаров минимальная покупка — кратна единице измерения. Рулон обоев нельзя купить «полрулона». Упаковка гвоздей — только целыми коробками.

В Битрикс это настраивается через:

  • MEASURE_RATIO — кратность (например, 1 для штук, 0.5 для весового товара)
  • Поле количества в корзине с шагом (атрибут step в форме добавления)

При обмене с 1С: если в УТ у номенклатуры есть кратность упаковки — передаём её в ДополнительныеРеквизиты и обрабатываем в обработчике импорта:

if (isset($arXML['PACKAGE_RATIO'])) {
    // Устанавливаем кратность в торговом каталоге
    CCatalogProduct::Update($elementId, [
        'MEASURE_RATIO' => floatval($arXML['PACKAGE_RATIO']),
    ]);
}

Весовые товары

Для весового товара (продаётся в кг с точностью до 0,001) в корзине нужно поле ввода с нецелым значением. Битрикс поддерживает это через настройку MEASURE_RATIO < 1 или через свойство STEP в торговом каталоге.

Цена при этом — за базовую единицу (за 1 кг). Итоговая стоимость = цена × введённое количество.

Строительные материалы: мультиединичный каталог

Строительный магазин — классический пример сложных единиц измерения:

Товар Единица учёта Единица продажи Коэффициент
Ламинат м² Уп (2,04 м²) 2,04
Кабель м Бухта (100 м) 100
Цемент кг Мешок (25 кг) 25
Профиль м Пруток (6 м) 6

Каждая строка — отдельная настройка единицы измерения и кратности в Битрикс. При обмене с 1С все эти коэффициенты должны передаваться корректно.

Кейс: оптовый магазин кабельной продукции

Оптовик кабелей: 4000 позиций, все в метрах. Продажа — бухтами (длина бухты разная для разных кабелей: 25, 50, 100, 200 м). Покупатель на сайте выбирает количество бухт, но видит итоговую длину в метрах.

Реализация:

  • Базовая единица в 1С и Битрикс — метр
  • Единица продажи (из 1С) — бухта с коэффициентом (разным для каждой позиции)
  • В карточке товара: поле «Количество бухт» + поле «Итого метров» (автопересчёт через JS)
  • В корзине: хранится количество в метрах (базовых единицах), отображается в бухтах

Коэффициент бухты передаётся из 1С в ЕдиницыИзмерения. При обновлении — автоматически обновляется в Битрикс при следующем обмене номенклатурой.