ПостроительОтчетаАнализаДанных.Параметры

Свойства · Parameters

Тип: ПараметрыАнализаДанных. Параметры анализа данных. Состав параметров зависит от типа анализа.

Полное описание, параметры и ограничения

ПостроительОтчетаАнализаДанных.Параметры (DataAnalysisReportBuilder.Parameters)

ПостроительОтчетаАнализаДанных (DataAnalysisReportBuilder)

Параметры (Parameters)

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

Использование:
Только чтение.
Описание:
Тип: ПараметрыАнализаДанных.
Параметры анализа данных. Состав параметров зависит от типа анализа.
Доступность:

Толстый клиент.

Использование в версии:

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

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

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

Сгруппировать шесть точек и создать модель без выдуманного прогноза

Две очевидно разделённые группы числовых точек позволяют понять роли ключа, входных колонок, параметров и результата кластеризации.

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

Полный модуль управляемой формы собственной внешней обработки, только толстый клиент Windows.

Подготовка

  1. Собственная учебная база 8.5.1.1343, толстый клиент Windows. Создайте внешнюю обработку с управляемой формой, командой Выполнить и её кнопкой. Вставьте весь модуль выбранного урока.

  2. Методы построителя отчёта доступны только толстому клиенту, хотя сам тип упомянут и в других контекстах. Не переносите этот полный модуль в тонкий/веб-клиент или серверный обработчик.

  3. Для отдельного урока АнализДанных без построителя используется собственный серверный общий модуль УчебнаяСтатистика с флагом Сервер и вызов УчебнаяСтатистика.ВыполнитьПример() из серверной команды.

  4. Все значения вымышлены и создаются в памяти. Нет чтения документов/платежей, сетевых моделей, персональных данных, записи базы, сохранения файлов или печати.

  5. Это учебный расчёт на маленьком наборе. Он не даёт основания прогнозировать реальные продажи или принимать бизнес-решения без проверки качества исходных данных.

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

&НаКлиенте
Функция ПараметрУчебногоАнализа(Параметры, Русское, Английское)
    Параметр = Параметры.Найти(Русское);
    Если Параметр = Неопределено Тогда
        Параметр = Параметры.Найти(Английское);
    КонецЕсли;
    Если Параметр = Неопределено Тогда
        ВызватьИсключение "Нет документированного параметра " + Русское;
    КонецЕсли;
    Возврат Параметр;
КонецФункции

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

  1. Шесть точек созданы в памяти: три около (0,0), три около (10,10). Код — ключ, X/Y — непрерывные входные поля. Нет географических координат, пользователей или реальной выручки.

  2. Параметры ищутся по документированному русскому/английскому имени. КоличествоКластеров получает 2 после проверки ТипЗначения, МетодКластеризации — ДальняяСвязь.

  3. ТипЗаполненияТаблицы=ВсеПоля нужен для собственного отчёта по шести строкам. Наличие результата не угадывается до выполнения.

  4. Читаем размеры кластеров, центры, таблицу кластеризации, идентификаторы объектов и диагностические таблицу связей/матрицу расстояний. Номера групп не объявляются устойчивыми бизнес-идентификаторами.

  5. СоздатьМодельПрогноза даёт реальный объект модели; его присваиваем МодельПрогноза собственного построителя. Это не вызов Модель.Выполнить и не готовый прогноз новых данных.

  6. Без прогнозируемых колонок ЗначенияПолейПрогноза не выдаются за прибыль/вероятности продажи. Модель здесь только создана и описана.

  7. Отчёт Вывести строится в собственном ТабличныйДокумент и показывается толстому клиенту. Никакая печать или выгрузка в файл не выполняется.

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

  1. Тринадцать логических проверок ожидаются Истина: параметры/колонки, шесть объектов, две группы, сохранение общего количества, типы описаний и модели.

  2. Размеры групп и центры выводятся как фактические диагностические значения; не требуйте заранее назначенного номера первой/второй группы.

  3. Последнее сообщение прямо говорит: новый прогноз не выполнялся.

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

Есть полный пример реального кластерного расчёта на шести точках, отчёт и созданная модель с честной границей прогноза.

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

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

  2. Не сравнивать номера кластеров между разными входами как постоянные коды клиентов.

  3. Метод, масштаб признаков и стандартизация влияют на результат; этот маленький опыт не подменяет выбор модели на проверочной выборке.

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

Построить статистический отчёт по четырём вымышленным заказам

Самостоятельный модуль создаёт типизированную таблицу и показывает оба варианта вывода результата в собственный табличный документ.

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

Полный модуль управляемой формы собственной внешней обработки, только толстый клиент Windows.

Подготовка

  1. Собственная учебная база 8.5.1.1343, толстый клиент Windows. Создайте внешнюю обработку с управляемой формой, командой Выполнить и её кнопкой. Вставьте весь модуль выбранного урока.

  2. Методы построителя отчёта доступны только толстому клиенту, хотя сам тип упомянут и в других контекстах. Не переносите этот полный модуль в тонкий/веб-клиент или серверный обработчик.

  3. Для отдельного урока АнализДанных без построителя используется собственный серверный общий модуль УчебнаяСтатистика с флагом Сервер и вызов УчебнаяСтатистика.ВыполнитьПример() из серверной команды.

  4. Все значения вымышлены и создаются в памяти. Нет чтения документов/платежей, сетевых моделей, персональных данных, записи базы, сохранения файлов или печати.

  5. Это учебный расчёт на маленьком наборе. Он не даёт основания прогнозировать реальные продажи или принимать бизнес-решения без проверки качества исходных данных.

