Друзья! Есть макет с областями "Сетка|Колонка1" и "Сетка|Колонка2". Так вот в цикле вывожу их поочередно сначала первую вывожу, а вторую присоединяю. Делаю так, потому что вторую нужно раскрасить. А вот как в цикле присоединить с права последующие 2 область незнаю? Подскажите как быть!!!1
ТабДок = Новый ТабличныйДокумент;
Макет = Документы.Докумет1.ПолучитьМакет("Макет1");
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
Шапка1 = Макет.ПолучитьОбласть("Шапка1");
Шапка2 = Макет.ПолучитьОбласть("Шапка2");
ОбластьСетка1 = Макет.ПолучитьОбласть("Сетка|Колонка1");
ОбластьСетка2 = Макет.ПолучитьОбласть("Сетка|Колонка2");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ВсегоВкладок = ЭтаФорма.Элементы.Вкладки.ПодчиненныеЭлементы.Количество()-1;
Для ИндексВкладки = 0 По ВсегоВкладок Цикл
Если ИндексВкладки = 0 Тогда
Дата1 = Формат(Объект.Дата, "ДЛФ=Д");
ДеньНедели1 = ТРег(Формат(Объект.Дата, "ДФ=dddd"));
Шапка1.Параметры.ДеньНедели1 = ДеньНедели1;
ТабДок.Вывести(Шапка1);
Шапка2.Параметры.Дата1 = Дата1;
ТабДок.Вывести(Шапка2);
Для Каждого СтрокаТЧ из Объект.ТЧ Цикл
ОбластьСетка1.Параметры.Время1 = Формат(Объект.Дата, "ДЛФ=В");
ТабДок.Вывести(ОбластьСетка1);
ОбластьСетка2.Параметры.Имя1 = СтрокаТЧ.Наименование;
ОбластьОформления = ТабДок.Присоединить(ОбластьСетка2);
ТабДок.Область(ОбластьОформления.Верх, ОбластьОформления.Лево, ОбластьОформления.Низ, ОбластьОформления.Лево).ЦветФона = WebЦвета.Оранжевый;
КонецЦикла;
Иначе
Дата1 = Формат(Объект.Дата+ИндексВкладки, "ДЛФ=Д");
ДеньНедели1 = ТРег(Формат(Объект.Дата+ИндексВкладки, "ДФ=dddd"));
Шапка1.Параметры.ДеньНедели1 = ДеньНедели1;
ТабДок.Вывести(Шапка1);
Шапка2.Параметры.Дата1 = Дата1;
ТабДок.Вывести(Шапка2);
Для Каждого СтрокаТЧ из Объект.ТЧ Цикл
ОбластьСетка1.Параметры.Время1 = Формат(Объект.Дата+ИндексВкладки, "ДЛФ=В");
ТабДок.Присоединить(ОбластьСетка1);
ОбластьСетка2.Параметры.Имя1 = СтрокаТЧ.Наименование;
ОбластьОформления = ТабДок.Присоединить(ОбластьСетка2);
ТабДок.Область(ОбластьОформления.Верх, ОбластьОформления.Лево, ОбластьОформления.Низ, ОбластьОформления.Лево).ЦветФона = WebЦвета.Оранжевый;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Зачем дублировать весь код в Если-Иначе? Там же различие только в дате.
Если ИндексВкладки = 0 Тогда
ДатаВкладки = Объект.Дата;
Иначе
ДатаВкладки = Объект.["Дата" + ИндексВкладки];
КонецЕсли;
Шапка1.Параметры.ДеньНедели1 = ТРег(Формат(ДатаВкладки, "ДФ=dddd"));
Ну и можно собирать основной табдок через вывод/присоединение других табдоков.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший