Согласен с Георгием, что без
changeCompany не обойтись.
Ваша форма должна работать в другой компании, по этому в нее нужно перейти.
Так же нужно у таблицы указать компанию
purchLine.company( curExt() );
Вызов формы в другой компании:
PHP код:
// приход товара в аптеки
void receiptIntoAP() {
Args args; // объект класс Args
FormRun formRun; // объект класс FormRun
;
// создание и инициализация объекта класса Args
args = new Args();
args.caller( this );
args.name( FormStr( ReceiptIntoAP ) );
args.record( inventSum );
changeCompany( company ) {
// создание и запуск формы
formRun = ClassFactory.formRunClass( args );
formRun.init();
formRun.run();
formRun.wait();
}
infolog.clear();
}
init вызываемой формы:
PHP код:
public void init() {
;
// проверка источника
if ( this.args().dataset() != TableNum( InventSum ) ) throw Exception::Error;
super();
// инициализировать данные
inventSum = this.args().record();
this.args().record( null );
rgItemId.value( inventSum.ItemId );
rgInventDimId.value( inventSum.InventDimId );
purchLine.company( curExt() );
}
Есть одна особенность. После уничтожения формы в другой компании происходит переход обратно в исходную компанию до закрывающей } changeCompany, как это победить с удовольствием узнал бы сам