![]() |
#1 |
Участник
|
element.args().record() вопрос...
Возник следующий вопрос!
Пожалуйста, гуру, проясните ситуацию. Вообщем имеем 2 формы. На Форме1 находится грид с данными из Table1. Форма2 активируется из MenuButton Формы1 и предназначена для редактирования некоторых полей Table1. ![]() На скрине сверху Форма1 снизу Форма2. Привожу код методов Формы2. X++: //classDeclaration public class FormRun extends ObjectRun { Table1 t1; } X++: public void init() { ; super(); t1 = element.args().record(); WorkerQty.value(t1.MSA_WorkerQty); //Фактическое количество работников TeamDiv.realValue(t1.MSA_TeamDiv); //Отклонение рабочего времени бригады element.design().caption(strfmt("Корректировка карты задания " + t1.JournalId)); } X++: //OK clicked void clicked() { ttsbegin; t1.MSA_WorkerQty = WorkerQty.value(); t1.MSA_TeamDiv = TeamDiv.realValue(); t1.doUpdate(); ttscommit; element.close(); } Тут возникает несколько непонятных мне моментов. Во-первых вроде для того чтобы была произведена запись в таблицу она должна быть открыта для записи (FORUPDATE). В коде этого нет, однако сработало. Во-вторых, в ситуации если я например открыл Форму2 на первой записи, а потом не закрыв ее перешел на вторую запись в Форме1, то изменения по нажатию ОК затронут как раз эту вторую запись! Но как? Каким образом полученный мной в инициализации формы, вектор t1 обновился? Ведь переинициализации формы не происходило, она не была заново открыта. Или я что-то не так понимаю в этом моменте: X++: t1 = element.args().record();
__________________
Axapta 3.0, Build #1951.17, SP1 |
|