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