Скачиваний:
9
Добавлен:
17.06.2023
Размер:
2.64 Mб
Скачать

Рисунок А.3 – Декомпозиция процесса «Работа с ИС»

42

ПРИЛОЖЕНИЕ Б Список элементарных функций

Элементарные работы бизнес-процесса учета ремонта жилищного фонда

вуправляющей компании:

1.Обработка заявки клиента;

2.Оплата ремонта жилищного объекта;

3.Выявление жилищных объектов, нуждающихся в ремонте;

4.Предупреждение владельцев о необходимости ремонта;

5.Формирование заявки на проведение ремонта конкретного клиента;

6.Фиксация сведений об жилищных объектах, в которых проведен

ремонт;

7.Внесение в БД сведений о всех отремонтированных объектах жилищного фонда;

8.Фиксация сведений об жилищных объектах, в которых проводится

ремонт;

9.Внесение или редактирование информации о жилищном фонде;

10.Внесение или редактирование информации о стоимости проведения ремонта жилищных объектов;

11.Внесение или редактирование информации о стоимости ремонта;

12.Формирование списка объектов жилищного фонда, нуждающихся в

ремонте;

13.Формирование статистического отчета о ремонте жилищного фонда;

14.Формирование отчета о выполненных ремонтах.

43

ПРИЛОЖЕНИЕ В Описание объектов базы данных

Таблица В.1 – Справочники

Наименование

Реквизиты

Тип данных

 

Код

Число (длина 9)

 

Наименование

Строка (длина 100)

 

ТипКрыши

ПеречислениеСсылка.Крыша

ЖилищныйФонд

НаличиеЛифта

ПеречислениеСсылка.Лифт

 

ПлощадьКрыши

Число (длина 10, точность 0, неотрицательное)

 

Адрес

Строка (неограниченная длина)

 

Город

Строка (неограниченная длина)

Тип дома

Код

Число (длина 9)

Наименование

Строка (длина 15)

 

Жильцы

Код

Число (длина 9)

Наименование

Строка (длина 50)

 

ВидыРемонта

Код

Число (длина 9)

 

Наименование

Строка (длина 50)

Таблица В.2 – Документы

Наименование

Реквизиты

Тип данных

 

Номер

Число (длина 9)

 

Дата

Дата и время

 

ТипДома

СправочникСсылка.ТипДома

 

ФИО

СправочникСсылка.ФИО

ЗаявкиНаРемонт

ПлощальКрыши

Число (длина 10, точность 0,

 

неотрицательное)

 

 

 

Адрес

Число (длина 10, точность 0,

 

 

неотрицательное)

 

ОплаченнаяСумма

Число (длина 10, точность 0,

 

 

неотрицательное)

 

Номер

Число (длина 9)

 

Дата

Дата и время

 

ТипДома

СправочникСсылка.ТипДома

НевыполненныеЗаявки

ФИО

СправочникСсылка.ФИО

Сумма

Число (длина 10, точность 0,

 

 

 

неотрицательное)

 

ПричинаОтказа

Строка (длина 6)

 

Адрес

Строка (длина 10)

 

Номер

Число (длина 9)

 

Дата

Дата и время

 

ТипДома

СправочникСсылка.ТипДома

ВыполненныеРемонты

ФИО

СправочникСсылка.ФИО

ФактПрохождения

ПеречислениеСсылка.Факт

 

 

ОплаченнаяСумма

Число (длина 10, точность 0,

 

 

неотрицательное)

 

ДатаСледРемонта

Дата

44

Таблица В.3 – Перечисления

Наименование

Значения

 

Односкатная

Крыша

Двускатная

 

Мансарда

Лифт

Да

Нет

 

Факт

СоответсвуетТребованиямБезопасности

НеСоответсвуетТребованиямБезопасности

 

Таблица В.4 – Регистры сведений

Наименование

Измерения

Тип данных

Тип данных

РемонтныеРаботы

ВидРаботы

СправочникСсылка.

Строка (длина 20)

 

 

Работы

 

Таблица В.5 – Регистры накопления

Наименование

Измерения

Тип данных

Тип данных

ЗаявкиНаРемонт

ТипДома

СправочникСсылка.

Строка (длина 20)

 

 

ТипДома

 

 

