Выгрузка длины, ширины, высоты и веса из 1с в параметры 1с Битрикс
Мой вариант обработчика выгружает "Вес" из реквизитов (предварительно нужно зайти в настройки выгрузки 1с и задать реквизит Вес - Вес), а "Габариты" будем выгружать из свойств товара (предварительно создал доп свойства типа "число" в 1с и заполнил их).
<?php
$addProps = CIBlockElement::GetList (
Array("ID" => "ASC"),
Array("IBLOCK_ID" => 118), // ID инфоблока
false,
false,
Array(
'ID',
'PROPERTY_CML2_TRAITS', // Реквизиты (для получения веса)
'PROPERTY_DLINA_MM', // Свойство длины
'PROPERTY_SHIRINA_MM', // Свойство ширины
'PROPERTY_VYSOTA_MM' // Свойство высоты
)
);
while($ar_fields = $addProps->GetNext())
{
$arrDesc = $ar_fields['PROPERTY_CML2_TRAITS_DESCRIPTION'];
$arrValue = $ar_fields['PROPERTY_CML2_TRAITS_VALUE'];
$arrThmb = [];
forEach($arrDesc as $key=>$value ){
$arrThmb[$value] = $arrValue[$key];
}
$arrResult['Вес'] = $arrThmb['Вес'];
echo 'Товару с ID-' . $ar_fields['ID'] .' установлены параметры';
echo 'Вес:' . $arrResult['Вес'].' / ';
echo 'Длина:' . $ar_fields['PROPERTY_DLINA_MM_VALUE'].' / ';
echo 'Ширина:' . $ar_fields['PROPERTY_SHIRINA_MM_VALUET'].' / ';
echo 'Высота:' . $ar_fields['PROPERTY_VYSOTA_MM_VALUE'];
Cmodule::IncludeModule('catalog');
$PRODUCT_ID = $ar_fields['ID'];
$arFields = array(
'WEIGHT' => $arrResult['Вес'],
'WIDTH' => $ar_fields['PROPERTY_SHIRINA_MM_VALUE'],
'HEIGHT' => $ar_fields['PROPERTY_VYSOTA_MM_VALUE'],
'LENGTH' => $ar_fields['PROPERTY_DLINA_MM_VALUE']
);
CCatalogProduct::Update($PRODUCT_ID, $arFields);
}
?>