Имя: Пароль:
1C
 
Три разных отчета СКД в одном табличном документе - ширина колонок
0 Гений 1С
 
гуру
16.07.21
11:33
Вывожу три разных отчета на СКД.
Если выводить отдельно, ширина колонок ОК.
Если выводить вместе, то ширина подстраивается под общую.
Как это побороть?

Визуально посмотреть тут: https://fixogram.ru/neponyatki-s-shirinoj/


СКД вывожу функцией:


Функция ВывестиОтчетВСКД(ДокументРезультат, СхемаКомпоновкиДанных, КомпоновщикНастроек, ДанныеРасшифровки, СтруктураВнешнихДанных = Неопределено) Экспорт
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных();
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, СтруктураВнешнихДанных, ДанныеРасшифровки);
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент();
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.НачатьВывод();
    
    Пока Истина Цикл
        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
        Если ЭлементРезультата = Неопределено Тогда
            Прервать;
        Иначе
            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        КонецЕсли;
        
    КонецЦикла;
    
    ПроцессорВывода.ЗакончитьВывод();
    
КонецФункции
1 Ненавижу 1С
 
гуру
16.07.21
12:02
рисуй свое, например выводи на три разных табличных документа, потом склеивай
2 Вафель
 
16.07.21
12:04
выводи каждый в свой, а потом объединяй с разной шириной
3 Ботаник Гарден Меран
 
16.07.21
12:06
СоздатьФорматСтрок()
4 fisher
 
16.07.21
12:07
Я бы попробовал создать индивидуальные форматы строк для заголовков группировок через макеты СКД. Вдруг выгорит.
5 Гений 1С
 
гуру
16.07.21
12:08
(1) Гм, надо попробовать.
(3) Не помогает, пробовал.
6 SleepyHead
 
гуру
16.07.21
12:17
(0) А на что влияет не так ширина колонок? Какую проблему создает?
7 Гений 1С
 
гуру
16.07.21
12:29
(6) суммы в итого сокращает, заменяются на #####
8 Гений 1С
 
гуру
16.07.21
12:30
(3) В общем получилось, но нужно по-особому использовать:


    ТекДокументРезультат = Новый ТабличныйДокумент();
    ТекСхемаКомпоновкиДанных = ПолучитьМакет("МакетСклад");
    ТекКомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
    ТекКомпоновщикНастроек.ЗагрузитьНастройки(ТекСхемаКомпоновкиДанных.НастройкиПоУмолчанию);
    
    //Включаем подробный режим
    Попытка
        ТекКомпоновщикНастроек.Настройки.Структура[0].Структура[0].Использование = Подробно;
    Исключение
    КонецПопытки;

    ДокументРезультат.Область(ДокументРезультат.ВысотаТаблицы + 1, 1).Текст = "Сравнение запасов товара на даты: " + Формат(ДатаСклада1, "ДФ=dd.MM.yyyy") + " и: " + Формат(ДатаСклада2, "ДФ=dd.MM.yyyy") + ?(ЗначениеЗаполнено(ВыбПодразделение), " По подразделению: " + ВыбПодразделение, "") + " Сформировано: " + ТекущаяДата();
    СтруктураВнешнихДанных = Новый Структура("ТЗ", ТЗ);
    ВывестиОтчетВСКД(ТекДокументРезультат, ТекСхемаКомпоновкиДанных, ТекКомпоновщикНастроек, ДанныеРасшифровки, СтруктураВнешнихДанных);
    СоздатьФорматСтрок(ТекДокументРезультат);
    ДокументРезультат.Вывести(ТекДокументРезультат);


Функция СоздатьФорматСтрок(ДокументРезультат) Экспорт
    ТекОбласть = ДокументРезультат.Область(1, 1, ДокументРезультат.ВысотаТаблицы, ДокументРезультат.ШиринаТаблицы);
    //ДокументРезультат.Область(ДокументРезультат.ВысотаТаблицы, , ДокументРезультат.ВысотаТаблицы, )
    ТекОбласть.СоздатьФорматСтрок();
КонецФункции
9 SleepyHead
 
гуру
16.07.21
12:35
(7) А если в условном оформлении поменять методику "забивать" на "переносить"?
10 Гений 1С
 
гуру
16.07.21
12:40
(9) уже не актульно, проблема решена. Нет, это будет не красиво.
Программист всегда исправляет последнюю ошибку.