ФИО

СправочникСсылка.

Строка (длина 20)

 

 

ФИО

 

45

ПРИЛОЖЕНИЕ Г

Листинг программных модулей системы

Листинг Г.1 – Документ ЗаявкиНаРемонт :ФормаДокумента

&НаКлиенте Процедура ТипДомаПриИзменении(Элемент)

Массив = Новый Массив(); Массив = СформироватьСписокВыбораКолВа(Объект.ТипДома); Колво = 0;

Для Каждого ЭлементМассива из Массив Цикл Колво = Колво+1;

КонецЦикла; Индекс = 0;

Элементы.Адрес.СписокВыбора.Очистить(); Пока Индекс <Адрес

Элементы.Адрес.СписокВыбора.Добавить(Массив[Индекс]); Индекс = Индекс+1;

Адрес; Наименование = ""+Объект.ТипДома+"-"+Объект.Адрес+"-"+Объект.Площадькрыши;

Объект.ОплаченнаяСумма = РаботаСДокументами.АктуальнаяЦена(Объект.Дата,Наименование); КонецПроцедуры

&НаКлиенте Процедура АдресПриИзменении(Элемент)

Массив = Новый Массив(); Массив = СформироватьСписокВыбораТипдома (Объект.ТипДома, Объект.Адрес); Колво = 0;

Для Каждого ЭлементМассива из Массив Цикл Колво = Колво+1;

КонецЦикла; Индекс = 0;

Элементы.ПлощадьКрыши.СписокВыбора.Очистить(); Пока Индекс <Адрес

Элементы.ПлощадьКрыши.СписокВыбора.Добавить(Массив[Индекс]); Индекс = Индекс+1;

Адрес; Наименование = ""+Объект.ТипДома+"-"+Объект.Адрес+"-"+Объект.ПлощадьКрыши;

Объект.ОплаченнаяСумма = РаботаСДокументами.АктуальнаяЦена(Объект.Дата,Наименование); КонецПроцедуры

&НаКлиенте Процедура ПлощадьКрышиПриИзменении(Элемент)

Наименование = ""+Объект.ТипДома+"-"+Объект.Адрес+"-"+Объект.ПлощадьКрыши; Объект.ОплаченнаяСумма = РаботаСДокументами.АктуальнаяЦена(Объект.Дата,Наименование);

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

&НаСервере Функция СформироватьСписокВыбораКолВа

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ

 

|

СтоимостьЗаявки.ТипДомп,

|

СтоимостьЗаявки.Адрес

 

|ИЗ

 

 

|

РегистрСведений.СтоимостьЗаявки КАК СтоимостьЗаявки

 

|ГДЕ

 

 

|

СтоимостьЗаявки.ТипДома = &ТипДома

 

|

 

 

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

|

СтоимостьЗаявки.ТипДома,

| Стоимостьзаявки.Адрес"; Запрос.УстановитьПараметр("ТипДома", ТипДома);

46

Выборка = Запрос.Выполнить().Выбрать(); Количество = Выборка.Количество(); Массив = Новый Массив(Количество); Индекс = 0; Пока Выборка.Следующий() Цикл

Массив[Индекс] = Выборка.Адрес; Индекс = Индекс+1;

КонецЦикла; Возврат Массив;

КонецФункции

&НаСервере Функция СформироватьСписокВыбора(ТипДома, КолВо)

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ

|

СтоимостьЗаявки.ТипДома,

 

|

СтоимостьЗаявки.Адрес,

|

СтоимостьЗаявки.ПлощадьКрыши

 

|ИЗ

 

 

|

РегистрСведений.СтоимостьЗаявки КАК СтоимостьЗаявки

 

|ГДЕ

 

 

|

СтоимостьЗаявки.МаркаАвтомобиля = &Марка

 

|

И СтоимостьЗаявки.КоличествоЦилиндров = &КолВо

 

|

 

 

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

 

|

СтоимостьЗаявки.ТипДома,

 

|

СтоимостьЗаявки.Адрес,

 

|

СтоимостьЗаявки.ПлощадьКрыши";

Запрос.УстановитьПараметр("ТипДома", ТипДома); Запрос.УстановитьПараметр("КолВо", КолВо); Выборка = Запрос.Выполнить().Выбрать(); Количество = Выборка.Количество(); Массив = Новый Массив(Количество); Индекс = 0; Пока Выборка.Следующий() Цикл

