Имя: Пароль:
1C
1С v8
Еще раз про присоединение областей макета
0 Denzo
 
04.02.22
11:28
Друзья! Есть макет с областями "Сетка|Колонка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Цвета.Оранжевый;
           КонецЦикла;
       КонецЕсли;
КонецЦикла;
1 acht
 
04.02.22
11:29
(0) > про присоединение областей
Опять политика =)
2 mistеr
 
04.02.22
12:24
(0) >А вот как в цикле присоединить с права последующие 2 область незнаю?

Так же, как и предыдущую.

>ТабДок.Область(ОбластьОформления.Верх, ОбластьОформления.Лево, ОбластьОформления.Низ, ОбластьОформления.Лево).ЦветФона

Зачем тавтология?
3 Kobol
 
04.02.22
12:49
Зачем дублировать весь код в Если-Иначе? Там же различие только в дате.
Если ИндексВкладки = 0 Тогда
    ДатаВкладки = Объект.Дата;
Иначе
    ДатаВкладки = Объект.["Дата" + ИндексВкладки];
КонецЕсли;
Шапка1.Параметры.ДеньНедели1 = ТРег(Формат(ДатаВкладки, "ДФ=dddd"));
Ну и можно собирать основной табдок через вывод/присоединение других табдоков.