Как при импорте элементов hl блока получить номер строки в которой ошибка (не заполнено поле)?

В 1C-Bitrix при импорте элементов hl блока получить номер строки, в которой произошла ошибка, можно с помощью обработчика события "OnAfterIBlockElementAdd". Для этого вам потребуется следующий набор действий:

1. Создайте свой модуль, предположим, назовем его "my.module".
2. В папке "bitrix/modules/my.module" создайте файл "include.php" и добавьте в него следующий код:

<?
use BitrixMainEventManager;
use BitrixMainEventResult;

EventManager::getInstance()->addEventHandler("iblock", "OnAfterIBlockElementAdd", "myOnAfterIBlockElementAdd");

function myOnAfterIBlockElementAdd(&$arFields)
{
    // Получаем номер HL блока
    $hlBlockId = YOUR_HL_BLOCK_ID;

    // Получаем ID элементов, которые были успешно импортированы
    $successElements = [];
    foreach ($arFields as $key => $value) {
        if (strpos($key, 'ELEMENT_') === 0 && is_numeric($value)) {
            $successElements[] = $value;
        }
    }

    // Получаем список элементов HL блока
    $hlBlockElements = [];
    $rsElements = BitrixHighloadblockHighloadBlockTable::getList([
        'filter' => ['ID' => $hlBlockId],
    ]);
    if ($hlBlock = $rsElements->fetch()) {
        $entity = BitrixHighloadblockHighloadBlockTable::compileEntity($hlBlock);
        $entityDataClass = $entity->getDataClass();
        $rsData = $entityDataClass::getList([
            'filter' => ['ID' => $successElements],
            'select' => ['ID'],
        ]);
        while ($arData = $rsData->fetch()) {
            $hlBlockElements[] = $arData['ID'];
        }
    }

    // Проверяем, что все элементы HL блока были успешно импортированы
    if (count($hlBlockElements) !== count($successElements)) {
        $errorElements = array_diff($successElements, $hlBlockElements);

        // Обрабатываем ошибки
        foreach ($errorElements as $errorElement) {
            // Получаем номер строки
            $rsElement = BitrixHighloadblockHighloadBlockTable::getRowById($errorElement);
            $rowNumber = $rsElement['ID'];

            // Делаем что-то с номером строки, в которой произошла ошибка
        }
    }
}

3. В файле "bitrix/php_interface/init.php" добавьте следующий код для подключения модуля:

<?
BitrixMainLoader::includeModule('my.module');

4. Замените YOUR_HL_BLOCK_ID на ID вашего HL блока.

Обратите внимание, что код проверяет только успешно импортированные элементы, но возможно, вам также потребуется проверить и другие кейсы, например, пустые значения или неправильный формат данных. В этом случае можно использовать дополнительные проверки и обрабатывать ошибки соответствующим образом.