Массив[Индекс] = Выборка.ПлощадьКрыши; Индекс = Индекс+1;

КонецЦикла; Возврат Массив;

КонецФункции

&НаКлиенте Процедура ДатаПриИзменении(Элемент)

Объект.ОплаченнаяСумма = РаботаСДокументами.АктуальнаяЦена(Объект.Дата,Наименование); Объект.ДатаТО = ДобавитьМесяц(Объект.Дата, 12);

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

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

Объект.ДатаТО = ДобавитьМесяц(Объект.Дата, 12); КонецПроцедуры

Листинг Г.2 – Документ ЗаявкиНаРемонт : : МодульОбъекта

&НаКлиенте Процедура ОбработкаПроведения(Отказ, Режим)

// регистр ЗаявкиНаРемонт Приход Движения.ЗаявкиНаРемонт.Записывать = Истина; Движение = Движения.ЗаявкиНаРемонт.Добавить();

Движение.ВидДвижения = ВидДвиженияНакопления.Приход; Движение.Период = Дата; Движение.Наименование = ТипДома; Движение.ФИО = ФИО; Движение.Цена = ОплаченнаяСумма; Движение.Количество = 1;

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

47

Листинг Г.3 – Документ НевыполненныеЗаявки :МодульОбъекта

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ЗаявкиНаРемонт ") Тогда // Заполнение шапки ТипДома = ДанныеЗаполнения.ТипДома;

ФИО = ДанныеЗаполнения.ФИО; Дата = ДанныеЗаполнения.Дата;

КонецЕсли; КонецПроцедуры

Листинг Г.4 – Документ ВыполненныеРемонты :ФомаДокумента

&НаКлиенте Процедура УстановленнаяВидыРемонтаПриИзменении(Элемент)

Объект.ОплаченнаяСумма = РаботаСДокументами.ТОГБО(Объект.Дата,Объект.ВидыРемонта); КонецПроцедуры

&НаКлиенте Процедура ДатаПриИзменении(Элемент)

Объект.ОплаченнаяСумма = РаботаСДокументами.ТОГБО(Объект.Дата,Объект.ВидыРемонта); Объект.ДатаСледПроверки = ДобавитьМесяц(Объект.Дата, 12);

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

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

Объект.ДатаСледПроверки = ДобавитьМесяц(Объект.Дата, 12); КонецПроцедуры

Листинг Г.5 – Документ ВыполненныеРемонты :МодульОбъекта

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.НевыполненныеЗаявки") Тогда // Заполнение шапки ВидРемонта = ДанныеЗаполнения.ВидРемонта;

ТипДома = ДанныеЗаполнения.ТипДома; ФИО = ДанныеЗаполнения.ФИО;

КонецЕсли; КонецПроцедуры

Листинг Г.6 – Отчет ИсторическаяСтоимостьРемонта: ОСКД

ВЫБРАТЬ

СтоимостьЗаявкиСрезПоследних.Наименование, СтоимостьЗаявкиГБОСрезПоследних.Цена, СтоимостьЗаявкиГБОСрезПоследних.Период

ИЗ

РегистрСведений.СтоимостьЗаявки.СрезПоследних КАК СтоимостьЗаявкиСрезПоследних

48

Листинг Г.7 – Отчет ОтремонтированныеЖилыеОбъекты :ФормаОтчета

&НаКлиенте Процедура Сформировать(Команда)

Если ДатаНачала>= ДатаОкончания Тогда Сообщение = НовыйСообщениеПользователю;

Сообщение.Текст = "Даты введены некорректно!"; Сообщение.Сообщить();

Иначе

ЭтаФорма.ВывестиСписок(ДатаНачала, ДатаОкончания); КонецЕсли;

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

Процедура ВывестиСписок(ДатаНачала, ДатаОкончания)Экспорт ТабДок = Список;

Макет = Отчеты.ОтремонтированныеЖилыеОбъекты.ПолучитьМакет("Макет"); Шапка = Макет.ПолучитьОбласть("Шапка");

Строка = Макет.ПолучитьОбласть("Строка"); ТабДок.Очистить();

