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

Прогноз по анализу дерева решений

Автор Fenlou, 15 мар 2015, 09:50

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

Fenlou

Помогите исправить ошибку, все написал, но ничего не выводит. Обработка ниже

SitnovaMarina

Долго Вам будут помогать с такой формулировкой вопроса :mellow:
Народная мудрость: Программу встречают по интерфейсу

Fenlou

Цитата: SitnovaMarina от 15 мар 2015, 11:11
Долго Вам будут помогать с такой формулировкой вопроса :mellow:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПриОткрытииНаСервере()
КонецПроцедуры

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

&НаСервере
Процедура Анализ(ТабДок)
Анализ = Новый АнализДанных;
Анализ.ТипАнализа = Тип("АнализДанныхДеревоРешений");
Анализ.ИсточникДанных = РеквизитФормыВЗначение("ДеревоРешений");
Анализ.Параметры.ТипУпрощения.Значение = ТипУпрощения;
Анализ.Параметры.МинимальноеКоличествоСлучаев.Значение = МинимальноеКоличествоСлучаев;
Анализ.Параметры.МаксимальнаяГлубина.Значение = МаксимальнаяГлубина;
РезультатАнализа = Анализ.Выполнить();
Построитель = Новый ПостроительОтчетаАнализаДанных();
Построитель.Макет = Неопределено;
Построитель.ТипАнализа = Тип ("АнализДанныхДеревоРешений");
Построитель.Вывести(РезультатАНализа,ТабДок);
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьАнализ(Команда)
ТабДок = Новый ТабличныйДокумент;
Анализ(ТабДок);
ТабДок.Показать();
КонецПроцедуры

&НаКлиентеСервера
Процедура Прогноз(Команда)
МодельПрогноза = РезультатАнализа.СоздатьМодельПрогноза();
МодельПрогноза.ИсточникДанных = РеквизитФормыВЗначение("ДеревоРешений");
ТаблицаЗначенийПоследовательностей = МодельПрогноза.Выполнить();
Если ТаблицаЗначенийПоследовательностей.Количество()>0 тогда
РезультатПрогноза.Очистить();
ЭлементыФормы.РезультатПрогноза.Значение = ТаблицаЗначенийПоследовательностей;
ЭлементыФормы.РезультатПрогноза.СоздатьКолонки();
КонецЕсли;
Если РезультатПрогноза.Количество() = 0 тогда
Предупреждение("Предложений нет");
Иначе
ЭлементыФормы.РезультатПрогноза.СоздатьКолонки();
КонецЕсли;
КонецПроцедуры





Добавлено: 15 мар 2015, 12:31


или так
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПриОткрытииНаСервере()
КонецПроцедуры

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

&НаСервере
Процедура Анализ(ТабДок)
Анализ = Новый АнализДанных;
Анализ.ТипАнализа = Тип("АнализДанныхДеревоРешений");
Анализ.ИсточникДанных = РеквизитФормыВЗначение("ДеревоРешений");
Анализ.Параметры.ТипУпрощения.Значение = ТипУпрощения;
Анализ.Параметры.МинимальноеКоличествоСлучаев.Значение = МинимальноеКоличествоСлучаев;
Анализ.Параметры.МаксимальнаяГлубина.Значение = МаксимальнаяГлубина;
РезультатАнализа = Анализ.Выполнить();
Построитель = Новый ПостроительОтчетаАнализаДанных();
Построитель.Макет = Неопределено;
Построитель.ТипАнализа = Тип ("АнализДанныхДеревоРешений");
Построитель.Вывести(РезультатАНализа,ТабДок);
МодельПрогноза = РезультатАнализа.СоздатьМодельПрогноза();
МодельПрогноза.ИсточникДанных = Анализ.ИсточникДанных ;
РезультатПрогноза = МодельПрогноза.Выполнить();
РезультатПрогноза.СоздатьКолонки();
КонецПроцедуры

&НаКлиенте
Процедура ВыполнитьАнализ(Команда)
ТабДок = Новый ТабличныйДокумент;
Анализ(ТабДок);
ТабДок.Показать();
КонецПроцедуры

ошибка такая {Обработка.ДеревоРешений.Форма.Форма.Форма(36)}: Ошибка при установке значения атрибута контекста (РезультатПрогноза)
РезультатПрогноза = МодельПрогноза.Выполнить();
по причине:
Нельзя изменять поле, содержащее объект данных формы
Нельзя изменять поле, содержащее объект данных формы

ilyay

По-моему совершенно ясный текст ошибки: вы результат присваиваете в реквизит.
Присвоение должно заменить реквизит, а это невозможно. Нужно просто присвоить переменной, а в реквизит потом скопировать эти данные.

Теги:

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

Рейтинг@Mail.ru

Поиск