Задача решена, может кому будет нужен подобный отчет:
X++:
public static void main(Args arg)
{
DimensionAttribute dimensionAttribute;
MainAccount acc;
SysExcelApplication application;
SysExcelWorkbooks workbooks;
SysExcelWorkbook workbook;
SysExcelWorksheets worksheets;
SysExcelWorksheet worksheet;
SysExcelCells cells;
SysExcelCell cell;
SysExcelCell cell1;
SysExcelFont font;
str Dimension;
RecId Hierarchy;
int row;
int cel;
DimensionSetSegmentName Set;
application = SysExcelApplication::construct();
workbooks = application.workbooks();
workbook = workbooks.add();
worksheets = workbook.worksheets();
worksheet = worksheets.itemFromNum(1);
cells = worksheet.cells();
cells.range('A:A').numberFormat('@');
startLengthyOperation();
// Setting Header values
cel = 2;
while select dimensionAttribute
where !(dimensionAttribute.Name like '*SystemGen*')
{
cel++;
cell = cells.item(1, cel);
cell.value(dimensionAttribute.name);
font = cell.font();
font.bold(true);
}
cel = 2;
row = 1;
while select acc order by MainAccountId
{
row++;
cell = cells.item(row, 1);
cell.value(acc.MainAccountId);
font = cell.font();
font.bold(true);
cell = cells.item(row, 2);
cell.value(acc.Name);
font = cell.font();
font.bold(true);
Hierarchy = DimensionHierarchy::getAccountStructure(acc.RecId);
Set = DimensionHierarchyLevel::getDimensionHierarchyLevelNames(Hierarchy);
while select dimensionAttribute
where !(dimensionAttribute.Name like '*SystemGen*')
{
cel++;
cell1 = cells.item(row, cel);
Dimension = dimensionAttribute.Name;
if(Set[1] == Dimension ||
Set[2] == Dimension ||
Set[3] == Dimension ||
Set[4] == Dimension ||
Set[5] == Dimension ||
Set[6] == Dimension ||
Set[7] == Dimension ||
Set[8] == Dimension ||
Set[9] == Dimension ||
Set[10] == Dimension ||
Set[11] == Dimension)
cell1.value('+');
}
cel = 2;
}
endLengthyOperation();
application.visible(true);
}