Шапка.Параметры.дата1 = Формат(ДатаНачала, "ДФ=dd.MM.yyyy"); Шапка.Параметры.дата2 = Формат(ДатаОкончания, "ДФ=dd.MM.yyyy");

ТабДок.Вывести(Шапка); Запрос = Новый Запрос;

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

|

ЗаявкиНаРемонт.ФИО,

|

ЗаявкиНаРемонт.ТипДома,

|

ЗаявкиНаРемонт.ДатаТО,

|

ЗаявкиНаРемонт.Дата

|ИЗ

 

|

Документ.ЗаявкиНаРемонт КАК ЗаявкинаРемонт

|

ЛЕВОЕ СОЕДИНЕНИЕ Документ.НевыполненныеЗаявки КАК НевыполненныеЗаявки

|

ПО Заявки.ФИО = НевыполненныеЗаявки.ФИО

|ГДЕ

 

|

Заявки.ДатаТО>= &ДатаНачала

|

И УстановкаГБО.ДатаТО<= &ДатаОкончания";

Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания ); Выборка = Запрос.Выполнить().Выбрать(); Пока Выборка.Следующий() Цикл

Строка.Параметры.фио = Выборка.ФИО; Строка.Параметры.типдома = Выборка.ТипДома;

Строка.Параметры.дата = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy"); ТабДок.Вывести(Строка);

КонецЦикла; Запрос2 = Новый Запрос;

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

|

ВыполненныеРемонты.Дата,

|

ВыполненныеРемонты.ТипДома,

| ВыполненныеРемонты.ФИО,

|

ВыполненныеРемонты.ДатаСледПроверки

|ИЗ

 

|

Документ.ВыполненныеРемонты КАК ВыполненныеРемонты

|

ЛЕВОЕ СОЕДИНЕНИЕ Документ.НевыполненныеЗаявки КАК НевыполненныеЗаявки

|

ПО ВыполненныеРемонты.ФИО = ВыполненныеРемонты.ФИО

|ГДЕ

 

|

ВыполненныеРемонты.ДатаСледПроверки>= &ДатаНачала

|

И ВыполненныеРемонты.ДатаСледПроверки<= &ДатаОкончания";

Запрос2.УстановитьПараметр("ДатаНачала", ДатаНачала); Запрос2.УстановитьПараметр("ДатаОкончания", ДатаОкончания ); Выборка2 = Запрос2.Выполнить().Выбрать(); Пока Выборка2.Следующий() Цикл

49

Строка.Параметры.фио = Выборка2.ФИО; Строка.Параметры.авто = Выборка2.ТипДома;

Строка.Параметры.дата = Формат(Выборка2.Дата, "ДФ=dd.MM.yyyy"); ТабДок.Вывести(Строка);

КонецЦикла; КонецПроцедуры

Листинг Г.8 – Отчет НевыполненныеЗаявки :ФормаОтчета

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

Дата = ТекущаяДата(); КонецПроцедуры

&НаКлиенте Процедура Сформировать(Команда)

ЭтаФорма.ВывестиСписок(Дата); КонецПроцедуры

Процедура ВывестиСписок(Дата)Экспорт ТабДок = Список;

Макет = Отчеты.Невыполенныезаявки.ПолучитьМакет("Макет"); Шапка = Макет.ПолучитьОбласть("Шапка");

Строка = Макет.ПолучитьОбласть("Строка"); ТабДок.Очистить();

Шапка.Параметры.дата = Формат(Дата, "ДФ=dd.MM.yyyy"); ТабДок.Вывести(Шапка);

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ

|

Заявкинаремонт.ФИО,

|

Заявкинаремонт.Типдома,

|

Невыполненныезаявки.Причинаотказа,

|

Заявкинаремонт.Датазаявки,

|

Заявкинаремонт.Дата

|ИЗ

 

|

Документ.Заявкинаремонт КАК Заявкинаремонт

|

ЛЕВОЕ СОЕДИНЕНИЕ Документ.Невыполненныезаявки КАК Невыполненныезаявки

|

ПО Заявкинаремонт.ФИО = Невыполненныезаявки.ФИО

|ГДЕ

 

|

Заявкинаремонт.Дата<= &Дата";

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

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

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

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

|

Выполненныеремонты.Дата,

