gifts2017

Практика внедрения 1С:Колледж. Оценочные ведомости (часть 2 из 10)

Опубликовал Денис Буторин (deniznet) в раздел Управление - Практика учета

Цикл статей посвящен описанию годового опыта внедрения продукта 1С:Колледж в образовательную организацию. Описываются этапы работы, выполненные доработки, трудности внедрения, особенности обучения сотрудников, оценка производительности труда сотрудников до и после внедрения 1С:Колледж. Во второй части раскрывается внедрение подсистемы Успеваемость, а именно ведение оценочных ведомостей.

При внедрении 1С:Колледж в образовательную организацию главным принципом было распределение обязанностей по ведению базы данных, в связи с чем решено предоставить права доступа преподавателям к вводу оценок студентов. В 1С:Колледж за ввод оценок студентов по дисциплинам отвечает документ Ведомость и регистр накоплений ОценкиСтудентов.

Так как внедрять подсистему Успеваемость мы начали перед выпуском в январе 2016 года, на этот период пришелся выпуск групп квалифицированных рабочих и служащих (бывшие НПО группы), то встал вопрос быстрого внесения итоговых оценок, который пойдут в диплом. Поэтому были предоставлены права кураторам групп ввода всех оценок по своей группе. Для этого в конфигурации предоставлены права на Документ Ведомость и регистру ОценкиСтудентов роли Преподаватель. Позже введена константа, включающая возможность ввод ведомостей кураторам групп, а также написана функция, проверяющая права текущей учетной записи к вводу оценок по выбранной группе. В настройках учетных записей пользователей указаны соответствующие ссылки на элементы справочника Сотрудники, чтобы проверить, является ли текущий Пользователель-Сотрудник Куратором Учебной группы.

Написанная функция МожетЛиПользовательЗаполнятьВедомостьГруппы проверки прав выполняется при выборе группы, попытки записи и проведении документа. Бизнес-процесс выглядит следующим образом. Пользователь (преподаватель) входит под своей учетной записью в 1С:Колледж, создает документ Ведомость, выбирает Учебную группу. Если сотрудник, привязанный к учетной записи пользователя, не является куратором группы, то появляется предупреждение о том, что у пользователя нет прав и документ не будет сохранен.

// Функция проверяет, может ли пользователь заполнить ведомость
Функция МожетЛиПользовательЗаполнятьВедомостьГруппы(УчебнаяГруппа, Организация = Неопределено, СтрокаРУП = Неопределено, 
	ВидКонтроля = Неопределено, УчебныйПериод = Неопределено, Автор = Неопределено) Экспорт
	ф = Ложь; 
	
	ЕстьРольПреподаватель = УправлениеДоступом.ЕстьРоль("Преподаватель",,);
	ЕстьРольЗав = УправлениеДоступом.ЕстьРоль("ЗаведующийОтделением",,);
	Если ЕстьРольЗав Тогда
		ф = Истина;
	ИначеЕсли Не ЕстьРольЗав и ЕстьРольПреподаватель Тогда 	
		//Если есть роль Преподаватель, то тогда должен быть куратором группы
		//чтобы иметь возможность создавать ведомость для группы.
		
		//Находим ссылку на текущего сотрудника текущего пользователя
		ТекСотрудник =  НастройкиПользователей.ЗначениеНастройкиПользователя(, "Сотрудник");
		Если ЗначениеЗаполнено(ТекСотрудник) Тогда
			//Если заполнено, тогда ок
			Если Константы.РазрешитьКураторамВводитьВедомости.Получить() Тогда
				ТекКуратор = РегистрыСведений.Кураторство.ПолучитьПоследнее(ТекущаяДата()
					, Новый Структура("УчебнаяГруппа", УчебнаяГруппа));
					Если ЗначениеЗаполнено(ТекКуратор) И ТекСотрудник = ТекКуратор.Куратор	Тогда
							ф = Истина; 
					КонецЕсли;
			КонецЕсли;
			
		Иначе
			//если сотрудник не заполнен, то запрещаем. 			
			ф = Ложь; 
		КонецЕсли;
	КонецЕсли;
	
	Возврат ф;
КонецФункции

