Показать сообщение отдельно
Старый 28.09.2012, 12:49   #1  
Samuel is offline
Samuel
Участник
 
12 / 10 (1) +
Регистрация: 20.04.2010
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();
}
Так вот ситуация, если я находясь например на первой строчке таблице в гриде, запускаю Форму2 то в нее нормально экспортируются интересующие меня значения полей из Table1. Далее пользователь правит их в Форме2 и подтверждает изменения нажатием на клавишу ОК. После чего выполняется код из Clicked. По этому коду происходит изменение полей в Table1.
Тут возникает несколько непонятных мне моментов. Во-первых вроде для того чтобы была произведена запись в таблицу она должна быть открыта для записи (FORUPDATE). В коде этого нет, однако сработало. Во-вторых, в ситуации если я например открыл Форму2 на первой записи, а потом не закрыв ее перешел на вторую запись в Форме1, то изменения по нажатию ОК затронут как раз эту вторую запись! Но как? Каким образом полученный мной в инициализации формы, вектор t1 обновился? Ведь переинициализации формы не происходило, она не была заново открыта. Или я что-то не так понимаю в этом моменте:
X++:
t1 = element.args().record();
__________________
Axapta 3.0, Build #1951.17, SP1