|

Выполненныеремонты.Типдома,

|

Выполненныеремонты.ФИО,

|

Выполненныеремонты.ДатаСледРемонта,

|

Невыполненныезаявки.Причинаотказа

|ИЗ

 

|

Документ.Выполненныеремонты КАК Выполненныеремонты

|

ЛЕВОЕ СОЕДИНЕНИЕ Документ.Невыполненныезаявки КАК Невыполненныезаявки

|

ПО Выполненныеремонты.ФИО = Невыполненныезаявки.ФИО

|ГДЕ

 

|

Выполненныеремонты.Дата<= &Дата";

Запрос2.УстановитьПараметр("Дата", Дата); Выборка2 = Запрос2.Выполнить().Выбрать(); Количество = Выборка.Количество(); Количество2 = Выборка2.Количество();

Массив = Новый Массив(Количество+Количество2, 4); Индекс = 0; Пока Выборка.Следующий() Цикл

Массив[Индекс][0] = Выборка.ФИО; Массив[Индекс][1] = Выборка.Причинаотказа; Массив[Индекс][2] = Выборка.Дата; Массив[Индекс][3] = Выборка.Датазаявки;

50

Индекс = Индекс+1; КонецЦикла; Пока Выборка2.Следующий() Цикл

Массив[Индекс][0] = Выборка2.ФИО; Массив[Индекс][1] = Выборка2.Причинаотказа; Массив[Индекс][2] = Выборка2.Дата; Массив[Индекс][3] = Выборка2.ДатаСледРемонта; Индекс = Индекс+1;

КонецЦикла; Запрос3 = Новый Запрос;

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

|

Выполненныеремонты.ФИО,

|

Выполненныеремонты.Дата

|ИЗ

 

|

Документ.Выполненныеремонты КАК Выполненныеремонты

|ГДЕ

 

|

Выполненныеремонты.Дата<= &Дата";

Запрос3.УстановитьПараметр("Дата", Дата); Выборка3 = Запрос3.Выполнить().Выбрать(); Количество3 = Выборка3.Количество(); Массив2 = Новый Массив(Количество3, 2); Индекс = 0; Пока Выборка.Следующий() Цикл

Массив2[Индекс][0] = Выборка3.ФИО; Массив2[Индекс][1] = Выборка3.Дата; Индекс = Индекс+1;

КонецЦикла; Индекс1 = 0;

Пока Индекс1< Количество+Количество2 Цикл Индекс2 = 0; Флаг = Ложь;

Пока Индекс2< Количество3 Цикл Если (Массив[Индекс1][0]=Массив2[Индекс2][0]) и (Массив[Индекс1][3]=Массив2[Индекс2][1])

Тогда

Флаг = Истина; КонецЕсли; Индекс2 = Индекс2+1;

КонецЦикла; Если (Флаг = Ложь) и (Массив[Индекс1][3] <= Дата) Тогда

Строка.Параметры.фио = Массив[Индекс1][0]; Строка.Параметры.Причинаотказа = Массив[Индекс1][1]; Строка.Параметры.дата1 = Формат(Массив[Индекс1][2], "ДФ=dd.MM.yyyy"); Строка.Параметры.дата2 = Формат(Массив[Индекс1][3], "ДФ=dd.MM.yyyy"); ТабДок.Вывести(Строка);

КонецЕсли; Индекс1=Индекс1+1;

КонецЦикла; КонецПроцедуры

Листинг Г.9 – Отчет СтатистическийОтчетЗаявкиНаРемонт : ОСКД

ВЫБРАТЬ

ЗаявкиНаРемонтОстаткиИОбороты.ТипДома, ЗаявкиНаРемонтОстаткиИОбороты.ФИО, ЗаявкиНаРемонтОстаткиИОбороты.КоличествоПриход, ЗаявкиНаРемонтОстаткиИОбороты.ЦенаПриход

ИЗ

РегистрНакопления.ЗаявкиНаРемонт.ОстаткиИОбороты КАК ЗаявкиНаРемонтОстаткиИОбороты

Листинг Г.10 – Отчет ПоискДанных : Форма отчета

&НаКлиенте Процедура Поиск(Команда)

Искать(0); КонецПроцедуры

51

Соседние файлы в папке Курсовые работы