Реализованные возможности оказались эффективными в плане разделения прав доступа. Вместе с тем, тестируя ввод оценок, я посчитал необходимым реализовать подбор необходимого вида контроля по дисциплине, чтобы преподавателям не приходилось вспоминать и думать, какой вид контроля предполагается по ней. Проблема заключается в том, что в справочнике СтрокиРУП в табличной части РаспределениеПоСеместрам в реквизите ФормаКонтроля указывается форма контроля из Перечисления.ФормыКонтроля. В документе Ведомость есть реквизит ВидКонтроля, имеющий тип Справочники.ВидыКонтроля, при этом связи с Видом контроля в Ведомости и Формой контроля в Строке РУП учебного плана никакой нет. Поэтому я решил ввести дополнительный реквизит в справочник ВидыКонтроля — ФормаКонтроляПоРУП, с тем чтобы поставить в соответствие виду контроля - форму контроля. Естественно, что такая связь имеет тип многие-к-одному, то есть нескольким видам контроля можно поставить в соответствие только одну форму. В этом состоит ограничение, такого делать нельзя, иначе все алгоритмы определения вида контроля по форме не могут работать однозначно.

В форме Ведомость добавлена возможность выбор СтрокиРУП по учебному плану с учетом ВидаКонтроля. В справочник СтрокиРУП добавлена дополнительная форма выбора Строки РУП специально для документа Ведомость, в которой отображаются строки РУП только по определенному учебному периоду (из документа Ведомость) с указанием соответствующего вида контроля. Это означает, если по дисциплине в семестре предполагается экзамен и курсовая работа, то в форме выбора будут две строки с этой дисциплиной, но разными видами контроля.

Благодаря этому преподаватель теперь уже не ошибется и не выберет дисциплину "не из того" семестра (по сравнению с указанным в Ведомости) и не укажет "не тот" вид контроля. Все это сделано для минимизации числа ошибок, ведь в планах стояло внедрение ввода оценок в ведомости непосредственно преподавателями. Так как все мы понимаем, что преподаватели иногда могут не помнить вид контроля или ошибаться при заполнение ведомости. Вообще внедрение такого программного продукта даже в аспекте ведомостей влечет большую интеллектуальную нагрузку на преподавателей, если учесть разный возраст и опыт работы с ИКТ.

Аналогичные изменения произведены в документе ОтчетПоПрактике с тем, чтобы руководитель практики выбирал виды практик, предусмотренные учебным планом только по выбранному семестру, который подбирается по дате документа.

Очень важно, что благодаря электронным ведомостям упростился подсчет средней оценки за дисциплину. В форму документа Ведомость и форму документа ОтчетПоПрактике добавил кнопку "Выставить среднее". По щелчку на кнопку в документе Ведомость вычисляется средняя оценка за формы контроля по данной Дисциплине, а более точно по СтрокеРУП. Это удобно для таких дисциплин, которые ведутся несколько семестров, а в итоге средняя оценка за все семестры идет в Диплом. Аналогично по практикам, за каждую практику в междисциплинарном комплексе выставляется оценка, а в диплом идет средняя по каждому виду практики. В документе по щелчку на кнопке "Выставить среднее" в поле Оценка выставляется средняя оцека, а также для контроля в поле Примечание перечисляются оценки.

В образовательной организации принят следующий алгоритм итоговых оценок.

1. Если дисциплина выдается за один семестр, то форма промежуточной аттестации идет в диплом (экзамен или дифференцированный зачет).

2. Если дисциплина выдается за несколько семестров:

  2.1. при этом, если среди форм промежуточной аттестации есть экзамен (один), именно эта оценка идет в диплом.

  2.2. если нет экзамена, то создается ведомость с выставлением средней по всем формам аттестации и эта оценка идет в диплом (среди дифференцированных зачетов, контрольных и т.д.).

  2.3. если есть несколько экзаменов, то средняя за все экзамены является итоговой.

Как же вводить ведомости в 1С:Колледж? Аналогично, если попадаем под пункт:

п1. В созданной ведомости ставим флажок Идет в диплом.

п2.1. В ведомости за экзамен ставим флажок Идет в диплом.

