0
AlexKulikov
08.12.17
✎
11:54
|
Добрый день, уважаемые форумчане.
Подскажите пожалуйста, как правильно разместить диаграмму на обычной форме?
На данный момент, у меня есть вот такой код:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ЭлементыФормы.ПолеТБ.Очистить();
Диаг = ЭлементыФормы.Добавить(Тип("Диаграмма"), "Диаграмма", Истина, ЭлементыФормы.ПолеТБ);
Диаг.ТипДиаграммы = ТипДиаграммы.График;
Диаг.Обновление = Ложь;
Диаг.АвтоТранспонирование = Ложь;
Диаг.Верх = 10;
Диаг.Лево = 10;
Диаг.Ширина = 300;
Диаг.Высота = 150;
КонтрагентыСоздание = Диаг.УстановитьСерию("Даты создания");
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК Ссылка,
| Контрагенты.ДатаСоздания КАК ДатаСоздания
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|
|СГРУППИРОВАТЬ ПО
| Контрагенты.Ссылка,
| Контрагенты.ДатаСоздания
|
|УПОРЯДОЧИТЬ ПО
| ДатаСоздания";
ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выгрузить();
ТаблицаРезультатаЗапроса.Свернуть("ДатаСоздания","Ссылка");
Данные = Новый ГенераторСлучайныхЧисел;
КоличествоКонтрагентов = ТаблицаРезультатаЗапроса.Количество();
Для Каждого Элемента Из ТаблицаРезультатаЗапроса Цикл
ДатаСоздания = Формат(Элемента.ДатаСоздания,"ДФ=dd.MM.yy");
ТочкаДиаграммы = Диаг.УстановитьТочку(ДатаСоздания);
Диаг.УстановитьЗначение(ТочкаДиаграммы, КонтрагентыСоздание, Элемента.Ссылка );
КонецЦикла;
Диаг.Обновление = Истина;
Диаг.АвтоТранспонирование = Истина;
Диаг.Видимость = Истина;
КонецПроцедуры
Собственной код работает, но есть одна проблема, связана она вот с этой строчкой кода:
Диаг = ЭлементыФормы.Добавить(Тип("Диаграмма"), "Диаграмма", Истина, ЭлементыФормы.ПолеТБ);
При повторном вызове этой процедуры, у меня уже есть элемент формы "диаграмма", соответственно мне нужно
либо удалять это элемент, либо каким то другим образом разместить на форме диаграмму.
В интернете есть несколько примеров, когда к диаграмме обращаются так
Диаграмма = ЭлементыФормы.Диаграмма;
Но насколько я понял, диаграмму можно разместить только в табличном документе?
С уважением, Алексей!
|
|
1
AlexKulikov
08.12.17
✎
12:38
|
Решил так проблему с повторным вызовом процедуры.
Если ЭтаФорма.ЭлементыФормы.Найти("Диаграмма") <> Неопределено Тогда
ЭлементыФормы.Диаграмма.Очистить();
Диаг = ЭлементыФормы.Диаграмма;
Иначе
Диаг = ЭлементыФормы.Добавить(Тип("Диаграмма"), "Диаграмма", Истина, ЭлементыФормы.ПолеТБ);
КонецЕсли;
|
|