Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 21:19

Получение на клиенте реквизита, созданного программно

Автор Wallesss, 25 мая 2024, 11:06

0 Пользователей и 1 гость просматривают эту тему.

Wallesss

Здравствуйте, на сервере создаю график и вывожу его на управляемую форму:
&НаКлиенте
Процедура Кнопка(Команда)
ВыводГраф();
КонецПроцедуры

&НаСервере
Процедура ВыводГраф()
нРекв = Новый Массив;
РеквГраф = Новый РеквизитФормы("Граф", Новый ОписаниеТипов("Диаграмма"));
нРекв.Добавить(РеквГраф);
ИзменитьРеквизиты(нРекв);

ЭтотОбъект["Граф"].ТипДиаграммы = ТипДиаграммы.График;
ЭтотОбъект["Граф"].Обновление = Ложь;
ЭтотОбъект["Граф"].АвтоТранспонирование = Ложь;

лин = Новый Линия(ТипЛинииДиаграммы.Сплошная, 0.3); //меняем толщину линии
Серия1 = ЭтотОбъект["Граф"].УстановитьСерию("Цена");
Серия1.Маркер = ТипМаркераДиаграммы.Нет;
Серия1.Линия = лин;
Данные = Новый ГенераторСлучайныхЧисел;

ШкалаЗначений = ЭтотОбъект["Граф"].ОбластьПостроения.ШкалаЗначений;
ШкалаЗначений.ТекстЗаголовка = "Цена (руб.)" + Символы.ПС;
ШкалаЗначений.ОбластьЗаголовка.Шрифт = Новый Шрифт("Arial", 13, Истина, Истина);

ШкалаТочек = ЭтотОбъект["Граф"].ОбластьПостроения.ШкалаТочек;
ШкалаТочек.ТекстЗаголовка = Символы.ПС + "Дата";
ШкалаТочек.ОбластьЗаголовка.Шрифт = Новый Шрифт("Arial", 13, Истина, Истина);
ЭтотОбъект["Граф"].ОбластьЛегенды.Расположение = РасположениеЛегендыДиаграммы.Нет;

мин = 30000;

д1 = Дата(2024, 05, 24);
Для С = 1 По 365 Цикл
  точк = Формат(д1, "ДФ=dd.MM.yyyy");
  ТочкаДиаграммы = ЭтотОбъект["Граф"].УстановитьТочку(точк);
  сч = Данные.СлучайноеЧисло(10000, 30000);
 
  Если сч < мин Тогда
  мин = сч;
  КонецЕсли;
 
  ЭтотОбъект["Граф"].УстановитьЗначение(ТочкаДиаграммы, Серия1, сч);
  д1 = д1 + 86400;
КонецЦикла;

ЭтотОбъект["Граф"].ОсьЗначений.МинимальноеЗначение = мин-100;
ЭтотОбъект["Граф"].ОсьЗначений.СпособОпределенияМинимальногоЗначения =
СпособОпределенияОграничивающегоЗначенияДиаграммы.ИспользоватьЗначение;

ЭтотОбъект["Граф"].Обновление = Истина;
ЭтотОбъект["Граф"].АвтоТранспонирование = Истина;

НовыйЭлемент = ЭтаФорма.Элементы.Добавить("Граф", Тип("ПолеФормы"), ЭтаФорма);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеДиаграммы;
НовыйЭлемент.ПутьКДанным = "Граф";
НовыйЭлемент.УстановитьДействие("ПриАктивизации", "ДиаграммаПриАктивизацииСодержимого");
КонецПроцедуры

&НаКлиенте
Процедура ДиаграммаПриАктивизацииСодержимого(Элемент)
// ЭтотОбъект["Граф"].Обновление = Ложь; - не работает
    // манипуляции с диаграммой
КонецПроцедуры

Затем я программно добавляю для диаграммы обработчик события "ПриАктивизации". Вопрос: как в обработчике события на клиенте получить реквизит формы "Граф" и провести некоторые манипуляции с диаграммой?

Wallesss

&НаКлиенте
Процедура ДиаграммаПриАктивизацииСодержимого(Элемент)
ЭтаФорма["Граф"].Обновление = Ложь;

Выделение = Элементы["Граф"].ПолучитьВыделенныеЭлементы();

// Преобразование диаграммы

ЭтаФорма["Граф"].Обновление = Истина;
КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск