Имя: Пароль:
1C
1С v8
Помощь в формировании ширины колонок таблицы
0 diabol1k
 
06.05.16
09:17
Товарищи, вчерашняя просьба утонула. Помогите, как настроить ширину именно последней колонки? Вот часть кода:

ТабДокРез = Новый ТабличныйДокумент;
    
    ПерваяСтрокаДанных = 0;
    Для Стр = 1 По ТабДок.ВысотаТаблицы Цикл
        
        Для Кол = 1 По ТабДок.ШиринаТаблицы Цикл
            
            Обл = ТабДок.Область(Стр,Кол);
            Если Обл.Текст = "УдалитьПоле" Тогда
                ОблУд = ТабДок.Область(Стр,Кол,ТабДок.ВысотаТаблицы,Кол);
                ТабДок.УдалитьОбласть(ОблУд,ТипСмещенияТабличногоДокумента.ПоГоризонтали);
            КонецЕсли;
            
        КонецЦикла;

        
        Обл = ТабДок.Область("R" + Формат(Стр,"ЧГ=0") + "C2");
        Если Обл.Расшифровка <> Неопределено Тогда
            ПерваяСтрокаДанных = Стр;
            Прервать;
        КонецЕсли;
        
        
    КонецЦикла;
    
    Если ПерваяСтрокаДанных = 0 Тогда
    
        ТабДокРез.Вывести(ТабДок);
    Иначе
            
    Строка = 1;
    ПервыйТабл = 0;
    Пока Строка < ПерваяСтрокаДанных Цикл
        СтрокаШапки = ТабДок.ПолучитьОбласть(Строка,1,Строка,ТабДок.ШиринаТаблицы);
        //Проверим, является ли строка строкой таблицы
        Таблица = Ложь;
        Если СтрокаШапки.Область("R" + 1 + "C" + 1).ГраницаСверху.ТипЛинии <> ТипЛинииЯчейкиТабличногоДокумента.НетЛинии Тогда
            СтрокаШапки = ТабДок.ПолучитьОбласть(Строка,1,ПерваяСтрокаДанных - 1,ТабДок.ШиринаТаблицы);
            ПервыйТабл = Строка;
            Таблица = Истина;
        КонецЕсли;
        
        Если Таблица Тогда
            Для Стр = 1 По СтрокаШапки.ВысотаТаблицы Цикл
                Для Кол = 1 По СтрокаШапки.ШиринаТаблицы Цикл
                    Область = СтрокаШапки.Область("R" + Стр + "C" + Кол);
                    Область.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
                    Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
                    Область.АвтоВысотаСтроки = Истина;
                    Область.Шрифт = Новый Шрифт(,8,Истина);
                КонецЦикла;
            КонецЦикла;
        КонецЕсли;
        ТабДокРез.Вывести(СтрокаШапки);
        
        Если Таблица Тогда Прервать;
        КонецЕсли;
        
        Строка = Строка + 1;
    КонецЦикла;
    
    //Пронумеруем
    пСтрока = ПерваяСтрокаДанных;
    
    ТабДокРез.Вывести(ТабДок.ПолучитьОбласть("R" + Формат(пСтрока - 1,"ЧГ=0")));
    
    Для Итератор = 1 По ТабДокРез.ШиринаТаблицы Цикл
        
        Область = ТабДокРез.Область(пСтрока,Итератор);
        Область.ГраницаСлева = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
        Область.ГраницаСправа = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная);
        
        
        Область.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
        СтарыйЦветФона = Область.ЦветФона;
        Область.ЦветФона = ТабДокРез.Область(пСтрока - 1,Итератор).ЦветФона;
        Область.ЦветРамки = ТабДокРез.Область(пСтрока - 1,Итератор).ЦветРамки;
        Область.ЦветТекста = ТабДокРез.Область(пСтрока - 1,Итератор).ЦветТекста;
        Область.Шрифт = ТабДокРез.Область(пСтрока - 1,Итератор).Шрифт;
        
        Область.Текст = Формат(Итератор,"ЧДЦ=");
        
        //ТабДокРез.Область(ПервыйТабл,Итератор,пСтрока,Итератор).Объединить();
        
        Для Строка = ПервыйТабл по ТабДокРез.ВысотаТаблицы Цикл
            
            Область = ТабДокРез.Область(Строка,Итератор);
            Если Область.Текст = "-" Тогда
                ОбластьОб = ТабДокРез.Область(Строка - 1,Итератор,Строка,Итератор);
                ОбластьОб.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
                ОбластьОб.Объединить();
                Если ОбластьОб.Текст = "" Тогда
                    ОбластьОб = ТабДокРез.Область(Строка - 2,Итератор,Строка,Итератор);
                    ОбластьОб.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
                    ОбластьОб.Объединить();
                КонецЕсли;

            КонецЕсли;
            
        КонецЦикла;
        
    КонецЦикла;
    

    
    Область = ТабДок.Область("R1:R" + Формат(ПерваяСтрокаДанных - 1,"ЧГ=0"));
    ТабДок.УдалитьОбласть(Область,ТипСмещенияТабличногоДокумента.ПоВертикали);
    
    ТабДокРез.Вывести(ТабДок);
    ТабДокРез.ФиксацияСлева = 3;
    ТабДокРез.ФиксацияСверху = ПерваяСтрокаДанных;
    
    Для Итер = 1 По ТабДокРез.ШиринаТаблицы Цикл
        
        Обл = ТабДокРез.Область(ПерваяСтрокаДанных,Итер);
        ШиринаКол = Обл.ШиринаКолонки;
        
        Для Стр = 1 По ПервыйТабл - 1 Цикл
            
            ОблКорр = ТабДокРез.Область(Стр,Итер);
            ОблКорр.ШиринаКолонки = ШиринаКол;
            
            
        КонецЦикла;
        
    КонецЦикла;
1 diabol1k
 
06.05.16
11:41
Что, никто не поможет новичку?