даватель2;
Інакше
Повідомити ( Помилка - Функція ПроверкаВозможностіЗанятьПреподавателей );
Відмова=Істина;
Повернення 0;
КонецЕсли;
Результ.Добавіть (Препод1);
Результ.Добавіть (Препод2);
Повернення Результ;
КонецФункции
Функція ПроверкаВозможностіЗанятьПреподавателей (День, Пара, Предмет, Зсув). Ця функція перевіряє зайнятість викладача на певний день. Параметр зсув - якщо передбачається запис предмета відразу кілька разів повертає 1 якщо викладачі не зайняті.
Функція ПроверкаВозможностіЗанятьПреподавателей (День, Пара, Предмет, Зсув)
Відбір=Новий Структура ();
Отбор.Вставіть ( День , День);
Рядки=ТабПрепод.НайтіСтрокі (Відбір);
Якщо Строкі.Колічество () gt; 0 Тоді
Довжина=Строкі.Колічество () - 1;
Для н=0 справжність цикл
ПреподІск=Рядки [н] .Преподав;
ПараІск=Рядки [н] Пару;
Якщо ((ПреподІск=Препод) І (ПараІск=Пара)) тоді
Рез=0;
Перервати;
КонецЕсли;
Якщо Препод2 lt; gt; Не визначено тоді
Якщо ((ПреподІск=Препод2) І (ПараІск=Пара)) тоді
Рез=0;
Перервати;
КонецЕсли;
КонецЕсли;
КонецЦікла;
КонецЕсли;
КонецФункции
Функція ПроверітьВозможностьЗапісіПредмета (Група, День, Предмет, Зсув). Ця функція має параметр Зміщення, який перевіряє можливість установки занять в межах 4-ох пар.
Функція ПроверітьВозможностьЗапісіПредмета (Група, День, Предмет, Зсув)
Якщо (День=Перечісленія.Дні.Понедельнік) тоді
ЧислоПар=Константы.КолвоПарПонедельник.Получить();
КонецЕсли;
Якщо (День=Перечісленія.Дні.Вторнік) тоді
ЧислоПар=Константы.КолвоПарВторник.Получить();
КонецЕсли;
Якщо (День=Перечісленія.Дні.Вторнік) тоді
ЧислоПар=Константы.КолвоПарВторник.Получить();
КонецЕсли;
Якщо (День=Перечісленія.Дні.Среда) тоді
ЧислоПар=Константы.КолвоПарСреда.Получить();
КонецЕсли;
Якщо (День=Перечісленія.Дні.Четверг) тоді
ЧислоПар=Константы.КолвоПарЧетверг.Получить();
КонецЕсли;
Якщо (День=Перечісленія.Дні.Пятніца) тоді
ЧислоПар=Константы.КолвоПарПятница.Получить();
КонецЕсли;
Якщо (День=Перечісленія.Дні.Суббота) тоді
ЧислоПар=Константы.КолвоПарСуббота.Получить();
КонецЕсли;
КонецФункции
Функція ЗанятьПреподавателя (День, Пара, Предмет, Препод, Препод2). Функція виконує зайнятість викладача на дату, проводячи встановлений предмет.
Функція ЗанятьПреподавателя (День, Пара, Предмет, Препод, Препод2)
Якщо Препод2=Не визначено тоді
НовСтр=ТабПрепод.Добавіть ();
НовСтр.День=День;
НовСтр.Преподав=Препод;
НовСтр.Пара=Пара;
НовСтр.Предмет=Предмет;
Інакше
НовСтр=ТабПрепод.Добавіть ();
НовСтр.День=День;
НовСтр.Преподав=Препод;
НовСтр.Пара=Пара;
НовСтр.Предмет=Предмет;
КонецЕсли;
КонецФункции
Функція ЗапісатьПредмет (Група, День, Предмет, Пара, Преп, Преп2). Ця функція записує предмети для викладачів і груп на обрану дату.
Функція ЗапісатьПредмет (Група, День, Предмет, Пара, Преп, Преп2)
Якщо Пара=1 тоді
Якщо ІнфоГрупп1 [0] [0] lt; gt; Не визначено тоді
Повідомити ( Помилка, ЗапісатьПредмет (Група, День, Предмет, Пара - ошібка1 );
Інакше
НовСтр=Новий ( ТабліцаЗначеній );
НовСтр.Колонкі.Добавіть ( Пара );