Не проверенный вариантПопробовать обновление коэффициентов по событию завершения импорта каждого 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 затем вызывает ваш код обновления коэффициентов для каждого элемента инфоблока. Вы можете адаптировать этот код под свои требования.