1. Да, для всех, которые планируете вытягивать в реестр.
2. Проверьте отладчиком в скрипте окна реестра на этом событии dlData.Dataset.RecordsCount = 1? Если да - тогда второй вариант подойдет.
Попробуйте, все-таки второй вариант. Дело в том, что скорее всего эта функция выполняется снова и снова для каждой записи, которая подгружается в реестр.