Показать сообщение отдельно
Старый 11.01.2006, 17:59   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,283 / 3491 (123) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
2topgun:
Есть понятие Best Practice. Это рекомендации по стилю программирования. Им не всегда следуют, не все следуют, однако следует учитывать:
1. Сам факт наличия Best Practice означает что Аксапта заточена под определенный механизм решения проблем. И отклонение от Best Practice может приводить к выявлению ряда случаев когда Аксапта "глючит". При максимальном следовании Best Practice - ни пользователь ни программист не будут сталкиваться (ну или максимально редко) с неожиданными никому неизвестными невоспроизводимым поведением.
2. Ваш код могут читать впоследствии другие люди. Которым привычен Best Practice. И Ваше отклонение - только затруднит чтение.

Резюме:
Что предлагал Юра (macklakov):
Идем в форму - доходим до контрольки (MenuItemButton), перекрываем метод clicked, пишем код:
X++:
        super();
        MyDataSource_ds.executeQuery(); // Или reread, refresh
При этом к MenuItemButton прилеплена менюшка, вызывающая класс. Обычно (согласно Best Practice) - этот класс должен вызываться на сервере - тк подразумевает себе некую обработку, а если есть обработка - значит она д.б. на сервере. И с сервера обращаться к форме (к клиенту) - не есть правильно.

Что имелось ввиду под фразой "это используется сплошь и рядом":
Аксапту писали люди. Не везде следуя единому стилю. Местами даже может быть криво. Местами - нормально. Поэтому:
Если изначально создается новая форма, к ней новый класс и т.д. - то нужно следовать рекомендациям Best Practice.
Если приходится править уже написанный код (как в этом случае) - то в каждом случае надо разбираться отдельно и стараться сделать в стиле уже написанного кода не забывая про производительность (клиент-сервер). Но по возможности следует вспоминать про Best Practice
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 11.01.2006 в 18:03.