Очистка свойств типа справочник в элементе

На неделе аж 2 раза случилась одна и та же задачка у несвязанных клиентов. Точно надо записать. В умном фильтре появились пустые свойства, т.е. чекбокс есть, а надпись рядом отсутствует, а еще и не один пустой, а несколько. Как известно умный фильтр собирает данные свойств помеченные как участвующие в умном фильтре для текущего раздела инфоблока. [spoiler]Стало быть если что-то выводится значит у этого есть значение, но по какой-то непонятной причине это значение невозможно вывести. Причина довольно проста, в обоих случаях свойства элемента было типа «Справочник», в этом случае в элементе хранится XML_ID элемента справочника, если мы удалим из самого справочника (highloadblock) элемент за ненадобностью в элементе инфоблока, который ссылается на это самое удаленное свойство ни чего не произойдет, кроме того что элемент нам будет говорить, что свойство не установлено, но в тайне будет хранить в своем поле VALUE для этого свойства значение, и изменить это значение можно только присвоив новое. Т.е. если таких элементов мало можно в ручную им присвоить новые значения, а затем обнулить при необходимости, а вот если их много, тогда скрипт примерно следующий:

$arSelect = Array("ID", "NAME", "PROPERTY_<ИМЯ>");

$arFilter = Array("IBLOCK_ID"=>4, "PROPERTY_<ИМЯ>"=><ПОТЕРЯННОЕ ЗНАЧЕНИЕ>l); 
$res = CIBlockElement::GetList(Array("iD"=>"ASC"), $arFilter, false, false, $arSelect); 
while($ob = $res->GetNextElement()) 
{ 
   CIBlockElement::SetPropertyValuesEx($arFields[ID], $IBLOCK_ID, array("<ИМЯ>"=>"")); 
}
Ну естественно надо наложить какие-то условия и включить фантазию, это голая схема.