andreyryabin / sprint.migration

Миграции для разработчиков (1С-Битрикс)
http://marketplace.1c-bitrix.ru/solutions/sprint.migration/
MIT License
173 stars 56 forks source link

Добавить информации в сообщение об ошибке "HlblockHelper::getHlblockUid: Highload-блок не найден" #68

Closed AlexandrKhurs closed 3 years ago

AlexandrKhurs commented 3 years ago

Если свойство инфоблока некорректно настроено (свойство типа "справочник" содержит ссылку на несуществующий ХЛ-блок) - модуль при попытке создать/импортировать схему данных закономерно выдает ошибку. Но сам текст ошибки не содержит информации о том, какое свойство какого инфоблока ссылается "вникуда". (в моем случае, дословно текст выглядел так: "HlblockHelper::getHlblockUid: Highload-блок не найден" ) Если добавить в сообщение информацию об инфоблоке и проблемном свойстве - это сильно поможет в поиске ошибок.

PS причем, некорректная ссылка на несуществующий инфоблок (а не хайлоад-блок) подобной ошибки не вызывает вообще.

a-batashev commented 3 years ago

Сам вчера потратил время на поиск причины ошибок "IblockTrait::getIblockUid: Инфоблок не найден". В одном случае, это было отсутствие символьного кода у инфоблока, в другом - откуда-то взявшийся код сущности "IBLOCK_0_SECTION" у пользовательского поля.

Готовлю pull request, в котором планирую ловить дополненные исключения из getIblockUid() в prepareExportUserTypeEntity() и выбрасывать снова с добавленной информацией о пользовательском поле.

Например: UserTypeEntityHelper::prepareExportUserTypeEntity: Ошибка экспорта пользовательского поля "88": IblockTrait::getIblockUid: Инфоблок "0" не найден

andreyryabin commented 3 years ago

выкатил ваш ПР в версии 3.29.1 спасибо!