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