Проблема с инициализацией экземпляра объекта (класса AsciiIo)
Из класса "XXX extends RunBaseBatch" создаю экземпляр класса ExportToCrystall_Item, в его new-методе создается экземпляр класса AsciiIo - вываливается трассировка: "Ошибка инициализации объекта AsciiIo".
Если экз. класса создается в джобе - New-метод отрабатывает нормально
Код в абстрактном классе:
PHP код:
abstract class ExportToCrystall
{
#ExportToCrystall
AsciiIo myfile;
}
Код в потомке:
PHP код:
class ExportToCrystall_Item extends ExportToCrystall
{
}
void new(InventLocationId _shop)
{
myfile = new AsciiIo(this.getExportFolder(_shop) + this.getFileName(),"w");
myfile.outFieldDelimiter("|");
}
Код в потомке RunBaseBatch:
PHP код:
class ExportToCrystall_Items_PO extends RunBaseBatch
{
DialogField dfInventLocationId;
DialogField dfItemRange;
InventTable inventTable;
InventItemBarCode inventItemBarCode;
VendTable vendTable;
PurchTable purchTable;
PurchLine purchLine;
InventLocationId_Shop locationId;
anyItemRangeId itemRange;
#define.CurrentVersion(1)
#localmacro.CurrentList
locationId,
itemRange
#endmacro
}
void run()
{
ClassificatorRanges classificator = new ClassificatorRanges();
tmpRangesInvent itemBuffer;
#avifiles
SysOperationProgress progressBar;
int i, m;
ExportToCrystall_Item exportToCrystallItem = new ExportToCrystall_Item(locationId);
;
classificator.run(itemRange);
m = (select count(RecId) from tmpRangesInvent).RecId;
progressBar = SysOperationProgress::newGeneral(#AviTransfer, 'Экспорт в Кристалл',m);
while select itemBuffer
{
exportToCrystallItem.WriteLine(locationId, [itemBuffer.ItemId]);
i++;
progressBar.incCount();
progressBar.setText(strfmt("Передано: %1 из %2 товаров", i, m));
progressBar.update(true);
}
classificator.finalize();
progressBar.kill();
}
А вот тотже код, но в джобе - РАботает
PHP код:
static void Job7(Args _args)
{
ClassificatorRanges classificator = new ClassificatorRanges();
tmpRangesInvent itemBuffer;
#avifiles
SysOperationProgress progressBar;
int i, m;
ExportToCrystall_Item exportToCrystallItem = new ExportToCrystall_Item("М6_ОСН");
ItemRangeId itemRange = "00002706_147";
InventLocationId locationId = "М6_ОСН";
;
classificator.run(itemRange);
m = (select count(RecId) from tmpRangesInvent).RecId;
progressBar = SysOperationProgress::newGeneral(#AviTransfer, 'Экспорт в Кристалл',m);
while select itemBuffer
{
exportToCrystallItem.WriteLine(locationId, [itemBuffer.ItemId]);
i++;
progressBar.setText(strfmt("Передано: %1 из %2 товаров", i, m));
progressBar.incCount();
}
classificator.finalize();
}