Михаил Базаров Разработка на 1С-Битрикс Михаил Базаров

Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства элемента

Внимание! Все сообщения на форуме проходят модерацию. Ваше сообщение появится после проверки.
Заполнить коэффициент единицы измерения (MEASURE_RATIO) из свойства элемента

Задачка: Каталог наполняется из 1С, но 1С не передает коэффициент единицы измерения (особенность конкретной 1С, а вообще она умеет). Вместо этого, коэффициенты забиваются в обычный, дополнительный реквизит и приходят на сайт как свойство.
Не проверенный вариант
Попробовать обновление коэффициентов по событию завершения импорта каждого xml файла
Код
use Bitrix\Main\EventManager;

// Регистрируем обработчик события OnSuccessCatalogImport1C
EventManager::getInstance()->addEventHandler(
    'catalog',
    'OnSuccessCatalogImport1C',
    'OnSuccessCatalogImport1CHandler'
);

function OnSuccessCatalogImport1CHandler(&$arFields)
{
    if (isset($arFields['IBLOCK_ID'])) {
        // Добавьте ваш код обработки данных после успешного импорта 1С
        // ...

        // Пример обновления коэффициентов
        updateMeasureRatiosAfterImport($arFields['IBLOCK_ID']);
    }
}

function updateMeasureRatiosAfterImport($iblockId)
{
    // Получаем элементы инфоблока
    $updateElements = \Bitrix\Iblock\ElementTable::getList([
        'select' => ['ID'],
        'filter' => ['IBLOCK_ID' => $iblockId],
    ]);

    while ($arFields = $updateElements->fetch()) {
        // Ваш код обновления коэффициентов
        updateMeasureRatios($arFields);
    }
}

function updateMeasureRatios(&$arFields)
{
    // Ваш код обновления коэффициентов
    // ...
}

В данном примере, при событии "OnSuccessCatalogImport1C" будет вызван обработчик OnSuccessCatalogImport1CHandler, который выполнит ваш код. Функция updateMeasureRatiosAfterImport затем вызывает ваш код обновления коэффициентов для каждого элемента инфоблока. Вы можете адаптировать этот код под свои требования.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Загрузить файлы
 

Блог-note Заметки по 1С-Битрикс