Есть товар электроды, единица измерения тонны, количество на складе 0,02т. В пачке 0,005т. "Коэффициент единицы измерения" - ставится равным 1. Масса вопросов по этой теме.
это "Коэффициент единицы измерения" в выгрузке?
<БазоваяЕдиница Код="168 " НаименованиеПолное="Тонна">
<Пересчет>
<Единица>168</Единица>
<Коэффициент>1</Коэффициент>
</Пересчет>
</БазоваяЕдиница>
Но, если я руками пишу <Коэффициент>0.005Коэффициент>, у товара "Коэффициент единицы измерения" остается равным 1
Если руками в админке меняю "Коэффициент единицы измерения" - все работает как надо, и склад и корзина отрабатывает правильно.
1. Вопросы, как должен выглядеть этот коэффициент в выгрузке?
2. Для 1С-ника нашел такой мануал,
https://enote.cloud/inf/encyclopedia/kak-vesti-uch... он подходит для него?
Спасибо за помощь!
в отчаянии пробовал уже такой код (id для тонн - 7), они и он не срабатывает
Код
AddEventHandler("iblock", "OnAfterIBlockElementUpdate", "OnAfterIBlockElementUpdateHandler");
function OnAfterIBlockElementUpdateHandler(&$arFields) {
\Bitrix\Main\Loader::includeModule('catalog');
// проверяем единицы измерения, если == тонны (ID=>7), то изменяем коэфициент с 1 на 0.005
if (CModule::IncludeModule("sale") && CModule::IncludeModule("iblock")) {
$db_propss = CIBlockElement::GetProperty($arFields["IBLOCK_ID"], $arFields["ID"], array("sort" => "asc"), Array("CODE" => "CML2_BASE_UNIT"));
if ($ar_propss = $db_propss->Fetch()) {
$EDINICA_IZMERENIA = intval($ar_propss["DESCRIPTION"]);
}
if ($EDINICA_IZMERENIA == 7) {
$r = CCatalogMeasureRatio::getList($arOrder = array(), $arFilter = array("PRODUCT_ID" => $arFields["ID"]), $arGroupBy = false, $arNavStartParams = false, $arSelectFields = array());
if ($ar_r = $r->GetNext()) {
if ($ar_r[RATIO] != '0.005') {
$db_res = CCatalogMeasureRatio::update($ar_r["ID"], array("RATIO" => 0.005));
}
}
}
}
}