Есть такая гадость. Если в лукапе есть значение и буфер - временный, начинают исчезать строки, идущие до указанного значения.
Попробуйте вот так (в 3.0 помогало):
X++:
void lookupXXX(FormStringControl _ctrl)
{
TmpIdRef tmpIdRef;
SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(TmpIdRef), _ctrl);
str saveText;
;
saveText = _ctrl.text();
_ctrl.text("");
_ctrl.pasteText("", false); // Disable filter effects
sysTableLookup.addLookupfield(fieldNum(TmpIdRef, Name), true);
sysTableLookup.addLookupfield(fieldNum(TmpIdRef, HelpTxt));
...
sysTableLookup.parmTmpBuffer(tmpIdRef);
sysTableLookup.performFormLookup();
_ctrl.pasteText(saveText, false);
}