Дендрограмма.Выбор

События · Selection

Возникает при двойном щелчке мыши на дендрограмме.

Синтаксис

Выбор(<ЗначениеДиаграммы>, <СтандартнаяОбработка>)
Полное описание, параметры и ограничения

Дендрограмма.Выбор (Dendrogram.Selection)

Дендрограмма (Dendrogram)

Выбор (Selection)

Доступен, начиная с версии 8.0.

Синтаксис:
Выбор(<ЗначениеДиаграммы>, <СтандартнаяОбработка>)
Параметры:

<ЗначениеДиаграммы>
Тип: ЭлементДендрограммы, СвязьДендрограммы.
Значение дендрограммы.

<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина.
Описание:

Возникает при двойном щелчке мыши на дендрограмме.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Примечание:
Если дендрограмма расположена в форме (или табличном документе, расположенном в форме), то используется процедура-обработчик формы.
Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Выбор: настоящее дерево учебной кластеризации

Работа с настоящей дендрограммой собственного кластерного отчёта, а не недокументированное создание концов связей.

Где и как запускать

Модуль своей управляемой формы, толстый управляемый клиент; процедуры и функции &НаКлиенте.

Подготовка

  1. Собственная внешняя обработка с управляемой формой, толстый управляемый клиент Windows. Реквизит УчебноеДерево типа Дендрограмма и связанное ПолеДерева вида Поле дендрограммы создайте в конфигураторе.

  2. Создайте команду ПостроитьДерево и её кнопку. Все дополнительные функции поместите отдельно в тот же модуль. Для событий сначала выполните кнопку подготовки, затем дважды щёлкните подпись настоящего элемента дерева.

  3. Источник — только шесть собственных вымышленных точек в памяти. Построитель отчёта анализа данных работает здесь в толстом клиенте, не в тонком или веб-клиенте.

  4. Дерево получается из результата настоящей иерархической кластеризации. Концы связей ПервыйЭлемент / ВторойЭлемент доступны только для чтения: код не пытается присвоить их вручную.

  5. BSL и кластеризация при сборке HTML не выполнялись; данные базы, файлы, сеть и печать не используются.

  6. Назначьте основной обработчик одноимённому событию ПолеДерева. Первым параметром формы идёт Элемент; остальные параметры соответствуют событию объекта данных.

  7. Для ОбработкаРасшифровки щёлкните по подписи узла: её расшифровка задана явно при извлечении дерева. У СвязьДендрограммы нет записываемого свойства Расшифровка.

&НаКлиенте
Процедура ПолеДереваВыбор(Элемент, ЗначениеДиаграммы, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Если ТипЗнч(ЗначениеДиаграммы) = Тип("СвязьДендрограммы") Тогда
        Сообщить("Расстояние своей связи: " + Строка(ЗначениеДиаграммы.Расстояние));
    Иначе
        Сообщить("Собственный элемент: " + ЗначениеДиаграммы.Текст);
    КонецЕсли;
КонецПроцедуры
Тот же модуль: шесть собственных точек
&НаКлиенте
Функция УчебныеТочкиДерева()
    Точки = Новый ТаблицаЗначений;
    Точки.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Точки.Колонки.Добавить("X", Новый ОписаниеТипов("Число"));
    Точки.Колонки.Добавить("Y", Новый ОписаниеТипов("Число"));
    Для Индекс = 0 По 5 Цикл
        Точка = Точки.Добавить();
        Точка.Код = "Учебная точка " + Строка(Индекс + 1);
        База = ?(Индекс < 3, 0, 10);
        Точка.X = База + ?(Индекс % 3 = 2, 1, 0);
        Точка.Y = База + ?(Индекс % 3 = 1, 1, 0);
    КонецЦикла;
    Возврат Точки;
КонецФункции
Тот же модуль: доступ к реальному параметру анализа
&НаКлиенте
Функция ПараметрУчебногоДерева(Параметры, Русское, Английское)
    Параметр = Параметры.Найти(Русское);
    Если Параметр = Неопределено Тогда
        Параметр = Параметры.Найти(Английское);
    КонецЕсли;
    Если Параметр = Неопределено Тогда
        ВызватьИсключение "Не найден параметр анализа: " + Русское;
    КонецЕсли;
    Возврат Параметр;
КонецФункции
Тот же модуль: выполнить иерархическую кластеризацию и вывести её отчёт
&НаКлиенте
Функция УчебныйОтчетКластеризации()
    Построитель = Новый ПостроительОтчетаАнализаДанных;
    Построитель.ТипАнализа = Тип("АнализДанныхКластеризация");
    Построитель.ИсточникДанных = УчебныеТочкиДерева();
    Колонки = Построитель.НастройкаКолонок;
    Колонки.Найти("Код").ТипКолонки = ТипКолонкиАнализаДанныхКластеризация.Ключ;
    Колонки.Найти("Код").ВидДанных = ВидДанныхАнализа.Дискретные;
    Для Каждого ИмяКолонки Из СтрРазделить("X,Y", ",") Цикл
        Колонка = Колонки.Найти(ИмяКолонки);
        Колонка.ТипКолонки = ТипКолонкиАнализаДанныхКластеризация.Входная;
        Колонка.ВидДанных = ВидДанныхАнализа.Непрерывные;
    КонецЦикла;
    Количество = ПараметрУчебногоДерева(Построитель.Параметры, "КоличествоКластеров", "ClusterCount");
    Количество.Значение = 2;
    Метод = ПараметрУчебногоДерева(Построитель.Параметры, "МетодКластеризации", "ClusterizationMethod");
    Метод.Значение = МетодКластеризации.ДальняяСвязь;
    Построитель.Выполнить();
    Документ = Новый ТабличныйДокумент;
    Построитель.Вывести(Документ);
    Возврат Документ;
КонецФункции
Тот же модуль: получить настоящее дерево из рисунка отчёта
&НаКлиенте
Функция ПостроитьУчебноеДерево()
    Документ = УчебныйОтчетКластеризации();
    Для Каждого Рисунок Из Документ.Рисунки Цикл
        Если Рисунок.ТипРисунка = ТипРисункаТабличногоДокумента.Дендрограмма Тогда
            Дерево = Рисунок.Объект;
            Для Каждого Узел Из Дерево.Элементы Цикл
                Узел.Расшифровка = Узел.Текст;
            КонецЦикла;
            Возврат Дерево;
        КонецЕсли;
    КонецЦикла;
    ВызватьИсключение "В собственном иерархическом отчёте нет дендрограммы";
КонецФункции
Сначала выполните свою команду подготовки дерева
&НаКлиенте
Процедура ПостроитьДерево(Команда)
    УчебноеДерево = ПостроитьУчебноеДерево();
    Сообщить("Связей собственного дерева: " + Строка(УчебноеДерево.Связи.Количество()));
    Сообщить("Теперь выберите подпись элемента в ПолеДерева");
КонецПроцедуры

Разбор по шагам

  1. Создайте своё поле и разместите отдельные функции в модуле.

  2. Постройте дерево из шести своих точек.

  3. Проверьте указанный режим или назначенное событие на этом же дереве.

Как проверить результат

  1. Выбор может передать элемент или связь, поэтому одна проверка типа отделяет два разных документированных контракта.

  2. Расстояние читается у настоящей связи. Оно зависит от метода кластеризации и не объявляется километрами; исходные шесть координат не меняются.

Ожидаемый результат

Есть воспроизводимый источник дерева, реальные связи и точный контекст события / настройки.

На что обратить внимание

  1. Построитель не выполнялся при сборке HTML. Наличие примера не означает проверку интерфейса в установленном клиенте.

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

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.