Имя: Пароль:
1C
1С v8
Несколько табличных документов в один: слетает ширина колонок
0 cons74
 
17.02.16
13:22
Добрый день.
Вывожу отчет по документам, с группировками. При этом сперва группировка по документу - несколько таю.документов, а потом в каждом таб.доке свои группировки.

Вернее, сперва создаю общий таб.док, потом создаю группировку для документа№1, в неё помещаю несколько таб.доков (имеют свои группировки). Потом новая группа для документа№2 и т.д.

Проблема: если выводить Таб.доки отдельно - все ок, а если помещать в группировку - слетает ширина колонок и высота строк.
Отдельный таб док: http://uploads.ru/lerx0.png
Сгруппированный: http://uploads.ru/wjq1v.png


ГлобальныйТабДок = новый ТабличныйДокумент;
Секция = ГлобальныйТабДок.ПолучитьОбласть("R1");
ГлобальныйТабДок.НачатьАвтогруппировкуСтрок();
Пока Выборка.Следующий() Цикл
    Док = Выборка.Объект;
    ГлобальныйТабДок.Вывести(Секция,1,"Группа",Ложь);
    
    ВыборкаДетальныеЗаписи = Выборка.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        ТабДок = ПолучитьИзВременногоХранилища(Адрес);
        ГлобальныйТабДок.Вывести(ТабДок,2,"Группа1", Истина);
    КонецЦикла;
КонецЦикла;
ГлобальныйТабДок.ЗакончитьАвтогруппировкуСтрок();
1 asady
 
17.02.16
13:33
(0) используй
СоздатьФорматСтрок (CreateFormatOfRows)
Синтаксис:

СоздатьФорматСтрок()
Описание:

Создает у области новый формат строк. В новом формате строк размеры колонок будут соответствовать размерам колонок, которые были установлены в области.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
2 cons74
 
17.02.16
13:38
(1) читаю СП и не понимаю: вроде устанавливает формат, а потом в примере ширину заново устанавливают
3 cons74
 
17.02.16
14:24
взлетело

Пока Выборка.Следующий() Цикл
        Док = Выборка.Объект;
        
        Секция.Область("R1C1").Текст = ""+Док;
        ГлобальныйТабДок.Вывести(Секция);
        ГлобальныйТабДок.НачатьГруппуСтрок(СтрЗаменить(СтрЗаменить(Док,".","-"),":","-"));
        
        ВыборкаДетальныеЗаписи = Выборка.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            
            ТабДок = ПолучитьИзВременногоХранилища(Адрес);
            
            Для каждого область из ТабДок.области Цикл
                Область.СоздатьФорматСтрок();
            КонецЦикла;            
            
            ГлобальныйТабДок.Вывести(ТабДок);
            
        КонецЦикла;
        
        ГлобальныйТабДок.ЗакончитьГруппуСтрок();

4 cons74
 
17.02.16
14:57
а не нифига
5 cons74
 
17.02.16
15:43
вставил код из примера из сп
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.