Показать сообщение отдельно
Старый 20.01.2021, 23:13   #12  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,652 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
А при чем здесь initSectionMap()? Это же просто список констант, которые записываются в MAP. Идентификаторы полос отчета. Там просто инициализация и наполнение MAP

Я не очень понимаю, зачем Вам вообще вот эти 2 команды

document.copyDefineNames(1, i);
this.initSectionMap();

Физически же работа происходит так

1. По именам ячеек заполняются ячейки в ШАБЛОНЕ
2. По именам полосы (вот то, что в initSectionMap задается) выделяется секция из шаблона и копируется в итоговый отчет в конце

Т.е. я вообще не понимаю какой смысл в этих играх с переименованием. В этом просто нет смысла. По логике, у Вас в методе CreateReport должно быть что-то вроде такого

X++:
// Инициализация MAP с именами секций отчета
// Один раз в самом начале
this.initSectionMap();

// Выбор первой записи таблиц-источников

// Заполнение первого листа
execute(#header);
execute(#body);
execute(#footer);

// Выбор следующей записи таблиц-источников

// Создаем новый лист
document.insertSheet(0, i, sheetName);  // Метод есть и на самом документе
// Выбор листа - не уверен, что это нужно
this.setCurrentWorksheetNum(i);

execute(#header);
execute(#body);
execute(#footer);

// Ну и далее цикл продолжаем

// Выбор следующей записи таблиц-источников

(...)
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...