Добрый день! Помогите, разобраться! Поставил обработчик в init.php , который проверяет ошибки в загружаемом файле. Работает исправно. Ошибки находит, но не могу понять как к тексту ошибки добавить номер строки (или строк) импортируемого файла в котором ошибка .
Скрипт обработчика:
$eventManager = \Bitrix\Main\EventManager::getInstance();
$eventManager->addEventHandler('', 'MyBlockOnBeforeAdd', 'OnBeforeAdd');
function OnBeforeAdd(\Bitrix\Main\Entity\Event $event) {
$entity = $event->getEntity();
$entityDataClass = $entity->GetDataClass();
$eventType = $event->getEventType();
$arFields = $event->getParameter("fields");
$arParameters = $event->getParameters();
$result = new \Bitrix\Main\Entity\EventResult();
//модификация данных
if($arFields['UF_NAME_ITEM'] && $arFields['UF_COUNTRY']) {
CModule::IncludeModule("iblock");
if (empty($arFields['UF_XML_ID'])) {
$arFields['UF_XML_ID'] = md5(serialize([$arFields['UF_COUNTRY'],$arFields['UF_NAME_ITEM']]));
}
if (empty($arFields['UF_NAME'])) {
$arFields['UF_NAME'] = $arFields['UF_NAME_ITEM'];
}
if (!empty($arFields['UF_WEIGHT'])) {
$arFields['UF_WEIGHT'] = strtoupper($arFields['UF_WEIGHT']);
}
$result->modifyFields($arFields);
}
// Проверка незаполненных полей
if (empty($arFields['UF_NAME_ITEM']) or empty($arFields['UF_WEIGHT']) or empty($arFields['UF_COUNTRY'])) {
$arErrors = Array();
if (empty($arFields['UF_NAME_ITEM'])) {
$arErrors[] = new \Bitrix\Main\Entity\FieldError($entity->getField("UF_NAME_ITEM"), "Ошибка в поле UF_NAME_ITEM. Поле не должно быть пустым!");
}
if (empty($arFields['UF_WEIGHT'])) {
$arErrors[] = new \Bitrix\Main\Entity\FieldError($entity->getField("UF_WEIGHT"), "Ошибка в поле UF_WEIGHT. Поле не должно быть пустым!");}
if (empty($arFields['UF_COUNTRY'])) {
$arErrors[] = new \Bitrix\Main\Entity\FieldError($entity->getField("UF_COUNTRY"), "Ошибка в поле UF_COUNTRY. Поле не должно быть пустым!");
}
$result->setErrors($arErrors);
}
return $result;
}