Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/76: Рейтинг темы: голосов - 76, средняя оценка - 4.86
584 / 371 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
1
1C 8.x

1С 8.2. СКД. Изменить высоту диаграммы

14.07.2015, 09:21. Показов 15831. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем здравствуйте!

Нужно изменить высоту и ширину диаграммы в отчете формируемом на СКД.
Ширину расширить, высоту сузить.
(рис1. 2 диаграммы)

Как это сделать с помощью настроек варианта, комповки или макета?

Ладно. С помощью настроек у меня не получилось - делаем с помощью кода
После создания табличного документа - получаю рисунки и сужаю их
НО(!!!) Возникает эффект мертвых зон
(рис 2. 2 диаграммы суженные)

Код на изменение размеров рисунков:
Кликните здесь для просмотра всего текста
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    Если ЛОЖЬ Тогда ДокументРезультат = Новый ТабличныйДокумент; КонецЕсли;
        
    СтандартнаяОбработка = Ложь;
    
    // Получаем схему компоновки и текущие настройки
    СхемаКомпоновкиДанных  = ЭтотОбъект.СхемаКомпоновкиДанных;
    Настройки              = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки();
    
    // Группируем схему и текущие настройки
    КомпоновщикМакета      = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки      = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
      
    // Процессор компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки, Истина);
    
    // Процессор вывода
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    
    // Альтернативный пошаговый вывод с разрывом страницы
    // Для разрыванеобходимо добавить параметр в макет на месте разрыва
    ПроцессорВывода.НачатьВывод();
    ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
    Пока ЭлементРезультата <> Неопределено Цикл        
        ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
    КонецЦикла;
    ПроцессорВывода.ЗакончитьВывод();
    
    //{{ [+](Настройка ширины и высоты диаграмм), #Лелеко
    // Настройка ширины и высоты диаграмм     
    ИскомыеПараметрыДиаграмм            = Новый Структура("ШиринаДиаграмм,ВысотаДиаграмм","Ширина","Высота");
    НайденныеПараметрыДиаграмм        = Новый Структура;
    ПараметрыДанныхНастройки            = Настройки                    .ПараметрыДанных;
    ПараметрыДанныхДоступныеПараметры  = ПараметрыДанныхНастройки  .ДоступныеПараметры;
    
    // Заполняем найденные параметры
    Для Каждого КлючЗначение Из ИскомыеПараметрыДиаграмм Цикл
        ПараметрКД = Новый ПараметрКомпоновкиДанных(КлючЗначение.Ключ);      
        Если ПараметрыДанныхДоступныеПараметры.НайтиПараметр(ПараметрКД) <> Неопределено Тогда
            ЗначениеПараметра = ПараметрыДанныхНастройки.НайтиЗначениеПараметра(ПараметрКД);
            Если ЗначениеПараметра.Использование Тогда
                НайденныеПараметрыДиаграмм.Вставить(
                    ?(КлючЗначение.Значение <> Неопределено, КлючЗначение.Значение, КлючЗначение.Ключ), 
                    ЗначениеПараметра.Значение
                );  
            КонецЕсли;    
        КонецЕсли;
    КонецЦикла;
    
    // Заполняем параметры рисунка
    Для Каждого Рисунок из ДокументРезультат.Рисунки Цикл
        ЗаполнитьЗначенияСвойств(Рисунок, НайденныеПараметрыДиаграмм); 
    КонецЦикла;  
    //}} (Настройка ширины и высоты диаграмм), #Лелеко
    
КонецПроцедуры
Миниатюры
1С 8.2. СКД. Изменить высоту диаграммы   1С 8.2. СКД. Изменить высоту диаграммы  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2015, 09:21
Ответы с готовыми решениями:

Изменить высоту webBrowser
Каким образом можно изменить высоту компонента webBroser в зависимости от содержимого? Необходимо...

Изменить высоту подвала
Добрый день. Опустил контент на сайте вот как на скриншоте...

ColumnHeader изменить высоту
Как изменить заголовок столбцов который является экземпляром СolumnHeader? Пишется в одну строку,...

Изменить высоту ListBox
Добрый день. Не могу найти как менять высоту в листбоксе, чтобы текст пошёл на несколько строк....

4
Злой самаритянин
182 / 182 / 94
Регистрация: 24.04.2014
Сообщений: 686
14.07.2015, 10:16 2
А так?
Миниатюры
1С 8.2. СКД. Изменить высоту диаграммы  
0
584 / 371 / 63
Регистрация: 22.07.2009
Сообщений: 875
Записей в блоге: 4
15.07.2015, 03:37  [ТС] 3
Цитата Сообщение от SHIFT_969 Посмотреть сообщение
А так?
НЕ РАБОТАЕТ
А у Вас так получалось? )))
Естественно первым делом именно так и пробовал.
Если у Вас получилось - скиньте пожалуйста рабочий пример
0
0 / 0 / 0
Регистрация: 15.07.2020
Сообщений: 1
15.07.2020, 06:30 4
Вообще-то, масштабирование должно осуществляться автоматически. Но на практике это действует только по горизонтали, а по вертикали - нет. Но где это настраивается, мне найти не удалось...
0
0 / 0 / 0
Регистрация: 09.12.2009
Сообщений: 13
02.11.2023, 16:58 5
Клиенту понадобилось уменьшить размер диаграммы, чтобы отчет помещался на одну страницу.

Я уменьшил ее на 2/3.

Настройками СКД сделать это не смог, поэтому просто обработал готовый табличный документ:

1C
1
2
3
4
5
6
7
8
9
10
11
КУменьшения = 2/3;
Для Каждого Рисунок ИЗ ДокументРезультат.Рисунки Цикл
    Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Диаграмма Тогда
        Рисунок.Высота = Рисунок.Высота * КУменьшения; //Уменьшаем..
    КонецЕсли;
КонецЦикла;
 
ПерваяСтрока = Цел(ДокументРезультат.ВысотаТаблицы * КУменьшения) + 1;
УдаляемаяОбласть = ДокументРезультат.Область("R" + XMLСтрока(ПерваяСтрока) +  
":R" + XMLСтрока(ДокументРезультат.ВысотаТаблицы));
ДокументРезультат.УдалитьОбласть(УдаляемаяОбласть, ТипСмещенияТабличногоДокумента.ПоВертикали);
При этом код работает если диаграмма выводится первой (используется высота табличного документа). Если диаграмма выводится отдельно, нужно или выводить ее в отдельный табличный документ, там корректировать и потом вставлять в результирующий документ или использовать более тонкий способ определения начала и конца диаграммы
0
02.11.2023, 16:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2023, 16:58
Помогаю со студенческими работами здесь

TileList, изменить высоту label
Как снизить высоту белого?(label) import fl.controls.TileList; import fl.data.DataProvider; ...

Изменить высоту заголовка формы
всем привет, вот казалось бы простой вопрос, а решить его мочи нет) есть форма, и подчиненная...

Изменить высоту строки в Exlel
Всем, доброго времени суток. Подскажите, может кто знает, как решить проблему автоматически...

Как изменить высоту слайдера
не могу понять как изменить высоту слайдера на меньшую http://dveridd.ru/. Откуда-то подгружаются...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru