Цитата:
Сообщение от
Logger
Коллеги, возможно ли как-то в Аксапте реализовать универсальную валидацию сохранения записи для произвольной формы?
По-моему, нет.
Цитата:
Сообщение от
Logger
Например, есть метод SysSetupFormRun.Task()
Этот метод во многом хорош,
но:
- в коде могут встретиться клинические случаи, когда форма создается напрямую, минуя classFactory и пункты меню - в этом случае форма будет классом FormRun, а не SysSetupFormRun;
- кроме #taskSave (272) сохранение записи и предшествующий вызов validateWrite() также может вызываться при навигации по записям, что в task() ловится как #taskArrowUp (1281) или #taskArrowDown (1282); очевидно, также, что не всякое событие ArrowUp/ArrowDown на форме приведет к попытке сохранения какой бы то ни было записи на форме;
- есть еще такая вещь как сохранение записи перед нажатием кнопки (см. свойство SaveRecord кнопок - по умолчанию равно Yes), так вот, исходя из тестов на пробной форме стек вызовов при этом выглядит так:
Код:
\Forms\Form1\Data Sources\table1\Methods\validateWrite
\Classes\FormDataSource\leaveRecord
Т.е.
в общем случае, как минимум, никакой метод SysSetupFormRun
не вызывается перед validateWrite().