Показать сообщение отдельно
Старый 04.11.2011, 19:55   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от 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().
За это сообщение автора поблагодарили: Logger (3).