наверх
Свободные IT публикации
быстро и доступно
логин:
пароль:

Анализ данных в 1С 8.x


Как получить данные о товарах продаваемых вместе?

Анализ = Новый АнализДанных; 

// Выбранный тип анализа как раз и указывает на то, что ищем 
// "совместно продаваемые" товары. 
Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); 

Запрос = Новый Запрос; 
Запрос.Текст = "ВЫБРАТЬ 
	|	ПродажиКомпанииОбороты.Регистратор Как ДокументПродажи, 
	|	ПродажиКомпанииОбороты.Номенклатура 
	|ИЗ 
	|	РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) КАК ПродажиКомпанииОбороты 
	|УПОРЯДОЧИТЬ ПО 
	|	ДокументПродажи"; 

Запрос.УстановитьПараметр("НачПериода", НачПериода); 
Запрос.УстановитьПараметр("КонПериода", КонПериода); 

// Получить продажи за указанный период. 
// Выбрана периодичность по Регистратору, т.к. необходимо получить 
// данные о совместных продажах в рамках одной покупки. 
Анализ.ИсточникДанных = Запрос.Выполнить(); 

// Выполнить анализ в соответствии с указанным источником. 
РезультатАнализа = Анализ.Выполнить(); 

// Для вывода результата анализа воспользуемся построителем 
// отчета анализа данных. 
Построитель = Новый ПостроительОтчетаАнализаДанных(); 
Построитель.Макет = Неопределено; 
Построитель.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); 
ТабДок = Новый ТабличныйДокумент; 

Построитель.Вывести(РезультатАнализа, ТабДок); 
ТабДок.Показать();

Как порекомендовать сопутствующие товары?

Анализ = Новый АнализДанных; 

// Найти ассоциации. 
Анализ.ТипАнализа = Тип("АнализДанныхПоискАссоциаций"); 

Запрос = Новый Запрос; 
Запрос.Текст = "ВЫБРАТЬ 
	|	ПродажиКомпанииОбороты.Регистратор КАК ДокументПродажи, 
	|	ПродажиКомпанииОбороты.Номенклатура 
	|ИЗ 
	|	РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) КАК ПродажиКомпанииОбороты 
	|УПОРЯДОЧИТЬ ПО 
	|	ДокументПродажи"; 

// Ассоциации ищем подокументно, это определяется поведением 
// объекта "АнализДанных" "по умолчанию" при выборе 
// периодичности виртуальной таблицы Регистратор 
Запрос.УстановитьПараметр("НачПериода", НачПериода); 
Запрос.УстановитьПараметр("КонПериода", КонПериода); 

Анализ.ИсточникДанных = Запрос.Выполнить(); 
РезультатАнализа = Анализ.Выполнить(); 

// Исходя из полученного анализа создать прогноз. 
МодельПрогноза = РезультатАнализа.СоздатьМодельПрогноза(); 

// ТЗ- таблица значений, содержащая данные о том, 
// какие номенклатурные позиции вошли в "текущую" покупку. 
МодельПрогноза.ИсточникДанных = ТЗ; 

// ТП - элемент управления "Табличное поле" связанный через 
// свойство "Данные" с реквизитом формы "ТП" (тип ТаблицаЗначений) 
ТП = МодельПрогноза.Выполнить(); 
ЭлементыФормы.ТП.СоздатьКолонки();

Как посмотреть, что будет покупаться в дальнейшем?

ТабДок = Новый ТабличныйДокумент; 
Анализ = Новый АнализДанных; 

// Нужно спрогнозировать цепочку событий, поэтому выбираем 
// тип анализа "Поиск последовательностей". 
Анализ.ТипАнализа = Тип("АнализДанныхПоискПоследовательностей"); 

Запрос = Новый Запрос; 
Запрос.Текст = "ВЫБРАТЬ 
	|	ПродажиКомпанииОбороты.ДоговорВзаиморасчетовПокупателя.Владелец КАК Контрагент, 
	|	ПродажиКомпанииОбороты.Номенклатура, 
	|	ПродажиКомпанииОбороты.Период 
	|ИЗ 
	|	РегистрНакопления.ПродажиКомпании.Обороты(&НачПериода, &КонПериода, Регистратор) 
	КАК ПродажиКомпанииОбороты"; 

Запрос.УстановитьПараметр("НачПериода", НачПериода); 
Запрос.УстановитьПараметр("КонПериода", КонПериода); 

Анализ.ИсточникДанных = Запрос.Выполнить(); 
Колонка = Анализ.НастройкаКолонок.Найти("Период"); 

// Указать, что колонка "Период" имеет тип "Время", 
// что "позволит понять" хронологию событий 
Колонка.ТипКолонки = ТипКолонкиАнализаДанныхПоискПоследовательностей.Время; 

РезультатАнализа = Анализ.Выполнить(); 
МодельПрогноза = РезультатАнализа.СоздатьМодельПрогноза(); 

// ТЗ- таблица значений, содержащая исходные данные для прогноза 
// например, какой контрагент, какой товар закупил (исходя из чего 
// попытаемся узнать, что они еще закупят). 
МодельПрогноза.ИсточникДанных = ТЗ; 

// ТП - элемент управления "Табличное поле" связанный через 
// свойство "Данные" с реквизитом формы "ТП" 
//(тип ТаблицаЗначений) 
ТП = МодельПрогноза.Выполнить(); 

ЭлементыФормы.ТП.СоздатьКолонки(); 

// Построитель - реквизит формы, имеющий тип 
// ПостроительОтчетаАнализаДанных. Ряд табличных полей
// в диалоге могут быть связаны со свойствами - коллекциями 
// данного объекта 
Построитель.ТипАнализа = Тип("АнализДанныхПоискПоследовательностей"); 
Построитель.Вывести(РезультатАнализа, ТабДок); 
ТабДок.Показать();