Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГЗ.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.86 Mб
Скачать

Модуль отчета «Динамика финансирования»

Процедура ДействияФормыОтчет1Сформировать(Кнопка)

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Отчет1)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Диаграмма = ЭлементыФормы.Диаграмма;

Отчет1(Диаграмма, Номер_проекта);

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА

КонецПроцедуры

Процедура Отчет1(Диаграмма, Номер_проекта) Экспорт

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Отчет1)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;

Запрос.Текст =

"ВЫБРАТЬ

| Решение.Финансирование КАК Финансирование,

| Решение.Дата КАК Дата

|ИЗ

| Документ.Решение КАК Решение

|ГДЕ

| Решение.Номер_проекта = &Номер_проекта

|ИТОГИ

| СУММА(Финансирование)

|ПО

| Дата";

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

Результат = Запрос.Выполнить();

Диаграмма.Обновление = Ложь;

Диаграмма.Очистить();

Диаграмма.АвтоТранспонирование = Ложь;

Точка = Диаграмма.УстановитьТочку("Финансирование");

ВыборкаДата = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

Пока ВыборкаДата.Следующий() Цикл

Серия = Диаграмма.УстановитьСерию(ВыборкаДата.Дата);

Серия.Текст = ВыборкаДата.Дата;

Серия.Расшифровка = ВыборкаДата.Дата;

Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаДата.Финансирование, Серия.Расшифровка);

КонецЦикла;

Диаграмма.АвтоТранспонирование = Истина;

Диаграмма.Обновление = Истина;

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ

КонецПроцедуры

Модуль отчета «Кластерный анализ»

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)

КонецПроцедуры

Процедура ПриЗакрытии()

КонецПроцедуры

Процедура ДействияФормыОтчетСформировать(Кнопка)

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА(Отчет)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

ТабДок = ЭлементыФормы.ПолеТабличногоДокумента;

Отчет(ТабДок);

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПРОЦЕДУРА_ВЫЗОВА

КонецПроцедуры

Процедура Отчет(ТабДок) Экспорт

//{{КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ(Отчет)

// Данный фрагмент построен конструктором.

// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

//кластеризация

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ

| СтатусПроектаСрезПоследних.НарядНаРемонт,

| СтатусПроектаСрезПоследних.НарядНаРемонт.Затраты - СтатусПроектаСрезПоследних.Финансирование КАК Поле1

|ИЗ

| РегистрСведений.СтатусПроекта.СрезПоследних(&текущ, ) КАК СтатусПроектаСрезПоследних

|ГДЕ

| СтатусПроектаСрезПоследних.НарядНаРемонт.Затраты - СтатусПроектаСрезПоследних.Финансирование > 0";

Запрос.УстановитьПараметр("текущ",ТекущаяДата());

//Запрос.УстановитьПараметр("Статус1",Перечисления.Статус.Заморожен);

//Запрос.УстановитьПараметр("Статус2",Перечисления.Статус.Не_обслужен);

Результат = Запрос.Выполнить();

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

Анализ.ТипАнализа = Тип("АнализДанныхКластеризация");

///

Анализ.Параметры.типзаполнениятаблицы.значение=ТипЗаполненияТаблицыРезультатаАнализаДанных.ИспользуемыеПоля;

///

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

// выбор метрики

Анализ.Параметры.МераРасстояния.Значение = ТипМерыРасстоянияАнализаДанных.ЕвклидоваМетрикаВКвадрате;

// выбор метода кластеризации

Анализ.Параметры.МетодКластеризации.Значение = МетодКластеризации.КСредних;

//анализ

//анализ.Параметры.КоличествоКластеров.значение=4;

РезультатАнализа = Анализ.Выполнить();

//выгрузка результата анализа в табличное поле кластеризация

кластеризация=РезультатАнализа.ТаблицаКластеризации;

кластеризация.Колонки.Удалить(1);

//конец кластер анализа

//Параметры

МенВрТаб = Новый МенеджерВременныхТаблиц;

времтаб = Новый Запрос;

времтаб.МенеджерВременныхТаблиц=МенВрТаб;

времтаб.Текст = "ВЫБРАТЬ

| табл.НарядНаРемонт КАК Наряд,

| табл.Кластер

|ПОМЕСТИТЬ временнаятаблица

|ИЗ

| &таблица КАК табл

|;

|

|////////////////////////////////////////////////////////////////////////////////

