diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index 1ed31ecbeb432b61f3ec21175ded6561b75aa72d..106db01247b7e26c10b222295e7a92c1b1652d6a 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -2258,15 +2258,19 @@ BEGIN
 
 	IF 	(checker != ExamType) 		
 	THEN
-		UPDATE `disciplines`
-		SET 	disciplines.ExamType = ExamType
-		WHERE 	DisciplineID = disciplines.ID;
-
 		IF ExamType = 'exam' THEN
+			SET checker = GetDisciplineMaxRate(DisciplineID);
+			IF checker > 60 THEN
+				RETURN 1;
+			END IF;
 			SET checker = AddModuleExam(TeacherID, DisciplineID);
 		ELSE
 			SET checker = DeleteModuleExam(TeacherID, DisciplineID);
 		END IF;
+
+		UPDATE `disciplines`
+		SET 	disciplines.ExamType = ExamType
+		WHERE 	DisciplineID = disciplines.ID;
 	END IF;
 	RETURN 0;
 END //
@@ -2712,7 +2716,6 @@ END //
 
 
 
--- Добавление нового подмодуля к данному модулю
 DROP FUNCTION IF EXISTS DeleteModule//
 CREATE FUNCTION `DeleteModule`	(	`TeacherID` INT,
 									`ModuleID` 	INT 
@@ -2760,6 +2763,8 @@ BEGIN
 	RETURN 0;
 END //
 
+
+
 DROP FUNCTION IF EXISTS DeleteModuleExam//
 CREATE FUNCTION `DeleteModuleExam`		(	`TeacherID` INT,
 											`DisciplineID` 	INT 
@@ -2943,6 +2948,8 @@ END //
 
 
 -- Внесение изменений в подмодуль (MaxRate, TItle, Description, Order и т.д.), который неявно прикреплен к преподавателю
+-- TODO delete 
+-- deprecated
 DROP FUNCTION IF EXISTS ChangeSubmodule//
 CREATE FUNCTION `ChangeSubmodule`	(	`TeacherID` 	INT, 
 										`SubmoduleID` 	INT, 
@@ -2991,6 +2998,9 @@ BEGIN
 	RETURN 0;
 END //
 
+
+-- TODO delete 
+-- deprecated
 DROP FUNCTION IF EXISTS ChangeSubmoduleControlType//
 CREATE FUNCTION `ChangeSubmoduleControlType`(	`TeacherID` 	INT, 
 												`SubmoduleID` 	INT, 
@@ -3021,6 +3031,9 @@ BEGIN
 	RETURN 0;
 END //
 
+
+-- TODO delete 
+-- deprecated
 DROP FUNCTION IF EXISTS ChangeSubmoduleMaxRate//
 CREATE FUNCTION `ChangeSubmoduleMaxRate`	(	`TeacherID` 	INT, 
 												`SubmoduleID` 	INT, 
diff --git a/~dev_rating/application/classes/Controller/Handler/Map.php b/~dev_rating/application/classes/Controller/Handler/Map.php
index 5a20998ca8d716ebd30fc19ec1cb8d92905afe5c..1d50b817414e99e07e1981b6ea7a0190884b3a61 100644
--- a/~dev_rating/application/classes/Controller/Handler/Map.php
+++ b/~dev_rating/application/classes/Controller/Handler/Map.php
@@ -119,7 +119,6 @@ class Controller_Handler_Map extends Controller_Handler {
 		
 		// Изменение контроля
 		public function action_ChangeDisciplineControl() {
-			$data['success'] = false;
             $this->post -> rule('DisciplineID', 'not_empty')
                         -> rule('DisciplineID', 'digit')
 						-> rule('Control', 'not_empty');
@@ -129,9 +128,10 @@ class Controller_Handler_Map extends Controller_Handler {
 					$this->post->offsetGet('DisciplineID'),
 					$this->post->offsetGet('Control')		
 				);
-				if ($result[0]['Num'] == 0)
-					$data['success'] = true;
+				$data['success'] = $result[0]['Num'];
 			}
+			else
+				$data['success'] = 0;
 			$this->response->body(json_encode($data));
 		}
 		
diff --git a/~dev_rating/media/js/discipline/EditSettings.js b/~dev_rating/media/js/discipline/EditSettings.js
index d2ce4b58bcdb6d23b2b1ce29203a74947cbff391..b0db67a920c8df34a38c6d08e041a2e425586e89 100644
--- a/~dev_rating/media/js/discipline/EditSettings.js
+++ b/~dev_rating/media/js/discipline/EditSettings.js
@@ -59,6 +59,7 @@ $(function() {
 	
 	// Изменение контроля
 	$('input.ExamType').change(function(){
+		var thisObj = $(this);
 		$.post(
 			URLdir + 'handler/map/ChangeDisciplineControl',
 			{
@@ -67,8 +68,12 @@ $(function() {
 			},
 			function(data) {
 				data = $.parseJSON(data);
-				if(data.success === true)
+				if(data.success == 0)
 					EventInspector_ShowMsg('Форма контроля изменена', 'success');
+				else if (data.success > 0) {
+					EventInspector_ShowMsg('Превышено максимальное кол-во баллов', 'error');
+					thisObj.parent().children('.ExamType[value="credit"]').prop('checked', true);
+				}
 				else EventInspector_ShowMsg('Ошибка: Изменение формы контроля', 'error');
 			}
 		);