Цитата:
Тогда получается совсем круто, выводится 2 сообщения:
1. "validation is ok"
2. "Значение не найдено.."
Связано это вот с чем: сначала система попадает в validate на formStringControl'е, при первом вхождении в него метод valueStr() возвращает только то что было выбрано из лукапа. А потом система выполняет проверку уже по связям с источником данных, и причем в этой проверке сравнивается корректное введеное пользователем значение.
Правильно

. Это и был изначальный вопрос.
В Dynamics Ax2009 + в кастомизациях наших партнеров есть формы которые используют valueStr() при валидации, модификции контролов и так далее. Это приводит к очень странному поведению в более сложных случиях, по-этому следует использовать text() метод если нужна подобная валидация.
В Dynamics Ax 2012 куча новых возможностей валидации контролов и такой проблемы быть не должно (очень редко)