Имя: Пароль:
1C
 
Как удалить расстояние между рисунками табличного документа после изменения их высоты
0 Dragonofdwarfs
 
02.10.24
17:53
Доброго времени суток, коллеги! Изменяю высоту диаграмм в табличном документе после его программного формирования через скд, но между рисунками появляется зазор, как его удалить? Я предполагаю что как-то скопировать эти рисунки в какой-то буфер, удалить картинки и добавить их снова из буфера. Может кто подскажет? Прикрепляю скрин того, от чего хочу избавиться. Вот код:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ОСКД = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки());
    
    ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиОСКД.Инициализировать(Макет);
    
    ДокументРезультат.Очистить();
    
    ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВыводаОСКД.УстановитьДокумент(ДокументРезультат);
    ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);
        
    КУменьшения = 1/2;
    //МассивРисунков = Новый Массив;
    Для Каждого Рисунок Из ДокументРезультат.Рисунки Цикл
        //МассивРисунков.Добавить(Рисунок);
        Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Диаграмма Тогда
            Рисунок.Высота = Рисунок.Высота * КУменьшения;    
        КонецЕсли;
        //ДокументРезультат.Рисунки.Удалить(Рисунок);
    КонецЦикла;
    
    //Для Каждого Элемент Из МассивРисунков Цикл
    //    ДокументРезультат.Рисунки.Добавить(Элемент);    
    //КонецЦикла;
    
КонецПроцедуры
1 Dragonofdwarfs
 
02.10.24
18:31
Если кому интересно, сделал так: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    ОСКД = ЭтотОбъект.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    КомпоновщикМакетаОСКД = Новый КомпоновщикМакетаКомпоновкиДанных;
    Макет = КомпоновщикМакетаОСКД.Выполнить(ОСКД, ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки());
    
    ПроцессорКомпоновкиОСКД = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиОСКД.Инициализировать(Макет);
    
    ДокументРезультат.Очистить();
    
    ПроцессорВыводаОСКД = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВыводаОСКД.УстановитьДокумент(ДокументРезультат);
    ПроцессорВыводаОСКД.Вывести(ПроцессорКомпоновкиОСКД);
        
    КУменьшения = 1/2;
    РисунокПервый = Истина;
    КонецПредыдущегоРисунка = 0;
    Для Каждого Рисунок Из ДокументРезультат.Рисунки Цикл
        Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Диаграмма Тогда
            Рисунок.Высота = Рисунок.Высота * КУменьшения;    
        КонецЕсли;
        
        Если РисунокПервый Тогда
               РисунокПервый = Ложь;
            КонецПредыдущегоРисунка = Рисунок.Верх + Рисунок.Высота + 10;
            Продолжить;
        КонецЕсли;
        
        Рисунок.Верх = КонецПредыдущегоРисунка;
        КонецПредыдущегоРисунка = Рисунок.Верх + Рисунок.Высота + 10;
    КонецЦикла;
        
КонецПроцедуры