Данные действительно не удаляются:
Реальная компания:
PHP код:
void delete()
{
.....
if (this.validateDelete())
{
if (SysDataArea::delete(dataAreaId))
{
super();
}
}
Виртуальная компания:
PHP код:
void delete()
{
.....
if (sysDataArea::askDelete(dataAreaId))
{
super();
delete_from virtualDataAreaList
where virtualDataAreaList.virtualDataArea == dataAreaId;
}
}
Штатной возможности ИМХО не существует. Это реализуется несколькими строчками кода:
PHP код:
void deleteCompanyData(CompanyId pFromCompany, boolean showProgress = true)
{
#macrolib.AviFiles
Connection connection;
Statement stmt;
Dictionary dictionary;
DictTable dictTable;
tableId nextTableId = 0;
int retCde, tableCnt, tabTot;
str sqls;
str fldStr;
SysOperationProgress sysOperationProgress;
;
connection = new Connection();
stmt = connection.createStatement();
dictionary = new Dictionary();
if (showProgress)
{
nextTableId = dictionary.tableNext(nextTableId);
tabTot = 0;
while (nextTableId)
{
dictTable = new DictTable(nextTableId);
if (dictTable.dataPrCompany() &&
dictTable.enabled() &&
!dictTable.isTmp() &&
dictTable.isSql() &&
!dictTable.isMap())
tabTot++;
nextTableId = dictionary.tableNext(nextTableId);
}
sysOperationProgress = new SysOperationProgress();
sysOperationProgress.setCaption('Удаление данных компании ' + pFromCompany);
sysOperationProgress.setAnimation(#AviFileCopy);
sysOperationProgress.setTotal( tabTot );
}
tableCnt = 1;
nextTableId = 0;
nextTableId = dictionary.tableNext(nextTableId);
while (nextTableId)
{
dictTable = new DictTable(nextTableId);
if (dictTable.dataPrCompany() &&
dictTable.enabled() &&
!dictTable.isTmp() &&
dictTable.isSql() &&
!dictTable.isMap())
{
if (showProgress)
sysOperationProgress.setText( strFmt("Удаление данных из таблицы ", int2str(tableCnt),
int2str(tabTot), dictTable.name(DbBackend::SQL)));
sqlS = 'DELETE FROM '+dictTable.name(DbBackend::SQL)+
' WHERE DATAAREAID = \''+pFromCompany+'\'';
stmt.executeUpdate(sqlS);
tableCnt++;
if (showProgress)
sysOperationProgress.setCount( tableCnt );
}
nextTableId = dictionary.tableNext(nextTableId);
}
}
Пользуйтесь