Пролог:
Иногда, когда клиент хочет необыкновенного (сортировка по величине скидки, по рейтингу, например) приходится создавать т.н. "служебные" свойства и заполнять их по агенту или по событиям. Эти свойства мы обычно выводим в админке (чтобы была возможность увидеть значения). Но часто клиент не знает, что это поле считается автоматически, и имеет место ситуация, когда он меняет это значение, оно пересчитывается позже обратно и у него возникает вопрос - "почему сломалось свойство и значение не сохраняется"?
Как решить:
Сделать галочку для свойств "Только для чтения", чтобы в админке нельзя было редактировать свойство, а только видеть его значение. У пользовательских же свойств это есть, давайте сделаем и для свойств элементов инфоблока.
Бывают случаи, когда нужно фильтровать по свойству связанного элемента (например, по стране бренда), но это не представляется возможным в текущей версии API. И тогда делают денормализацию базы данных - например, у товара хранится не только бренд, но и страна бренда (копируются из бренда в товар по событию/агенту). Тут уж просто жизненно важно помечать такие свойства как "только для чтения".