в том то и дело что не находится, поэтому встает на первую строку в списке.
у Вас проблема в том, что не известно какую запись искать.
так же не понятно определение поля (ItemId) по которому ведется поиск номенклатуры...
X++:
callerControlloc = SysTableLookup::getCallerStringControl(element.args());
callerControlloc - сюда что-нибудь присваивается?