diff --git a/db/StoredProcedures.sql b/db/StoredProcedures.sql
index 38ab8da1d7dedf4b231b31a94c1edb97bf4e09c1..a13e4a953247f073713a998d5fff68d29c8304d3 100644
--- a/db/StoredProcedures.sql
+++ b/db/StoredProcedures.sql
@@ -2148,7 +2148,8 @@ BEGIN
 			faculties.ID					AS 'FacultyID',
 			faculties.Name 					AS 'FacultyName',
 			disciplines.isLocked 			AS 'isLocked',
-			(modules.ID IS NOT NULL) 		AS 'isBonus' 
+			(modules.ID IS NOT NULL) 		AS 'isBonus',
+			disciplines.isMilestone
 	FROM `disciplines`
 	INNER JOIN `subjects` ON subjects.ID = disciplines.SubjectID
 	INNER JOIN `faculties` ON faculties.ID = disciplines.FacultyID
diff --git a/~dev_rating/application/classes/Controller/Teacher/Rating.php b/~dev_rating/application/classes/Controller/Teacher/Rating.php
index dea08e8edd8902165e030c2abafe429efa5245f7..2816a5ea5b0793d52ebf38b2119a05859ba10db0 100644
--- a/~dev_rating/application/classes/Controller/Teacher/Rating.php
+++ b/~dev_rating/application/classes/Controller/Teacher/Rating.php
@@ -30,6 +30,7 @@ class Controller_Teacher_Rating extends Controller_UserEnvi {
         $temp = $this->model_discipline->getDisciplineInfoByID($id);
         $disciplineInfo['ExamType'] = $temp[0]['ExamType'];
         $disciplineInfo['ID'] = $id;
+        $disciplineInfo['isMilestone'] = $temp[0]['isMilestone'];
         $disciplineInfo['StudyGroupID_Filter'] = $this->getStudyGroupID_ForFilter($id);
 
         return $disciplineInfo;
@@ -44,7 +45,7 @@ class Controller_Teacher_Rating extends Controller_UserEnvi {
         $id = $this->request->param('id');
 
         // Шапка таблицы: структура УКД (модули и мероприятия)
-		$structure = $this->model_rating->GetMapForDiscipline($this->UserInfo['TeacherID'], $id);
+        $structure = $this->model_rating->GetMapForDiscipline($this->UserInfo['TeacherID'], $id);
 
         if($structure->count() == 0)
             throw HTTP_Exception::factory (404, "Для дисциплины с ID $id не создана УКД или такой дисциплины не существует!");
diff --git a/~dev_rating/application/views/teacher/rating.twig b/~dev_rating/application/views/teacher/rating.twig
index d2298cd4f8a06f3a0c055b1a97e03d76295abb14..88ec4e30ab665242e994e82b8b5ae580641842f4 100644
--- a/~dev_rating/application/views/teacher/rating.twig
+++ b/~dev_rating/application/views/teacher/rating.twig
@@ -12,6 +12,11 @@
 
 {% block main_top_title %}Выставление баллов{% endblock %}
 {% block main_content %}
+        {% if disciplineInfo.isMilestone > 0 %}
+            <p class="canNotEdit">
+                Семестр завершен. Выставление баллов <u>запрещено</u>.
+            </p>
+	{% endif %}
 	<h2 class="h2_titleSubject">{{ SubjectName }}</h2>
 
 	<button class="downloadExcel" style="display: none">Скачать в excel формате [dev version]</button>
@@ -92,7 +97,7 @@
 					<td id="student_{{ student.ID }}" class="studentCell staticCell">{{ student.Last }} {{ student.First }}</td>
 					{% for i in 1..CellCount %}
 						{% set j = j + 1 %}
-						{% if student.Rates[i].SubmoduleID >= 0 %}
+						{% if student.Rates[i].SubmoduleID >= 0 and disciplineInfo.isMilestone == 0  %}
 							<td id="col_{{ j }}" class="commonCell">
 								<input type="text" value="{{ student.Rates[i].Rate }}">
 							</td>
diff --git a/~dev_rating/media/css/rating.css b/~dev_rating/media/css/rating.css
index b26ddb6ee43021503de2ef78b44b46a1ef7a1f75..c91d73eb08517ff9c5e27ca825b44b80171985b9 100644
--- a/~dev_rating/media/css/rating.css
+++ b/~dev_rating/media/css/rating.css
@@ -193,3 +193,18 @@ div#tdInfo_wrap {
 	cursor: pointer;
 }
 /* end todo */
+
+
+/* Copied from discipline.css */
+.canNotEdit {
+	position: absolute;
+	padding: 6px 10px;
+	top: 0;
+	right: 0;
+	text-align: center;
+	font-size: 14px;
+	color: #a94442;
+	background: #f2dede;
+	border-radius: 0 0 0 5px;
+}
+