Новая версия процедуры. Теперь вроде работает