&НаКлиенте
Процедура Выполнить(Команда)
    Таблица = Новый ТаблицаЗначений;
    Таблица.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
    Таблица.Колонки.Добавить("Регион", Новый ОписаниеТипов("Строка"));
    Таблица.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
    Для Номер = 1 По 4 Цикл
        СтрокаТаблицы = Таблица.Добавить();
        СтрокаТаблицы.Код = "guide-order-" + Строка(Номер);
        СтрокаТаблицы.Регион = ?(Номер = 4, "Юг", "Север");
        СтрокаТаблицы.Сумма = Номер * 100;
    КонецЦикла;
    Построитель = Новый ПостроительОтчетаАнализаДанных;
    Построитель.ТипАнализа = Тип("АнализДанныхОбщаяСтатистика");
    Построитель.ИсточникДанных = Таблица;
    Построитель.ОтображатьСостояние = Ложь;
    Построитель.ОбрабатыватьПрерываниеПользователя = Истина;
    Анализатор = Построитель.ПолучитьАнализ();
    Если ТипЗнч(Анализатор) <> Тип("АнализДанных") Тогда
        ВызватьИсключение "Ожидался документированный анализатор построителя";
    КонецЕсли;
    Настройки = Построитель.НастройкаКолонок;
    Код = Настройки.Найти("Код");
    Регион = Настройки.Найти("Регион");
    Сумма = Настройки.Найти("Сумма");
    Если Код = Неопределено ИЛИ Регион = Неопределено ИЛИ Сумма = Неопределено Тогда
        ВызватьИсключение "Анализатор не создал ожидаемые три настройки собственных колонок";
    КонецЕсли;
    Код.ТипКолонки = ТипКолонкиАнализаДанныхОбщаяСтатистика.Неиспользуемая;
    Регион.ТипКолонки = ТипКолонкиАнализаДанныхОбщаяСтатистика.Входная;
    Регион.ВидДанных = ВидДанныхАнализа.Дискретные;
    Сумма.ТипКолонки = ТипКолонкиАнализаДанныхОбщаяСтатистика.Входная;
    Сумма.ВидДанных = ВидДанныхАнализа.Непрерывные;
    Построитель.Выполнить();
    Результат = Построитель.Результат;
    Если ТипЗнч(Результат) <> Тип("РезультатАнализаДанныхОбщаяСтатистика") Тогда
        ВызватьИсключение "Ожидался результат общей статистики";
    КонецЕсли;
    Сообщить(Результат.КоличествоОбъектов = 4);
    Сообщить(Построитель.ТипАнализа = Тип("АнализДанныхОбщаяСтатистика"));
    Сообщить(Построитель.ИсточникДанных.Количество() = 4);
    Сообщить(НЕ Построитель.ОтображатьСостояние);
    Сообщить(Построитель.ОбрабатыватьПрерываниеПользователя);
    Сообщить(Построитель.НастройкаКолонок.Количество() = 3);
    Сообщить(Анализатор.ТипАнализа = Построитель.ТипАнализа);
    Сообщить(Анализатор.ИсточникДанных.Количество() = 4);
    Сообщить(СтрШаблон("Параметров выбранного анализа: %1", Построитель.Параметры.Количество()));
    Построитель.Макет = Неопределено;
    Документ = Новый ТабличныйДокумент;
    Построитель.Вывести(Документ);
    Сообщить(Документ.ВысотаТаблицы > 0);
    Сообщить(ТипЗнч(Построитель.Макет) = Тип("ТабличныйДокумент"));
    ВторойДокумент = Новый ТабличныйДокумент;
    Построитель.Вывести(Результат, ВторойДокумент);
    Сообщить(ВторойДокумент.ВысотаТаблицы > 0);
    Документ.Показать("Учебная статистика четырёх вымышленных заказов");
КонецПроцедуры

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

  1. Код — только учебный идентификатор и исключён из статистики. Регион задан дискретным, Сумма — непрерывным; настройки выбираются по имени с проверкой наличия.

  2. ПолучитьАнализ возвращает настоящий АнализДанных: проверяем его тип. Правила колонок задаём через НастройкаКолонок самого построителя и не полагаемся на неописанное совместное владение настройками двух объектов.

  3. Выполнить построителя заполняет readonly-свойство Результат и не обещает возвращаемое значение. Тип результата проверяем перед его чтением.

  4. ОтображатьСостояние выключено, ОбрабатыватьПрерываниеПользователя включено. Это два разных свойства, не обработчик исключения приложения.

  5. Макет=Неопределено возобновляет автоматическую генерацию. Первый Вывести принимает документ и использует свойство Результат; второй принимает явный результат и другой документ.

  6. Показать открывает только созданный нами табличный документ. Печати, записи файла и доступа к реальным заказам нет.

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

  1. Одиннадцать сравнений ожидаются Истина; число параметров выбранного анализа отдельно диагностическое.

  2. В окне собственного отчёта найдите четыре суммы 100/200/300/400 и частоты регионов 3/1. Не сравнивайте оформление посимвольно между разными интерфейсами.

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

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

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

  1. Тонкий клиент не подходит методам этого построителя: выбирайте серверный АнализДанных для расчёта без клиентского построителя.

  2. Readonly-свойства НастройкаКолонок, Параметры и Результат не присваиваются. Меняются разрешённые настройки отдельных элементов.

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

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

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

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

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