diff --git a/application/views/teacher/map/create.twig b/application/views/teacher/map/create.twig
index 70082528492cbf308ce73479adc146da4e985ea7..b4200efc092004783e8e8f77aaf0917697a5238c 100644
--- a/application/views/teacher/map/create.twig
+++ b/application/views/teacher/map/create.twig
@@ -2,14 +2,54 @@
 
 {% block title %}Конструктор УКД{% endblock %} {# head -> title #}
 {% block media %} {# head -> css, js #}
+	{{ HTML.script('media/js/functions.js')|raw }}
+
 	{{ HTML.style('media/css/construct.css')|raw }}
-	{{ HTML.script('media/js/construct/edit.js')|raw }}
-	
-	{{ HTML.style('media/js/wnd/wnd.css')|raw }}
-	{{ HTML.script('media/js/wnd/wnd.js')|raw }}
+	{{ HTML.script('media/js/construct/create.js')|raw }}
 {% endblock %}
 
 {% block main_top_title %}Добавление УКД{% endblock %}
 {% block main_content %}
-
+	<div class="guide">
+		<p>Обратите внимание, что добавление Учебной Карты Дисциплины (далее УКД) происходит в 3 этапа:</p>
+		<ol>
+		 <li>Добавление базовых параметров дисциплины: выбор предмета, формы контроля и др.;</li>
+		 <li>Привязка групп и студентов к данной УКД;</li>
+		 <li>Создание структуры УКД (Модули и мероприятия).</li>
+		</ol>
+	</div>
+	
+	<div class="discipline">
+		<div class="section">
+			<select class="SelectSubject">
+				<option value="0">Выберите предмет:</option>
+				{% for Subject in SubjectsList %}
+					<option value="{{ Subject.ID }}">{{ Subject.Title }}</option>
+				{% endfor %}
+			</select>
+		</div>
+		<div class="section">
+			<select class="department">
+				<option value="0">Выберите кафедру:</option>
+			</select>
+			<select class="Grade">
+				<option value="0">Выберите курс:</option>
+				{% for Grade in GradesList %}
+					<option value="{{ Grade.ID }}" >{{ Grade.Title }}</option>
+				{% endfor %}
+			</select>
+		</div>
+		<div class="section">
+			Контроль: 
+			<input name="ExamType" type="radio" value="exam"> Экзамен
+			<input name="ExamType" type="radio" value="credit"> Зачет
+		</div>
+		<div class="section">
+			<div class="item title">Лекционных часов:</div>
+			<div class="item"><input class="inputLectionCount" style="width: 50px;" value="0"></div>
+			<div class="item title">Практических часов:</div>
+			<div class="item"><input class="inputPracticeCount" style="width: 50px;" value="0"></div>
+		</div>
+		<button class="CreateDiscipline">Добавить</button>
+	</div>
 {% endblock %}
diff --git a/application/views/teacher/map/edit.twig b/application/views/teacher/map/edit.twig
index 9d5407f5d277edb7ba00f52acbf7439e3a9b5731..ebeb46c740064160ed25608d5f2f5d5eba4933a2 100644
--- a/application/views/teacher/map/edit.twig
+++ b/application/views/teacher/map/edit.twig
@@ -2,6 +2,8 @@
 
 {% block title %}Конструктор УКД{% endblock %} {# head -> title #}
 {% block media %} {# head -> css, js #}
+	{{ HTML.script('media/js/functions.js')|raw }}
+
 	{{ HTML.style('media/css/construct.css')|raw }}
 	{{ HTML.script('media/js/construct/edit.js')|raw }}
 	
diff --git a/application/views/teacher/setRate.twig b/application/views/teacher/setRate.twig
index ffa83ca23ec3a17befd7bb3d2d30cab4f3a2ffe8..59663696e7de5f2942a213802ff08356ad04d651 100644
--- a/application/views/teacher/setRate.twig
+++ b/application/views/teacher/setRate.twig
@@ -2,6 +2,8 @@
 
 {% block title %}Выставление баллов{% endblock %} {# head -> title #}
 {% block media %} {# head -> css, js #}
+	{{ HTML.script('media/js/functions.js')|raw }}
+
 	{{ HTML.style('media/css/setRate.css')|raw }}
 	{{ HTML.script('media/js/setRate.js')|raw }}
 {% endblock %}
diff --git a/media/css/construct.css b/media/css/construct.css
index 96ed1fafb69f2bab4b9789c84f323de98bbea13f..36cbf15b070b6293f9147339700de1b3482a7a42 100644
--- a/media/css/construct.css
+++ b/media/css/construct.css
@@ -1,14 +1,21 @@
-.TopRightMessage {
-	display: none;
-	position: absolute;
-	top: 0;
-	right: 0;
-	max-width: 500px;
-	padding: 7px 18px;
-	font-size: 15px;
-	color: #ffffff;
-	border-radius: 0 0 0 5px;
+/* -- Руководство -------------------- */
+.guide {
+	background: #f3ece3;
+	padding: 10px 15px;
+	color: #363636;
 }
+	.guide p {
+		margin-top: 7px;
+		font-size: 17px;
+	}
+	.guide ol {
+		list-style-type: decimal;
+		padding: 5px 25px;
+	}
+		.guide ol li {
+			margin: 15px 0px 15px 20px;
+			font-size: 15px;
+		}
 
 .discipline {	
 	margin: 0px 25px;
diff --git a/media/js/construct/create.js b/media/js/construct/create.js
new file mode 100644
index 0000000000000000000000000000000000000000..8c218bf94b2df4321c0a20259bcd73a14b89ba52
--- /dev/null
+++ b/media/js/construct/create.js
@@ -0,0 +1,26 @@
+var $ = jQuery;
+$(function() {
+
+	// Изменения базовых параметров дисциплины
+    $(".AddDiscipline").click(function(){
+		$.post(
+			'/~dev_rating/handler/map/AddDiscipline',
+			{
+				'Grade': $('.Grade').val(),
+				'SubjectID': $('.subject').val(),
+				'ExamType': $('.ExamType').val(),
+				'LectionCount': $('.inputLectionCount').val(),
+				'PracticeCount': $('.inputPracticeCount').val()
+			},
+			function(data){
+				data = $.parseJSON(data);
+				if(data.success === true) {
+					alert('РћРє, AddDiscipline');
+					setTimeout('location.replace("/~dev_rating/map/'+data.DisciplineID+'")',5000); 
+				} else alert('Error, AddDiscipline');
+			}
+		);
+        return false
+    });
+
+});
\ No newline at end of file
diff --git a/media/js/construct/edit.js b/media/js/construct/edit.js
index 9f1b608d259e8ecbaf7c954b28bd1d2ddb86a054..bb672858a4ce3962738072fb6b7a52ab97ee870e 100644
--- a/media/js/construct/edit.js
+++ b/media/js/construct/edit.js
@@ -2,11 +2,6 @@ var $ = jQuery;
 $(function() {
 	var URL = (window.location.href).split('/');
 	var DisciplineID = URL[URL.length - 1]
-	
-	// Проверка на число, причем NaN не помеха
-	function isNum(v) {
-			return typeof v === 'number' && isFinite(v);
-	} 
 
 	// Шаблон мероприятия
 	function GetSubModuleTmp(){
@@ -430,21 +425,7 @@ $(function() {
 	
 	// В inputCredit (где баллы вводить) разрешаем вводить только цифры
 	$(".moduleList").on('keydown', '.inputCredit', function(event) {
-        // Разрешаем: backspace, delete, tab и escape
-        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || 
-             // Разрешаем: Ctrl+A
-            (event.keyCode == 65 && event.ctrlKey === true) || 
-             // Разрешаем: home, end, влево, вправо
-            (event.keyCode >= 35 && event.keyCode <= 39)) {
-                 // Ничего не делаем
-                 return;
-        }
-        else {
-            // Убеждаемся, что это цифра, и останавливаем событие keypress
-            if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
-                event.preventDefault(); 
-            }   
-        }
+        KeyDownOnlyNumber(event);
     });
 	
 });
diff --git a/media/js/functions.js b/media/js/functions.js
new file mode 100644
index 0000000000000000000000000000000000000000..45680cc3071cd801edcadabca370f15c6a3622aa
--- /dev/null
+++ b/media/js/functions.js
@@ -0,0 +1,23 @@
+// Проверка на число, причем NaN не помеха
+function isNum(v) {
+		return typeof v === 'number' && isFinite(v);
+}
+
+// Разрешаем вводить только цифры
+function KeyDownOnlyNumber(event) {
+	// Разрешаем: backspace, delete, tab и escape
+	if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || 
+		 // Разрешаем: Ctrl+A
+		(event.keyCode == 65 && event.ctrlKey === true) || 
+		 // Разрешаем: home, end, влево, вправо
+		(event.keyCode >= 35 && event.keyCode <= 39)) {
+			 // Ничего не делаем
+			 return;
+	}
+	else {
+		// Убеждаемся, что это цифра, и останавливаем событие keypress
+		if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
+			event.preventDefault(); 
+		}   
+	}
+}
\ No newline at end of file
diff --git a/media/js/setRate.js b/media/js/setRate.js
index 20bb2de12a8afe80712abd14d179890207f133f0..49e37497f125a4b00bbfb9fc51e1765a956b12f2 100644
--- a/media/js/setRate.js
+++ b/media/js/setRate.js
@@ -97,25 +97,6 @@ $(function() {
 		tdUnFocus($(this));
 	});
 	
-	// Разрешаем вводить только цифры
-	function KeyDownOnlyNumber(event) {
-        // Разрешаем: backspace, delete, tab и escape
-        if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || 
-             // Разрешаем: Ctrl+A
-            (event.keyCode == 65 && event.ctrlKey === true) || 
-             // Разрешаем: home, end, влево, вправо
-            (event.keyCode >= 35 && event.keyCode <= 39)) {
-                 // Ничего не делаем
-                 return;
-        }
-        else {
-            // Убеждаемся, что это цифра, и останавливаем событие keypress
-            if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
-                event.preventDefault(); 
-            }   
-        }
-	}
-	
 	// В inputCredit (где баллы вводить) разрешаем вводить только цифры
 	$('.rateCell').children('input').keydown(function(event) {
 		KeyDownOnlyNumber(event);