Создание ограничений на таблицы
⇐ ПредыдущаяСтр 4 из 4
--Создание ограничений на таблицы ALTERTABLEStreet WITH CHECK ADD CONSTRAINT IDStreetPrimary PRIMARY KEY (IDStreet), CONSTRAINT NameStreetUnique UNIQUE (NameStreet) ;
ALTER TABLE TypeOfApplication WITH CHECK ADD CONSTRAINT IDTypeOfApplicationPrimary PRIMARY KEY (IDTypeOfApplication), CONSTRAINT TypeOfAppUnique UNIQUE (TypeOfApp) ;
ALTER TABLE Electrician WITH CHECK ADD CONSTRAINT IDElectricianPrimary PRIMARY KEY (IDElectrician), CONSTRAINT FIOUnique UNIQUE (FIO) ;
--check ALTER TABLE Electrician WITH CHECK ADD CONSTRAINT ElClassCheck CHECK (Class BETWEEN 1 AND 4), CONSTRAINT ElectricianBirthdayCheck CHECK (DATEDIFF(year,Birthday,getDate())>20) ;
ALTER TABLE Defect WITH CHECK ADD CONSTRAINT IDDefectPrimary PRIMARY KEY (IDDefect), CONSTRAINT TypeOfDesectUnique UNIQUE (TypeOfDefect) ;
ALTER TABLE Elevators WITH CHECK ADD CONSTRAINT DElevatorPrimary PRIMARY KEY (IDElevator), CONSTRAINT BuildingDoorPersonalNumberUniq UNIQUE (Building,Door,PersonalNumber), CONSTRAINT ElevatorStreetForeign FOREIGN KEY(IDStreet) REFERENCES Street ON UPDATE CASCADE ON DELETE CASCADE ;
ALTER TABLE Request WITH CHECK ADD CONSTRAINT IDRequestPrimary PRIMARY KEY (IDRequest), CONSTRAINT RequestEkevatorForeign FOREIGN KEY(IDElevator) REFERENCES Elevators ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT RequestTypeOfApplicationForeign FOREIGN KEY(IDTypeOfApplication) REFERENCES TypeOfApplication ON UPDATE CASCADE ON DELETE CASCADE ;
ALTER TABLE Orders WITH CHECK ADD CONSTRAINT IDOrdersPrimary PRIMARY KEY (IDOrders), CONSTRAINT OrdersElectricianForeign FOREIGN KEY(IDElectrician) REFERENCES Electrician ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT OrdersRequestForeign FOREIGN KEY(IDRequest) REFERENCES Request ON UPDATE CASCADE ON DELETE CASCADE ;
ALTER TABLE Defects WITH CHECK ADD CONSTRAINT DefectsOrdersForeign FOREIGN KEY(IDOrders) REFERENCES Orders ON UPDATE CASCADE ON DELETE CASCADE, CONSTRAINT DefectsDefectForeign FOREIGN KEY(IDDefect) REFERENCES Defect ON UPDATE CASCADE ON DELETE CASCADE ;
Приложение 6 Триггер ------------------------------------------------------------------------------------------------------------------- --триггер, запрещающий исправлять разряд электромеханика в отношении Electrician на менее низкую CREATE TRIGGER LowClass ON Electrician FOR UPDATE AS IF EXISTS (SELECT 'TRUE' FROM inserted I LEFT JOIN deleted D ON D.IDElectrician=I.IDElectrician WHERE I.Class<D.Class) BEGIN RAISERROR ('Нельзя понижать разряд электромеханика!!!',16,1) ROLLBACK TRAN END --проверка UPDATE Electrician SETClass = 1 WHEREFIO='Пупкин Василий Петрович'
Приложение 7 Хранимые процедуры ------------------------------------------------------------------------------------------------------------------- --хранимые процедуры --************************************************Street************************* --процедура, которая будет вводить данные в таблицу Street GO CREATE PROC PStreetINSERT @NameStreetVARCHAR(40) AS INSERT INTO Street (NameStreet) VALUES (@NameStreet)
EXEC PStreetINSERT 'Юбилейная' EXEC PStreetINSERT 'Ленина' EXECPStreetINSERT 'Коммунистическая'
--процедура, которая будет обновлять данные в таблице Street GO ALTER PROC UpdateStreet (@IDStreet INT, @NameStreetVARCHAR(40) ) AS UPDATE Street SET NameStreet = @NameStreet WHEREIDStreet=@IDStreet
EXECUpdateStreet 'Космотнавтов','Коммунистическая'
--процедура, которая будет удалять данные из таблицы Street GO ALTER PROC DeleteStreet (@IDStreet INT) AS DELETE FROM Street WHERE IDStreet=@IDStreet --*****************************************************************************
--************************************************TypeOfApplication************** --процедура, которая будет вводить данные в таблицу TypeOfApplication GO CREATE PROC PTypeOfApplicationINSERT @TypeOfAppVARCHAR(80) AS INSERT INTO TypeOfApplication (TypeOfApp) VALUES (@TypeOfApp)
EXEC PTypeOfApplicationINSERT 'Поломка' EXEC PTypeOfApplicationINSERT 'Застревание' EXECPTypeOfApplicationINSERT 'Техосмотр'
--процедура, которая будет удалять данные из таблицы TypeOfApplication GO ALTER PROC DeleteTypeOfApplication (@IDTypeOfApplication INT) AS DELETE FROM TypeOfApplication WHERE IDTypeOfApplication=@IDTypeOfApplication --*****************************************************************************
--************************************************Electrician********************* -- процедура ввода данных в Electrician GO CREATE PROC PElectricianINSERT @FIO VARCHAR(80), @Class INT, @SpecialityVARCHAR(40), @Birthday DATETIME AS INSERT INTO Electrician (FIO, Class, Speciality, Birthday) VALUES (@FIO, @Class, @Speciality, @Birthday)
EXEC PElectricianINSERT 'Пупкин Василий Петрович','2','Аварийный электромеханик','03.11.1970' EXEC PElectricianINSERT 'Алешин Генадий Иванович','3','Основной электромеханик','03.11.1985'
--процедура, которая будет обновлять данные в таблице Electrician GO ALTER PROC UpdateElectrician (@IDElectrician INT, @FIO VARCHAR(80), @Class INT, @SpecialityVARCHAR(40), @Birthday DATETIME) AS UPDATE Electrician SET FIO = @FIO, Class = @Class, Speciality=@Speciality,
Birthday=@Birthday WHEREIDElectrician=@IDElectrician
--процедура, которая будет удалять данные из таблицы Electrician GO ALTER PROC DeleteElectrician (@IDElectrisian INT) AS DELETE FROM Electrician WHERE IDElectrician=@IDElectrisian
--*****************************************************************************
--************************************************Defect************************ --процедура, которая будет вводить данные в таблицу Defect GO CREATE PROC PDefectINSERT @TypeOfDefectVARCHAR(80) AS INSERT INTO Defect (TypeOfDefect) VALUES (@TypeOfDefect)
EXEC PDefectINSERT 'Перегорелалампочка' EXECPDefectINSERT 'Не работают двери'
--процедура, которая будет обновлять данные в таблице Defect GO ALTER PROC UpdateDefect (@IDdefect INT, @TypeOfDefectVARCHAR(80)) AS UPDATE Defect SET TypeOfDefect = @TypeOfDefect WHEREIDDefect=@IDdefect
--процедура, которая будет удалять данные из таблицы Defect GO CREATE PROC DeleteDefect (@IDDefect INT) AS DELETE FROM Defect WHERE IDDefect = @IDDefect --*****************************************************************************
--************************************************Elevator*********************** --процедура, которая будет вводить данные в таблицу Elevator GO CREATE PROC PElevatorsINSERT @PersonalNumberVARCHAR(10), @Building VARCHAR(10), @Door INT, @IDStreet INT AS INSERT INTO Elevators (PersonalNumber, Building, Door, IDStreet) VALUES (@PersonalNumber, @Building, @Door, @IDStreet)
EXEC PElevatorsINSERT '123','121/2','2',1 EXEC PElevatorsINSERT '21','65','1',2
--процедура, которая будет обновлять данные в таблице Elevstors GO ALTER PROC UpdateElevators (@IDElevator INT, @PersonalNumberVARCHAR(10), @Building VARCHAR (10), @Door INT, @IDStreet INT) AS UPDATE Elevators SET PersonalNumber = @PersonalNumber, Building = @Building, Door = @Door, IDStreet = @IDStreet WHEREIDElevator=@IDElevator
--процедура, которая будет удалять данные из таблицы Elevators GO ALTER PROC DeleteElevators (@IDElevator INT) AS DELETE FROM Elevators WHERE IDElevator=@IDElevator --*****************************************************************************
--************************************************Request*********************** --процедура, которая будет вводить данные в таблицу Request GO CREATE PROC PRequestINSERT @BreakDescriptionVARCHAR(256), @BreakTime DATETIME, @BreakLevel BIT, @IDElevator INT, @IDTypeOfApplication INT AS INSERT INTO Request (BreakDescription, BreakTime, BreakLevel, IDElevator, IDTypeOfApplication) VALUES (@BreakDescription, @BreakTime, @BreakLevel, @IDElevator, @IDTypeOfApplication)
EXECPRequestINSERT 'не работает лифт','01.03.2012 11:10:00:00',0,1,1 EXECPRequestINSERT 'застрялилюди','04.11.2011 15:32:00:00',1,2,2
--процедура, которая будет обновлять данные в таблице Request GO ALTER PROC UpdateRequest (@IDRequest INT, @BreakDescriptionVARCHAR(256), @BreakTime DATETIME, @BreakLevel BIT, @IDElevator INT, @IDTypeOfApplication INT) AS UPDATE Request SET BreakDescription = @BreakDescription, BreakTime = @BreakTime, BreakLevel = @BreakLevel, IDElevator = @IDElevator, IDTypeOfApplication = @IDTypeOfApplication WHEREIDRequest = @IDRequest
--процедура, которая будет удалять данные из таблицы Request GO CREATE PROC DeleteRequest (@IDRequest INT) AS DELETE FROM Request WHERE IDRequest = @IDRequest --*****************************************************************************
--************************************************Orders************************ --процедура, которая будет вводить данные в таблицу Orders GO CREATE PROC POrdersINSERT (@OrdersTime DATETIME, @IDElectrician INT, @IDRequest INT) AS INSERT INTO Orders (OrdersTime, IDElectrician, IDRequest) VALUES (@OrdersTime, @IDElectrician, @IDRequest)
EXEC POrdersINSERT '01.03.2012 15:30:00:00',1,4 EXECPOrdersINSERT '02.02.2012 09:15:00:00',2,5
--процедура, которая будет обновлять данные в таблице Orders GO ALTER PROC UpdateOrders (@OrdersTime DATETIME, @IDOrders INT, @IDElectrician INT, @IDRequest INT) AS UPDATE Orders SET OrdersTime = @OrdersTime, IDElectrician = @IDElectrician, IDRequest = @IDRequest WHERE IDOrders = @IDOrders
--процедура, которая будет удалять данные из таблицы Orders GO CREATE PROC DeleteOrders (@IDOrders INT) AS DELETE FROM Orders WHERE IDOrders = @IDOrders
--*****************************************************************************
--************************************************Defects*********************** --процедура, которая будет вводить данные в таблицу Defects GO CREATE PROC PDefectsINSERT (@IDOrders INT, @IDDefect INT ) AS INSERT INTO Defects (IDOrders, IDDefect) VALUES (@IDOrders, @IDDefect)
EXEC PDefectsINSERT 3,1 EXEC PDefectsINSERT 4,2
--процедура, котораябудетобновлятьданные в таблице Defects GO CREATE PROC UpdateDefects (@IDDefect INT, @IDOrders INT) AS UPDATE Defects SET IDDefect = @IDDefect WHEREIDOrders = @IDOrders
--процедура, которая будет удалять данные из таблицы Defects GO CREATE PROC DeleteDefects (@IDOrders INT) AS DELETE FROM Defects WHEREIDOrders = @IDOrders **************************************************************************** Приложение 8 Отчетные формы ---------------------------------------------------------------------------------------------------------------------Отчетные формы
--Отчет работы всех подразделений сортировка по улицам CREATE VIEW printall AS SELECT NameStreet [Улица], PersonalNumber [№ лифта], FIO [ФИО], TypeOfApp [Видзаявки], TypeOfDefect [Виднеисправности], BreakDescription [Описаниеполомки], BreakLevel [степень], BreakTime [времяполомки], Speciality [Специальность] FROM Street ST INNER JOIN Elevators EL ON ST.IDStreet=EL.IDStreet INNER JOIN Request RE ON EL.IDElevator=RE.IDElevator INNER JOIN TypeOfApplication TA ON RE.IDTypeOfApplication=TA.IDTypeOfApplication INNER JOIN Orders ORD ON RE.IDRequest=ORD.IDRequest INNER JOIN Electrician ELC ON ORD.IDElectrician=ELC.IDElectrician INNER JOIN Defects DFS ON ORD.IDOrders=DFS.IDOrders INNER JOIN Defect DF ON DFS.IDDefect=Df.IDDefect ;
SELECT * FROMprintall
--вывод всех поломанных лифтов с высокой степенью CREATE VIEW print1El AS SELECT NameStreet [Улица], PersonalNumber [Номерлифта], FIO [ФИО], TypeOfApp [Видзаявки], TypeOfDefect [Виднеисправности], BreakDescription [Описаниеполомки], BreakLevel [степеньполомки] FROM Street ST INNER JOIN Elevators EL ON ST.IDStreet=EL.IDStreet INNER JOIN Request RE ON EL.IDElevator=RE.IDElevator AND BreakLevel=1 INNER JOIN TypeOfApplication TA ON RE.IDTypeOfApplication=TA.IDTypeOfApplication INNER JOIN Orders ORD ON RE.IDRequest=ORD.IDRequest INNER JOIN Electrician ELC ON ORD.IDElectrician=ELC.IDElectrician INNER JOIN Defects DFS ON ORD.IDOrders=DFS.IDOrders INNER JOIN Defect DF ON DFS.IDDefect=Df.IDDefect;
SELECT * FROMprint1El
--функция вывода работы подразделения с определенной даты CREATE FUNCTION PrintPodr (@Date DATETIME, @Spec VARCHAR(40)) RETURNS @Result TABLE( NameStreetVARCHAR(40), PersonalNumber INT, FIO VARCHAR(80), TypeOfAppVARCHAR(80), TypeOfDefectVARCHAR(80), BreakDescriptionVARCHAR(256), BreakLevel BIT, BreakTime DATETIME, SpecialityVARCHAR(40) ) AS BEGIN INSERT INTO @Result SELECT NameStreet [Улица], PersonalNumber [№ лифта], FIO [ФИО], TypeOfApp [Видзаявки], TypeOfDefect [Виднеисправности], BreakDescription [Описаниеполомки], BreakLevel [степень], BreakTime [времяполомки], Speciality [Специальность] FROM Street ST INNER JOIN Elevators EL ON ST.IDStreet=EL.IDStreet INNER JOIN Request RE ON EL.IDElevator=RE.IDElevator INNER JOIN TypeOfApplication TA ON RE.IDTypeOfApplication=TA.IDTypeOfApplication INNER JOIN Orders ORD ON RE.IDRequest=ORD.IDRequest AND BreakTime> @Date INNER JOIN Electrician ELC ON ORD.IDElectrician=ELC.IDElectrician AND Speciality = @Spec INNER JOIN Defects DFS ON ORD.IDOrders=DFS.IDOrders INNER JOIN Defect DF ON DFS.IDDefect=Df.IDDefect
RETURN; END
SELECT * FROMPrintPodr('05.07.2011 012:00:00:00','Основнойэлектромеханик')
--Личная карточка лифта со всей историей CREATE FUNCTION PrintElevator (@NumVARCHAR(10)) RETURNS @Result TABLE( NameStreetVARCHAR(40), PersonalNumber INT, FIO VARCHAR(80), TypeOfAppVARCHAR(80), TypeOfDefectVARCHAR(80), BreakDescriptionVARCHAR(256), BreakLevel BIT, BreakTime DATETIME, SpecialityVARCHAR(40) ) AS BEGIN INSERT INTO @Result SELECT NameStreet [Улица], PersonalNumber [№ лифта], FIO [ФИО], TypeOfApp [Видзаявки], TypeOfDefect [Виднеисправности], BreakDescription [Описаниеполомки], BreakLevel [степень], BreakTime [времяполомки], Speciality [Специальность] FROM Street ST INNER JOIN Elevators EL ON ST.IDStreet=EL.IDStreet AND PersonalNumber=@Num INNER JOIN Request RE ON EL.IDElevator=RE.IDElevator INNER JOIN TypeOfApplication TA ON RE.IDTypeOfApplication=TA.IDTypeOfApplication INNER JOIN Orders ORD ON RE.IDRequest=ORD.IDRequest INNER JOIN Electrician ELC ON ORD.IDElectrician=ELC.IDElectrician INNER JOIN Defects DFS ON ORD.IDOrders=DFS.IDOrders INNER JOIN Defect DF ON DFS.IDDefect=Df.IDDefect
RETURN; END
SELECT * FROM PrintElevator (6)
Приложение 9 Безопасность
------------------------------------------------------------------------------------------------------------------- --безопастность
--роль диспетчеры CREATEROLEDispatchers
--роль Администраторы CREATEROLEAdministrators
--права роли Диспетчеры GRANT EXECUTE ON PDefectINSERT TO Dispatchers GRANT EXECUTE ON PDefectsINSERT TO Dispatchers GRANT EXECUTE ON PRequestINSERT TO Dispatchers GRANT EXECUTE ON POrdersINSERT TO Dispatchers
GRANT EXECUTE ON UpdateDefect TO Dispatchers GRANT EXECUTE ON UpdateDefects TO Dispatchers GRANT EXECUTE ON UpdateRequest TO Dispatchers GRANT EXECUTE ON UpdateOrders TO Dispatchers
GRANT EXECUTE ON DeleteDefect TO Dispatchers GRANT EXECUTE ON DeleteDefects TO Dispatchers GRANT EXECUTE ON DeleteRequest TO Dispatchers
GRANT EXECUTE ON DeleteOrders TO Dispatchers
GRANT SELECT ON Defect TO Dispatchers GRANT SELECT ON Defects TO Dispatchers GRANT SELECT ON Request TO Dispatchers GRANT SELECT ON Orders TO Dispatchers
GRANT SELECT ON PrintElevator TO Dispatchers GRANT SELECT ON PrintPodr TO Dispatchers GRANT SELECT ON print1El TO Dispatchers GRANT SELECT ON printall TO Dispatchers
--праваролиАдминистраторы GRANT EXECUTE ON DeleteStreet TO Administrators GRANT EXECUTE ON DeleteElectrician TO Administrators GRANT EXECUTE ON DeleteTypeOfApplication TO Administrators GRANT EXECUTE ON DeleteElevators TO Administrator
GRANT EXECUTE ON UpdateStreet TO Administrators GRANT EXECUTE ON UpdateElectrician TO Administrators GRANT EXECUTE ON UpdateTypeOfApplication TO Administrators GRANT EXECUTE ON UpdateElevators TO Administrators
GRANT EXECUTE ON PStreetINSERT TO Administrators GRANT EXECUTE ON PElectricianINSERT TO Administrators GRANT EXECUTE ON PTypeOfApplicationINSERT TO Administrators GRANT EXECUTE ON PElevatorsINSERT TO Administrators
GRANT SELECT ON Street TO Administrators GRANT SELECT ON Electrician TO Administrators GRANT SELECT ON TypeOfApplication TO Administrators GRANT SELECT ON Elevators TO Administrators
-- Пользователь – Диспетчер1 USE Elevator CREATE USER Dispatcher1 WITHOUT LOGIN -- Пользователь – Диспетчер2 USE Elevator CREATE USER Dispatcher2 WITHOUT LOGIN -- Пользователь – Диспетчер3 USE Elevator CREATE USER Dispatcher3 WITHOUT LOGIN
-- Пользователь – Администратор1 USE Elevator CREATE USER Administrator1 WITHOUTLOGIN -- Пользователь – Администратор2 USEElevator CREATE USER Administrator2 WITHOUTLOGIN
--добавлениечленовврольDispatchersбазыданных sp_addrolemember Dispatchers, Dispatcher1 sp_addrolemember Dispatchers, Dispatcher2 sp_addrolemember Dispatchers, Dispatcher3 --добавлениtчленов в роль Administrators базыданных sp_addrolemember Administrators, Administrator1 sp_addrolemember Administrators, Administrator2
Приложение 10 Индексы
------------------------------------------------------------------------------------------------------------------- --индексы
--Street CREATE UNIQUE INDEX UniqueStreetIndex ON Street (NameStreet ASC)
--Electrician CREATE UNIQUE INDEX UniqueElectricianIndex ON Electrician (FIO ASC)
--TypeOfApplication CREATE UNIQUE INDEX UniqueTypeOfApplicationIndex ON TypeOfApplication (TypeOfApp ASC)
--Defect CREATE UNIQUE INDEX UniqueDefectIndex ON Defect (TypeOfDefect ASC)
--Elevators CREATE NONCLUSTERED INDEX ElevatortsIDStreet ON Elevators (IDStreet ASC) CREATE UNIQUE INDEX UniqueElevatorsIndex ON Elevators (Building, Door, PersonalNumber ASC)
--Request CREATE NONCLUSTERED INDEX RequestIDElevator ON Request (IDElevator ASC) CREATE NONCLUSTERED INDEX RequestIDtypeOfApplication ON Request (IDTypeOfApplication ASC)
--Orders CREATE NONCLUSTERED INDEX OrdersIDElectrician ON Orders (IDElectrician ASC) CREATE NONCLUSTERED INDEX OrdersIDRequest ON Orders (IDRequest ASC)
--Defects CREATE NONCLUSTERED INDEX DefectsIDOrders ON Defects (IDOrders ASC) CREATE NONCLUSTERED INDEX DefectsIDDefect ON Defects (IDDefect ASC)
Приложение 11 Тестирование ------------------------------------------------------------------------------------------------------------------- --Тестирование --Street EXECPStreetINSERT 'Мороозова' EXEC PStreetINSERT 'Лесозаводская' EXEC PStreetINSERT 'Бабушкина'
--Electrician EXEC PElectricianINSERT 'ПупкинПетрСергеевич','4','Аварийныйэлектромеханик','03.11.1977' EXECPElectricianINSERT 'Сидоров Сергей Михайлович','1','Основной электромеханик','12.01.1968' EXECPElectricianINSERT 'Кузнецов Анатолий Александрович','3','Аварийный электромеханик','10.08.1972' EXECPElectricianINSERT 'ХудяевИосив Абрамовичу','4','Основной электромеханик','24.09.1972'
--Defect EXEC PDefectINSERT 'Застревание' EXEC PDefectINSERT 'Изношентрос' EXEC PDefectINSERT 'Поломкаприводнойцепи' EXEC PDefectINSERT 'Поломкабуфера'
--Elevators EXEC PElevatorsINSERT '333','175','3',3 EXEC PElevatorsINSERT '2','111','1',4 EXEC PElevatorsINSERT '6','45','1',5 EXEC PElevatorsINSERT '19','74','2',6
--Request EXECPRequestINSERT 'неоткрываетсялифт','01.08.2011 11:10:00:00',0,1,1 EXEC PRequestINSERT 'неработаетсвет','05.07.2011 09:00:00:00',0,4,1 EXEC PRequestINSERT 'Техническийосмотр','20.01.2012 16:45:00:00',0,5,3 EXECPRequestINSERT 'застрялчеловек','09.05.2012 14:40:00:00',1,6,2 EXEC PRequestINSERT 'неработаетлифт','14.02.2012 14:40:00:00',0,5,1 EXEC PRequestINSERT 'сломанлифт','23.11.2011 14:40:00:00',0,5,1
--Orders EXEC POrdersINSERT '01.08.2011 15:30:00:00',3,13 EXEC POrdersINSERT '05.07.2011 012:00:00:00',4,14 EXEC POrdersINSERT '20.01.2012 17:00:00:00',5,15 EXEC POrdersINSERT '09.05.2012 14:50:00:00',6,16
--Defects EXEC PDefectsINSERT 6,1 EXEC PDefectsINSERT 5,2 EXEC PDefectsINSERT 8,3 EXEC PDefectsINSERT 7,4 EXEC PDefectsINSERT 4,5 EXEC PDefectsINSERT 3,6
------------------------------------------------------------------------------------------------------------------- SELECT * FROM Street;
SELECT * FROM Electrician;
SELECT * FROM TypeOfApplication;
SELECT * FROM Defect;
SELECT * FROM Elevators;
SELECT * FROM Request; SELECT * FROM Orders; SELECT * FROM Defects; Приложение 12 Отчетные документы.
Журнал регистрации вызовов на устранение неисправностей в работе лифтов и ЛДСС:
Наряд на устранение неисправностей в работе лифтов и ЛДСС:
Перечень адресов и регистрационных номеров лифтов и ЛДСС, аварийное обслуживание которых осуществляется данной ЛАС (ДПАС):
Журнал технических осмотров:
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|