п2.2. Создаем ведомости на каждую форму контроля по семестрам, в которые НЕ ставим флажок "Идет в диплом", и создаем дополнительную ведомость на эту же дисциплину, ставим флажок "Идет в диплом". Нажимаем кнопку "Выставить среднее". Оценки вычисляются автоматически.

п2.3. Создаем ведомости на каждую форму контроля по семестрам, в которые НЕ ставим флажок "Идет в диплом", и создаем дополнительную ведомость на эту же дисциплину за Экзамен (то есть чтобы в Виде контроля был указан Экзамен), ставим флажок "Идет в диплом". Нажимаем кнопку "Выставить среднее", тогда программа соберет оценки именно за Экзамены.

Реализуется все это следующим кодом:

&НаСервере
Процедура ВыставитьСреднееНаСервере()
	з = Новый Запрос;
	//Считаем по каждому студенту и без агрегирующих функций, чтобы получить список оценок для контроля в поле Примечание
	Для каждого студ из Объект.Студенты цикл
		з.Текст = 
		"ВЫБРАТЬ
		|	ОценкиСтудентовСрезПоследних.Студент,
		|	ОценкиСтудентовСрезПоследних.Оценка
		|ИЗ
		|	РегистрСведений.ОценкиСтудентов.СрезПоследних(
		|			,
		|			Организация = &Организация
		|				И Студент = &Студент
		|				И СтрокаРУП = &СтрокаРУП) КАК ОценкиСтудентовСрезПоследних
		|ГДЕ
		|	НЕ ОценкиСтудентовСрезПоследних.ВидКонтроля В (&НеВидыКонтроля)
		|	И НЕ ОценкиСтудентовСрезПоследних.ИдетВДиплом";
		Если Объект.ВидКонтроля = Справочники.ВидыКонтроля.НайтиПоНаименованию("Экзамен", Истина) Тогда
			з.Текст = з.Текст + " И ОценкиСтудентовСрезПоследних.ВидКонтроля В (&ЭтиВидыКонтроля)";
			мЭтиВидыКонтроля = Новый Массив;
			мЭтиВидыКонтроля.Добавить(Справочники.ВидыКонтроля.НайтиПоНаименованию("Экзамен", Истина));
			з.УстановитьПараметр("ЭтиВидыКонтроля", мЭтиВидыКонтроля);
		КонецЕсли;
		з.УстановитьПараметр("СтрокаРУП", Объект.СтрокаРУП); //Откуда взялся реквизит будет раскрыто в следующей части (т.к. обоснование нетривиальное)
		з.УстановитьПараметр("Студент", студ.Студент);
		мНеВидыКонтроля = Новый Массив;
		мНеВидыКонтроля.Добавить(Справочники.ВидыКонтроля.ОтветУДоски);
		мНеВидыКонтроля.Добавить(Справочники.ВидыКонтроля.НайтиПоНаименованию("Курсовая работа", Истина));
		з.УстановитьПараметр("НеВидыКонтроля", мНеВидыКонтроля);
		з.УстановитьПараметр("Организация", Объект.Организация);
		РЗ = з.Выполнить();
		ТД = РЗ.Выбрать();
		
		СписокОценок = "";
		Сум = 0;
		Кол = 0;
		Пока ТД.Следующий() Цикл
			Сум = Сум + ТД.Оценка;
			Кол = Кол + 1;
			СписокОценок = СписокОценок + ТД.Оценка + "; ";
		КонецЦикла;
		
		Если Кол > 0 Тогда
			студ.Примечание = СписокОценок;
			студ.Оценка = Окр(Сум / Кол);
			студ.Явка = Истина;
		КонецЕсли;
		
	КонецЦикла;
	
	
	
КонецПроцедуры

Благодаря этим упрощение, существенно упростилась работа преподавателей по определению итоговых оценок, так как отпала необходимость поднимать ведомости или журналы за предыдущие годы. Однако, прочувствовать преподаватели это смогли только в следующем семестре.

К 26 декабря 2015 реализовал данные изменения в боевую базу, после каникул решил организовать ввод оценок.

Продолжение следует...

См. также

Подписаться Добавить вознаграждение
В этой теме еще нет сообщений.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа