Показать сообщение отдельно
Старый 28.09.2020, 18:27   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Metrofun Посмотреть сообщение
Задача проверять вводимое значение пользователем в управляющий элемент
Начнем с того, что задача в принципе неправильно поставлена.

1.
неправильно проверять вводимое пользователем в контрол
поскольку вводить значения могут не только пользователи через формы, но и роботы через сервисы, и сам код через методы.

проверять нужно значение, вводимое любым способом.

2.
неправильно проверять ОДНО отдельное значение.
часто в бизнес-логике есть взаимосвязанные значения.
например, при вводе строки общего журнала нужно выбрать тип счета и счет.
проверять счет без типа не имеет смысла

бывают более сложные случаи - параметры на вкладке Fixed Asset имеют смысл только если выбран тип Fixed Asset и код Fixed Asset.
Но вводить параметры на вкладках можно в любом порядке.

Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 65
Размер:	104.6 Кб
ID:	12945

3.
Поэтому в Аксапте есть метод ValidateWrite на таблице.
Этот метод срабатывает, когда пользователь делает попытку сохранить запись (Ctrl+S, переход на другую строку в форме или закрыть форму),
когда программа вызывает ValidateWrite

В этом методе и нужно выполнить бизнес-проверку записи.

4.
если вам уж совсем надо проверить одно поле
то воспользуйтесь методом validateField на таблице.
там вам доступен this.orig() с оригинальными значениями полей

==============
не работайте с контролами формы - работайте с таблицами.
не предполагайте, что вводит только пользователь - боты работают с бизнес-логикой также часто, как и люди
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 29.09.2020 в 13:25. Причина: исправил опечатку