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