|ВЫБРАТЬ

| временнаятаблица.Кластер,

| МАКСИМУМ(СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование) КАК Поле1

|ИЗ

| временнаятаблица КАК временнаятаблица

| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.СтатусПроекта.СрезПоследних(&дата, ) КАК СтатусПроектаСрезПоследних

| ПО временнаятаблица.Наряд = СтатусПроектаСрезПоследних.НарядНаРемонт

|

|СГРУППИРОВАТЬ ПО

| временнаятаблица.Кластер

|

|УПОРЯДОЧИТЬ ПО

| Поле1";

времтаб.УстановитьПараметр("дата",ТекущаяДата());

времтаб.УстановитьПараметр("таблица", кластеризация);

финклстер=времтаб.Выполнить();

//////////////////////

Макет = ОтчетОбъект.ПолучитьМакет("Отчет");

//временная таблица

МенВрТаб = Новый МенеджерВременныхТаблиц;

времтаб = Новый Запрос;

времтаб.МенеджерВременныхТаблиц=МенВрТаб;

времтаб.Текст = "ВЫБРАТЬ

| табл.НарядНаРемонт КАК Наряд,

| табл.Кластер

|ПОМЕСТИТЬ временнаятаблица

|ИЗ

| &таблица КАК табл

|;

|

|////////////////////////////////////////////////////////////////////////////////

|ВЫБРАТЬ

| временнаятаблица.Наряд,

| СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование КАК ТребФ,

| ВЫБОР

| КОГДА СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование МЕЖДУ 0 И &к1

| ТОГДА ""Высокий""

| ИНАЧЕ ВЫБОР

| КОГДА СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование МЕЖДУ &к1 И &к2

| ТОГДА ""Средний""

| ИНАЧЕ ВЫБОР

| КОГДА СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование МЕЖДУ &к2 И &к3

| ТОГДА ""Низкий""

| КОНЕЦ

| КОНЕЦ

| КОНЕЦ КАК Срочность

|ИЗ

| РегистрСведений.СтатусПроекта.СрезПоследних(&дата, ) КАК СтатусПроектаСрезПоследних

| ВНУТРЕННЕЕ СОЕДИНЕНИЕ временнаятаблица КАК временнаятаблица

| ПО СтатусПроектаСрезПоследних.НарядНаРемонт = временнаятаблица.Наряд

|ГДЕ

| СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование > 0

|

|СГРУППИРОВАТЬ ПО

| временнаятаблица.Наряд,

| СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование,

| ВЫБОР

| КОГДА СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование МЕЖДУ 0 И &к1

| ТОГДА ""Высокий""

| ИНАЧЕ ВЫБОР

| КОГДА СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование МЕЖДУ &к1 И &к2

| ТОГДА ""Средний""

| ИНАЧЕ ВЫБОР

| КОГДА СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование МЕЖДУ &к2 И &к3

| ТОГДА ""Низкий""

| КОНЕЦ

| КОНЕЦ

| КОНЕЦ

|

|УПОРЯДОЧИТЬ ПО

| ТребФ";

времтаб.УстановитьПараметр("дата",ТекущаяДата());

времтаб.УстановитьПараметр("таблица", кластеризация);

времтаб.УстановитьПараметр("к1",финклстер.Выгрузить()[0][1]);

времтаб.УстановитьПараметр("к2",финклстер.Выгрузить()[1][1]);

времтаб.УстановитьПараметр("к3",финклстер.Выгрузить()[2][1]);

Результат=времтаб.Выполнить();

//запрос для отчёта

//Запрос = Новый Запрос;

////Запрос.МенеджерВременныхТаблиц=МенВрТаб;

//Запрос.Текст =

//"ВЫБРАТЬ

//| Наряд_на_ремонт.Номер,

//| Наряд_на_ремонт.Затраты

//|ИЗ

//| Документ.Наряд_на_ремонт КАК Наряд_на_ремонт";

//Результат = Запрос.Выполнить();

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");

ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");

ТабДок.Очистить();

ТабДок.Вывести(ОбластьЗаголовок);

ТабДок.Вывести(ОбластьШапкаТаблицы);

ТабДок.НачатьАвтогруппировкуСтрок();

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

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);

ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());

КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.Вывести(ОбластьПодвалТаблицы);

ТабДок.Вывести(ОбластьПодвал);

//}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ

КонецПроцедуры

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]