Импортеры CSV
Импорт экспортированных списков FET по одной секции, а также единственное правило упорядочивания, которое важно правильно настроить сразу.
FET может экспортировать каждый из своих списков в отдельный CSV-файл. Семь из этих файлов считываются здесь, каждый в свой раздел редактора данных, так что вы можете импортировать один список за раз вместо всего проекта сразу.
Семь файлов
- Преподаватели — список преподавателей.
- Дисциплины — список дисциплин.
- Виды занятий — список видов занятий.
- Аудитории и здания — один файл, охватывающий оба понятия, как и в FET.
- Студенты — потоки, группы и подгруппы, с их вложенностью.
- Занятия — список занятий, который фактически содержит учебную нагрузку школы до того, как будет сгенерировано какое-либо расписание.
- Недоступное время преподавателей — единственный файл, который содержит правила, а не список. Он импортируется из Ограничений по времени, а не из Преподавателей.
Каждый импортируется из своего раздела: откройте раздел в редакторе данных и используйте кнопку импорта CSV. Файл считывается, вам показывается, что будет сделано, и ничего не записывается, пока вы не подтвердите.
Файл недоступного времени заменяет, а не добавляет
Первые шесть файлов добавляют недостающее и оставляют остальное без изменений. Файл недоступного времени преподавателей ведет себя иначе из-за своего содержимого: FET записывает полную сетку — каждого преподавателя напротив каждого часа, с отметкой там, где этот преподаватель не может преподавать.
Пустая ячейка — это не «нет информации». Это файл, говорящий: этот преподаватель тогда свободен. Поэтому импорт такого файла заменяет недоступное время преподавателей, перечисленных в нем, что является единственным способом фактически применить освободившееся место.
Преподаватели, не упомянутые в файле, остаются полностью без изменений, поэтому файл, охватывающий трех преподавателей, не может повлиять на остальные тридцать.
Перед записью чего-либо вам сообщается, сколько ограничений будет удалено, сколько будет записано и сколько преподавателей останутся нетронутыми. Отмены нет, поэтому сначала сделайте резервную копию, если расписание имеет значение.
Преподаватель, чье имя еще не содержится в расписании, пропускается, а не создается — этот файл корректирует существующих людей, он не вводит новых.
Отметка может быть предпочтением, а не блокировкой
Ячейки в этом файле — это не галочки — каждая из них несет вес от 0 до 100, и вес меняет значение отметки.
100 означает «не может». Это обычный случай, и он становится простым правилом преподаватель недоступен.
Ниже 100 означает «скорее не хотел бы». Правило «недоступен» не имеет более слабого значения — оно абсолютно или его нет вовсе — поэтому взвешенная отметка записывается наоборот: как предпочтительные временные интервалы, перечисляющие все места, куда занятия преподавателя могут быть назначены, с этим весом. Это то же ограничение, выраженное в положительной форме.
FET не имеет режима импорта для этого. Собственная справка FET рекомендует использовать предпочтительное время, когда вам нужен вес ниже 100. Этот импортер выполняет этот шаг за вас.
Вы не выбираете между ними, и нет настроек, которые можно было бы ошибочно установить. Если файл содержит взвешенные ячейки, импорт сообщит вам об этом до записи и назовет найденные веса.
Импортируйте студентов до занятий
Это единственное правило, которое стоит соблюдать в точности.
Если занятие называет набор студентов, который еще не существует, набор создается плоским — и он никогда впоследствии не будет преобразован в правильную структуру поток-группа-подгруппа.
Сначала импортируйте файл студентов, и иерархия будет создана правильно. Если сначала импортировать занятия, вы получите кучу плоских групп, которые выглядят правильно в списке, но ведут себя неправильно везде, где важна структура. Исправление этого впоследствии означает их удаление и повторное создание.
То же автоматическое создание применяется к преподавателям, дисциплинам и видам занятий, названным в строке занятия. Для них это безвредно — преподаватель есть преподаватель — именно поэтому случай со студентами сбивает с толку.
Предварительный просмотр перед подтверждением

Выбор файла не импортирует его. Сначала файл считывается, и вы получаете сводку того, что произойдет: сколько строк было понято, что будет создано, и любые предупреждения о строках, которые не могут быть использованы. Строки без имени сообщаются и пропускаются, а не молча создают пустые записи.
Запись происходит только после вашего подтверждения.
Что стоит знать о формате
Вам не нужно вообще подготавливать собственные экспорты FET — они считываются в том виде, в каком есть. Это важно, когда вы создаете файл вручную или редактируете его в электронной таблице.
- Имена файлов сопоставляются по суффиксу. FET добавляет к экспортируемым файлам префикс с именем расписания, поэтому
myschool_teachers.csvраспознается как файл преподавателей. Сохраните суффикс, а префикс может быть любым. - Ожидается метка порядка байтов (BOM). FET записывает ее, и она удаляется при чтении. Файл, сохраненный без нее, также подходит.
- Разделитель определяется для каждого файла, а не предполагается, поэтому экспорт с разделителем-точкой с запятой работает так же хорошо, как и с разделителем-запятой.
- Ячейки ресурсов вложены. Символ
|разделяет один разделенный компонент от следующего, а+разделяет элементы внутри компонента — так что ячейка может называть нескольких преподавателей для одного занятия или разных преподавателей для каждого компонента. - Названия дисциплин не разделяются по
+. Название дисциплины может законно содержать знак плюс, поэтому разделение его усечет название. Если вы помещали несколько дисциплин в одну ячейку, это не поддерживается форматом. - Пустая числовая ячейка означает «нет ограничения», а не ноль. Оставление пустой ячейки для минимального количества дней не накладывает минимального значения «ничего» — это означает, что ограничение отсутствует.
Что вы получаете после
Расписание, построенное из этих файлов, содержит реальный список занятий, поэтому оно ведет себя как проект, а не как его изображение: присутствуют длительности и разделенные компоненты, и то, что вы загружаете, построено на основе фактических данных.