Цитата:
Сообщение от
mazzy
4.
если вам уж совсем надо проверить одно поле
то воспользуйтесь методом modifiedField на таблице.
там вам доступен this.orig() с оригинальными значениями полей
Здесь опечатка

Для проверки используются методы ValidateXXX. Для проверки одного поля ValidateField()
Общая логика работы с данным заключается в том, что коды проверки и изменения данных не должны физически находится в одном методе. Отдельный метод для проверок и отдельный метод для изменений. Ни в коем случае не смешивать!
При этом методы на таблице-источнике ValidateXXX() будут вызваны автоматически если работа выполняется из формы. Однако не будут вызваны автоматически, если работа с данными выполняется программно. В этом и смысл. Проверка выполняется не всегда, а лишь тогда, когда в этом есть необходимость.
В объектах на форме это, соответственно, метод Validate() для проверки и Modified() для действий при изменении значения.
Где именно делать контроль - на форме или в методах таблицы - зависит от конкретной постановки задачи. Если предполагается, что при прямой модификации данных в коде или в других формах этот контроль не нужен, то можно оставить в форме. Если же контроль нужен вне зависимости от того, как именно выполнят модификацию, то контроль следует перенести в табличные методы
PS: Насчет значений меньше нуля для чисел есть настройка в свойствах ExtendedDataType с именем AllowNegative. Если там поставить No, то запрет отрицательных значений будет выполняться автоматически