- •Содержание
- •Введение
- •1 Анализ деятельности ооо «ук ДомМонтажСервис Плюс»
- •1.1 Технико-экономическая характеристика ооо «ук ДомМонтажСер-вис Плюс» городского округа г.Салават Республики Башкортостан
- •1.2 Организационная структура ооо «ук ДомМонтажСервис Плюс»
- •1.2.1 Общие положения, функции и задачи управления
- •1.2.2 Организационная структура, задачи и функции группы эксплуатации жилищного фонда ооо «ук ДомМонтажСервис Плюс»
- •1.3 Анализ информационных потоков ооо «ук ДомМонтажСервис Плюс»
- •1.4 Порядок проведения осмотра объекта жилищного фонда
- •1.5 Методики определения физического износа здания или конструктивного элемента
- •1.6 Информационно-аналитические задачи ооо «ук ДомМонтажСервис Плюс» и задачи специалиста группы эксплуатации жилищного фонда, требующие автоматизации
- •1.7 Обзор систем, автоматизирующих процессы в сфере жкх
- •1.8 Обоснование проектных решений по проектированию комплекса интеллектуальных систем по планированию капитального ремонта жилищного фонда
- •1.8.1 Обоснование целесообразности использования вычислительной техники
- •1.8.2 Обоснование проектных решений по информационному обеспечению
- •1.8.3 Обоснование проектных решений по программному и техническому обеспечению системы
- •1.8.4 Обоснование проектных решений по математическому обеспечению
- •2 Проектирование комплекса интеллектуальных систем по планированию капитального ремонта жилищного фонда ооо «ук ДомМонтажСервис Плюс»
- •2.1 Общие принципы работы экспертной системы
- •2.2 Общие принципы работы сппр
- •2.3 Информационное обеспечение программного комплекса планирования капитального ремонта жилищного фонда
- •2.3.1 Иерархия объектов конфигурации
- •2.3.2 Описание структуры перечислений и справочников
- •2.3.3 Описание структуры документов
- •2.3.4 Описание структуры регистров
- •2.4 Описание технологического процесса планирование капитального ремонта жилищного фонда ооо «ук ДомМонтажСервис Плюс»
- •2.5 Описание программных модулей
- •2.6 Описание интерфейса системы и инструкции по работе с ней
- •2.6.1 Описание работы со справочниками
- •2.6.2 Описание работы с документами
- •Заключение
- •Список использованных источников
- •Приложение а (обязательное) Схемы оргструктур
- •Приложение б (обязательное)
- •Приложение
- •Приложение в (обязательное) Периодичность плановых и частичных осмотров элементов и помещений зданий
- •Приложение г (обязательное) Предельные сроки устранения неисправностей при выполнении внепланового ремонта отдельных частей жилых домов и их оборудования
- •Приложение ж (обязательное) Фрагмент базы правил экспертной системы определения технического состояния конструктивного элемента мкд
- •Приложение м (обязательное) Фрагмент листинга программного кода реализации метода усреднения индивидуальных оценок
- •Приложение н (обязательное) Фрагмент листинга программного кода реализации метода экспертных оценок
- •(Обязательное)
- •3 Обоснование экономической эффективности от внедрения программного комплекса интеллектуальных систем планирования капитального ремонта жилищного фонда
- •3.1 Выбор и обоснование методики расчета экономической эффективности проекта
- •3.2 Расчет совокупных затрат и результатов до внедрения программного комплекса интеллектуальных систем
- •3.3 Расчет затрат на разработку и внедрение проекта
- •3.4 Расчет совокупных затрат и результатов после внедрения разрабатываемого программного комплекса интеллектуальных систем
- •3.5 Расчет показателей экономической эффективности внедрения разрабатываемого и альтернативного проекта
- •По формуле (3.15) годовая экономия от программного комплекса интеллектуальных систем оценивания технического состояния мкд составляет:
Приложение м (обязательное) Фрагмент листинга программного кода реализации метода усреднения индивидуальных оценок
функция ОценкаКритерия(значение,мин,макс,максоценка)
Если значение>=макс тогда
Возврат максоценка;
КонецЕсли;
КвЧисла = Новый КвалификаторыЧисла(2,0,ДопустимыйЗнак.Неотрицательный);
масс=новый Массив;
масс.Добавить(Тип("Число"));
тип=новый ОписаниеТипов(масс,,,КвЧисла);
баллы=0;
баллы=тип.ПривестиЗначение(баллы);
макс=макс-мин;
значение=значение-мин;
баллы=1;
для а=1 по максоценка цикл
если макс*(а/максоценка)<значение и значение<макс*((а+1)/максоценка) тогда
баллы=а;
КонецЕсли;
КонецЦикла;
возврат баллы;
КонецФункции
функция максимальный(массив)
максимальн=0;
для а=0 по массив.Количество()-1 цикл
если массив[а]>массив[максимальн] тогда
максимальн=а;
КонецЕсли;
КонецЦикла;
Возврат массив[максимальн];
КонецФункции
функция ф1(а)
если а<0 тогда
возврат 0;
иначе
Возврат а;
КонецЕсли;
КонецФункции
функция минимальный(массив)
миниимальн=0;
для а=0 по массив.Количество()-1 цикл
если массив[а]<массив[миниимальн] тогда
миниимальн=а;
КонецЕсли;
КонецЦикла;
Возврат массив[миниимальн];
КонецФункции
функция минимальныйиндекс(массив)
минимальн=0;
для а=0 по массив.Количество()-1 цикл
если массив[а]>массив[минимальн] тогда
минимальн=а;
КонецЕсли;
КонецЦикла;
Возврат минимальн;
КонецФункции
функция количествоодинаковых(массив,индекс)
к=0;
для а=0 по массив.количество()-1 цикл
если массив[индекс]=массив[а] тогда
к=к+1;
КонецЕсли;
КонецЦикла;
Возврат к;
КонецФункции
функция ПоискВСпискеЗначений(списокзнач,строка)
для а=0 по списокзнач.Количество()-1 цикл
если строка(списокзнач[а])=строка тогда
возврат а;
КонецЕсли;
КонецЦикла;
возврат -1;
сообщить("Строка не найдена");
КонецФункции
Процедура Кнопка1Нажатие(Элемент)
ЭлементыФормы.РезультирующиеОценки.Значение.Очистить();
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|Наряд_на_ремонт.Ссылка,
|Наряд_на_ремонт.ТипРемонта КАК ТипРемонта,
|Наряд_на_ремонт.ТипКонструкции КАК ТипКонструкции,
|Наряд_на_ремонт.Затраты КАК Затраты,
|Наряд_на_ремонт.Рекомендация.ФизическийИзнос КАК ФизическийИзнос
|ИЗ
|РегистрСведений.СтатусПроекта.СрезПоследних(&дата, ) КАК СтатусПроектаСрезПоследних
|ЛЕВОЕ СОЕДИНЕНИЕ Документ.Наряд_на_ремонт КАК Наряд_на_ремонт
|ПО СтатусПроектаСрезПоследних.НарядНаРемонт = Наряд_на_ремонт.Ссылка
|ГДЕ
|СтатусПроектаСрезПоследних.Затраты - СтатусПроектаСрезПоследних.Финансирование > 0"; запрос.УстановитьПараметр("дата",ТекущаяДата());
//Запрос.УстановитьПараметр("Статус",Перечисления.Статус.Не_обслужен);
Результат = Запрос.Выполнить();
если Результат.Выгрузить().Количество()>0 тогда
ЭлементыФормы.ТабличноеПоле1.Значение=Результат.Выгрузить();
ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
оценки=новый ТаблицаЗначений;
таблица=Результат.Выгрузить();
оценки.Колонки.Добавить("Сметы",,,);//.Ширина=20;
КвЧисла = Новый КвалификаторыЧисла(2,0,ДопустимыйЗнак.Неотрицательный);
масс=новый Массив;
масс.Добавить(Тип("Число"));
тип=новый ОписаниеТипов(масс,,,КвЧисла);
оценки.Колонки.Добавить("ТипРемонта",тип,"ТипРемонта",2);
оценки.Колонки.Добавить("ТипКонструкции",тип,"ТипКонструкции",2);
оценки.Колонки.Добавить("Затраты",тип,"Затраты",2);
оценки.Колонки.Добавить("ФизическийИзнос",тип,"ФизическийИзнос",2);
для а=0 по таблица.Количество()-1 цикл
оценки.Добавить();
ЭлементыФормы.РезультирующиеОценки.ДобавитьСтроку();
КонецЦикла;
оценки.ЗагрузитьКолонку(таблица.ВыгрузитьКолонку(0),0);
ЭлементыФормы.РезультирующиеОценки.Значение.ЗагрузитьКолонку
(таблица.ВыгрузитьКолонку(0),0);
миним=минимальный(таблица.ВыгрузитьКолонку(3));
максим=максимальный(таблица.ВыгрузитьКолонку(3));
для а=0 по оценки.Количество()-1 цикл
если таблица[а].ТипРемонта=Перечисления.Тип_ремонта.капитальный тогда
оценки[а].ТипРемонта=7;иначе оценки[а].ТипРемонта=3;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
запрос.УстановитьПараметр
("Ссылка",ЭлементыФормы.РанжированиеТиповКонструкции.Значение);
запрос.УстановитьПараметр("ТипКонструкции",таблица[а].ТипКонструкции);
Результат = Запрос.Выполнить();
оценки[а].ТипКонструкции=12-Результат.Выгрузить()[0][0]; оценки[а].Затраты=ОценкаКритерия(таблица[а].Затраты,миним,максим,11);
оценки[а].ФизическийИзнос=ОценкаКритерия(таблица[а].ФизическийИзнос,0,100,11);
КонецЦикла;
ЭлементыФормы.ТабличноеПоле2.Значение=оценки;
ЭлементыФормы.ТабличноеПоле2.СоздатьКолонки();
В=новый СписокЗначений;
для а=0 по ЭлементыФормы.РанжированныеКритерии.Значение.РанжированиеКритериев.
Выгрузить().Количество()-1 цикл
в.Добавить(ЭлементыФормы.РанжированныеКритерии.Значение.РанжированиеКритериев.
Выгрузить()[а][6],,,);
КонецЦикла;
для а=0 по таблица.Количество()-1 цикл
к=0;
к=к+оценки[а][1]*в[ПоискВСпискеЗначений(ЭлементыФормы.РанжированныеКритерии.
Значение.РанжированиеКритериев.Выгрузить().ВыгрузитьКолонку(1),"Тип ремонта")].Значение;
к=к+оценки[а][2]*в[ПоискВСпискеЗначений(ЭлементыФормы.РанжированныеКритерии.
Значение.РанжированиеКритериев.Выгрузить().ВыгрузитьКолонку(1),"Тип конструкции")].Значение;
к=к+оценки[а][3]*в[ПоискВСпискеЗначений(ЭлементыФормы.РанжированныеКритерии.
Значение.РанжированиеКритериев.Выгрузить().ВыгрузитьКолонку(1),"Сумма затрат")].Значение;
к=к+оценки[а][4]*в[ПоискВСпискеЗначений(ЭлементыФормы.РанжированныеКритерии.
Значение.РанжированиеКритериев.Выгрузить().ВыгрузитьКолонку(1),"Износ")].Значение;
ЭлементыФормы.РезультирующиеОценки.Значение[а].Оценка=к;
КонецЦикла;
оценк=ЭлементыФормы.РезультирующиеОценки.Значение.Выгрузить().ВыгрузитьКолонку
("Оценка");
ранги=новый Массив(оценк.Количество());
для б=0 по ранги.Количество()-1 цикл
ранги[б]=0;
КонецЦикла;
упорядоч=новый Массив(оценк.Количество());
для б=0 по ранги.Количество()-1 цикл
упорядоч[б]=оценк[б];
КонецЦикла;
для а=0 по упорядоч.Количество()-1 цикл
м=а;
для б=а по упорядоч.Количество()-1 цикл
если упорядоч[б]>упорядоч[м] тогда
м=б;
КонецЕсли;
КонецЦикла;
к=упорядоч[м];
упорядоч[м]=упорядоч[а];
упорядоч[а]=к;
КонецЦикла;
к=0;
для б=0 по упорядоч.Количество()-1 цикл
для а=0 по оценк.Количество()-1 цикл
если упорядоч[б]=оценк[а] и ранги[а]=0 тогда
к=а; прервать;
КонецЕсли;
КонецЦикла;
ранги[к]=б+1;
КонецЦикла;
ЭлементыФормы.РезультирующиеОценки.Значение.ЗагрузитьКолонку(ранги,2);
ЭлементыФормы.РезультирующиеОценки.Значение.Сортировать("Ранг Возр");
иначе
сообщить("Нет проектов нуждающихся в финансировании");
КонецЕсли;
КонецПроцедуры
