Я на форме PurchTable на поле ItemId датасорса PurchLine перекрыл метод Validate() и там сделал так
X++:
public boolean validate()
{
boolean ret;
itemId itemId;
;
itemId = purchLine.itemId;
if (itemId && !inventTable::find(itemId))
Barcode::validateItemBarcode(purchLine, itemId);
ret = super();
return ret;
}
либо можно повесить этот код на метод validateField() таблицы PurchLine (с проверкой входящего поля)
В приципе, это будет правильнее с точки зрения расположения на сервере, но такая проверка будет действовать всегда