-
Notifications
You must be signed in to change notification settings - Fork 11
Description
Если сделать запрос - собирается список свойств и кешируется в методе
$props = IblockStructure::properties($iblockId);
в файле /vendor/maximaster/tools.orm/src/Maximaster/Tools/Orm/Iblock/ElementTable.php
Если после этого добавить свойство в инфоблок - то в кеше его нет и выдается exception что свойства не существует.
Unknown field definition ASD (ASD) for Product Entity.[/home/bitrix/www/bitrix/modules/main/lib/entity/querychain.php]"
Не очень приятная ситуация когда обновления заливаются на бой а миграция еще не применилась.
Как решить - либо не кешировать либо более правильно строить уникальный ключ. Можно сравнивать время изменения инфоблока, или добавить в уникальный ключ количество свойств. Хотя бы при добавлении свойства он бы сбрасывался. Да, придется делать всегда запрос для валидации кеша, но это лучше чем текущая ситуация.
В идеале сделать обработчик который при апдейте инфоблока сбрасывал бы кеш свойств.