Вход | Регистрация

1С:Предприятие ::

Метки: 

УТ10.3. Обычные формы и график

Я
   AlexKulikov
 
08.12.17 - 11:54
Добрый день, уважаемые форумчане.

Подскажите пожалуйста, как правильно разместить диаграмму на обычной форме?
На данный момент, у меня есть вот такой код:

Процедура КнопкаВыполнитьНажатие(Кнопка)
    
   ЭлементыФормы.ПолеТБ.Очистить();    
   Диаг = ЭлементыФормы.Добавить(Тип("Диаграмма"), "Диаграмма", Истина, ЭлементыФормы.ПолеТБ);
   Диаг.ТипДиаграммы = ТипДиаграммы.График;
 
    
   Диаг.Обновление = Ложь;
   Диаг.АвтоТранспонирование = Ложь;
 
   Диаг.Верх = 10;
   Диаг.Лево = 10;
 
   Диаг.Ширина = 300;
   Диаг.Высота = 150;
 
   КонтрагентыСоздание = Диаг.УстановитьСерию("Даты создания");
 
   
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    КОЛИЧЕСТВО(Контрагенты.Ссылка) КАК Ссылка,
                  |    Контрагенты.ДатаСоздания КАК ДатаСоздания
                  |ИЗ
                  |    Справочник.Контрагенты КАК Контрагенты
                  |
                  |СГРУППИРОВАТЬ ПО
                  |    Контрагенты.Ссылка,
                  |    Контрагенты.ДатаСоздания
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    ДатаСоздания";
   ТаблицаРезультатаЗапроса = Запрос.Выполнить().Выгрузить();
   ТаблицаРезультатаЗапроса.Свернуть("ДатаСоздания","Ссылка");
  
   
   Данные = Новый ГенераторСлучайныхЧисел;
   КоличествоКонтрагентов = ТаблицаРезультатаЗапроса.Количество();
   
   Для Каждого Элемента Из ТаблицаРезультатаЗапроса Цикл
       ДатаСоздания = Формат(Элемента.ДатаСоздания,"ДФ=dd.MM.yy");
       ТочкаДиаграммы = Диаг.УстановитьТочку(ДатаСоздания);
       Диаг.УстановитьЗначение(ТочкаДиаграммы, КонтрагентыСоздание, Элемента.Ссылка );
   КонецЦикла; 
 
 
   Диаг.Обновление = Истина;
   Диаг.АвтоТранспонирование = Истина;
   Диаг.Видимость = Истина;
     
   КонецПроцедуры

Собственной код работает, но есть одна проблема, связана она вот  с этой строчкой кода:
 Диаг = ЭлементыФормы.Добавить(Тип("Диаграмма"), "Диаграмма", Истина, ЭлементыФормы.ПолеТБ);

При повторном вызове этой процедуры, у меня уже есть элемент формы "диаграмма", соответственно мне нужно 
либо удалять это элемент, либо каким то другим образом разместить на форме диаграмму.

В интернете есть несколько примеров, когда к диаграмме обращаются так 
Диаграмма = ЭлементыФормы.Диаграмма;

Но насколько я понял, диаграмму можно разместить только в табличном документе?

С уважением, Алексей!
 
  Рекламное место пустует
   AlexKulikov
 
1 - 08.12.17 - 12:38
Решил так проблему с повторным вызовом процедуры.
 Если ЭтаФорма.ЭлементыФормы.Найти("Диаграмма") <> Неопределено Тогда 
       ЭлементыФормы.Диаграмма.Очистить();
       Диаг =  ЭлементыФормы.Диаграмма;
   Иначе
       Диаг = ЭлементыФормы.Добавить(Тип("Диаграмма"), "Диаграмма", Истина, ЭлементыФормы.ПолеТБ);
 КонецЕсли;


Список тем форума
 
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс, 1996 г.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует