тогда буду вопросы задавать, я еще жить хочу

. уважаемые эксперты и не очень

вот такой первый вопрос знаю просто, но не могу сделать. Есть форма. Нужно, чтобы при создании новой записи, появлялась новая форма. По нажатию ок - данные сохранялись, при нажатии отмена - нет. Я делаю так:
1. Перекрываю метод датасорса главной формы create():
X++:
void create(boolean _append = false)
{
if (salesForm.create()) // в классе реализована
super(_append);
}
---------------------------
// salesForm.create()
X++:
boolean create()
{
Args _args = new Args();
FormRun CreateSales;
;
_args.name(formstr(CreateSales));
_args.caller(this);
CreateSales = ClassFactory.formRunClass(_args);
CreateSales.init();
CreateSales.run();
CreateSales.wait();
if (CreateSales.closedOk())
return true;
else
return false;
}
нормально формачка появилась
2. Перекрываю метод init() вызываемой формы:
X++:
public void init()
{
super();
if (!element.args().caller())
{
throw error("@SYS22539");
}
salesForm = element.args().caller();
}
3. Перекрываю методы write() и validatewrite() датасорса вызываемой формы
X++:
public boolean validateWrite()
{
boolean ret;
if (!element.closedOK())
return true;
ret = super();
return ret;
}
public void write()
{
//super();
if (!element.closedOK())
return;
try
{
ttsbegin;
SalesTable.insert();
ttscommit;
}
catch(Exception::error)
{
SalesTable.recid = 0;
element.close();
throw Exception::error;
}
SalesTable_ds.research();
SalesTable_ds.refresh();
salesForm.newSalesId(salesTable.salesId);
}
4. Перекрываю метод canclose() вызываемой формы
X++:
boolean canClose()
{;
if (element.closedOk() && !salesTable_ds.validateWrite())
{
return false;
}
salesTable_ds.write();
if (!element.closedOk())
{
return true;
}
return super();
}
и не работает нифига

не сохраняет данные