Импорт и экспорт

Как загрузить справочник из файла CSV или XLSX и как выгрузить его обратно.

Справочник не обязательно набивать по одной записи. Его можно залить файлом и так же выгрузить обратно в таблицу. Отвечает за это кнопка «Импорт и экспорт». Работает она одинаково в классах (в вузе и колледже — группах), предметах, учителях (преподавателях), кабинетах (аудиториях), корпусах и типах занятий. Своя у каждого справочника только памятка внутри диалога.

Импорт выручает, когда данные приходят готовым файлом: выгрузкой из стороннего сервиса или присланной таблицей. Ради правки одной-двух записей открывать его не стоит, быстрее исправить карточку в самом справочнике.

Где находится

Боковое меню → «Справочники» → «Классы», «Предметы», «Учителя», «Кабинеты» или «Типы занятий» → кнопка «Импорт и экспорт» в правом верхнем углу страницы, слева от кнопки добавления записи.

  • На странице «Кабинеты» кнопка работает по текущей вкладке. На вкладке «Кабинеты» это «Импорт кабинетов» и «Экспорт кабинетов», на вкладке «Корпуса» — «Импорт корпусов» и «Экспорт корпусов».
  • На вкладке «Деления» кнопки «Импорт и экспорт» нет вовсе: деления загружаются колонкой «Деления» в файле классов.
  • Пока справочник пуст, кнопка «Импортировать из файла» есть прямо в блоке пустого справочника — она открывает тот же диалог. Так работают «Классы», «Предметы», «Учителя», «Кабинеты», «Корпуса» и «Типы занятий».

Подготовить файл

  1. Откройте нужный справочник и нажмите «Импорт и экспорт».
  2. Выберите пункт импорта: «Импорт классов», «Импорт предметов», «Импорт учителей», «Импорт кабинетов», «Импорт корпусов» или «Импорт типов занятий».
  3. Прочитайте в памятке вверху диалога состав колонок.
  4. Нажмите «Скачать пример CSV» или «Скачать пример XLSX» и заполните скачанный файл.
  5. Перечисления в одной ячейке разделяйте знаком «;». Так заполняются «Кабинеты» в классах и предметах, «Предметы» и «Кабинеты» у учителей. Названия должны совпадать с теми, что уже заведены в приложении.
  • Подпись пункта меню меняется вместе с типом учреждения: в вузе и колледже это «Импорт групп», «Импорт преподавателей», «Импорт аудиторий». Заголовок самого диалога зашит жёстко и остаётся школьным. Даже когда в меню написано «Импорт групп», диалог называется «Импорт классов» (для учителей — всегда «Импорт учителей»).
  • Дословный текст памятки у классов — «Обязательная колонка: Название.», у учителей — «Обязательная колонка: ФИО.». У типов занятий памятка называет и необязательные колонки: «Необязательные: Сокращение, На печать.».
  • У классов есть отдельная фраза: «Для нового класса нужна Параллель. Для уже существующего класса можно импортировать только новые деления.». Параллель нужна не файлу целиком, а именно строкам с новыми классами. Пишется она целым числом от 1 до 99.
  • В скачанном шаблоне есть только строка заголовков, примеров данных внутри нет. Имя файла шаблона всегда школьное: «шаблон импорта классов.csv», «шаблон импорта учителей.xlsx» и так далее, даже если на экране справочник подписан иначе.
  • Заголовки колонок распознаются без учёта регистра, пробелов и подчёркиваний. У части колонок есть синонимы: колонка «Параллель» примет ещё «Курс» или course.
  • В кабинетах корпус задаётся названием в колонке «Корпус». Если корпус не нужен, оставьте ячейку пустой. Памятка кабинетов отдельно напоминает, что вместимость пишется целым числом.
  • Разделитель CSV подбирать вручную не нужно: приложение само распознаёт запятую, точку с запятой или табуляцию.
  • Колонки «Цвет» в файле нет. Цвет каждой новой записи приложение подбирает само, свободным из палитры, чтобы соседние записи не сливались. Если цвет важен, поменяйте его в карточке после импорта.

Загрузить файл в справочник

  1. В диалоге импорта нажмите «Выбрать файл» и укажите файл в формате CSV или XLSX.
  2. Убедитесь, что вместо подписи «Файл пока не выбран» появились имя файла и строка «Найдено строк: N». Это число строк, которые приложение прочитало.
  3. Нажмите «Импортировать».
  4. Дождитесь сообщения «Импорт завершен: добавлено …, пропущено …, ошибок …» и блока «Результат импорта» в диалоге.
  5. Чтобы начать с другим файлом, нажмите «Очистить» — выбранный файл и результат сбросятся.

Формат, строку заголовков и числовые колонки приложение проверяет ещё до отправки на сервер. Вместо счётчика строк может появиться красное сообщение: «Поддерживаются только файлы CSV и XLSX», «В файле не найдены обязательные колонки: Название», «В выбранном файле не найдено строк для импорта» или «Строка 4: значение колонки "Количество учащихся" должно быть целым числом». Тогда исправьте файл и выберите его заново. Из книги XLSX данные читаются только с первого листа.

Разобрать «Пропущено» и «Ошибок»

В блоке «Результат импорта» стоят три числа: «Импортировано», «Пропущено» и «Ошибок». Пропущенные строки приложение сознательно не стало добавлять, строки с ошибками заполнены неверно. Исправьте файл по сообщениям, нажмите «Очистить», выберите исправленный файл и снова нажмите «Импортировать».

  • Причины в блоке «Пропущенные строки» — это повторы. У классов «Класс с таким названием уже есть в приложении» и «Все деления из строки уже есть у класса». У предметов «Предмет с таким названием уже есть в приложении», у кабинетов «Кабинет с таким названием и корпусом уже есть в приложении». У корпусов «Корпус с таким названием уже есть в приложении», у типов занятий «Тип занятия с таким названием уже есть в приложении».
  • У каждой такой причины есть парная, со словами «…уже встречался в этом файле». Она означает повтор внутри самого загружаемого файла.
  • У учителей сообщение о повторе всегда использует слово «Преподаватель», даже в школьном приложении: «Преподаватель с таким ФИО уже есть в приложении».
  • Примеры сообщений в блоке «Строки с ошибками»: «Параллель обязательна для нового класса», «Название группы обязательно» (эта формулировка тоже вузовская и видна в школьном приложении), «Параллель должна быть от 1 до 99», «Количество учеников должно быть от 1 до 1000», «Сокращенное название не может быть длиннее 20 символов», «Кабинет "215" не найден», «Найдено несколько кабинетов с названием "215"», «Сокращение "5А" уже присутствует в приложении».
  • Оба списка показаны не целиком: видны первые пять строк, остальные свёрнуты в подпись вида «И еще 3 строки.».

Заполнить колонку «Деления» в файле классов

Деление класса на группы (в вузе и колледже — на подгруппы) описывает одна ячейка колонки «Деления» в файле классов. Отдельного импорта у вкладки «Деления» нет. Формат из памятки диалога: «Информатикагр1|гр2,Английскийанг|нем{_|23};Физрагр1|гр2,Технологиигр1|гр2».

  • Точка с запятой отделяет одно деление от другого, запятая — варианты названий внутри деления. В квадратных скобках стоят названия групп, а вертикальная черта разделяет группы внутри варианта.
  • Блок в фигурных скобках необязателен. Если он есть, то стоит в самом конце деления и перечисляет количество учащихся по группам. Число значений должно совпадать с числом групп, а каждое значение — быть от 1 до 1000 либо «_», когда оно не заполнено.
  • Во всех вариантах названий одного деления должно быть одинаковое число групп, от 2 до 10. Иначе строка попадёт в «Строки с ошибками».
  • Если в ячейке дважды описано одно и то же деление, повтор молча схлопывается в одно.
  • Для класса, который уже есть в приложении, импортом добавляются только новые деления: остальные поля такого класса не перезаписываются.

Выгрузить справочник в файл

  1. Откройте нужный справочник (для корпусов — вкладку «Корпуса») и нажмите «Импорт и экспорт».
  2. Выберите пункт экспорта: «Экспорт классов», «Экспорт предметов», «Экспорт учителей», «Экспорт кабинетов», «Экспорт корпусов» или «Экспорт типов занятий».
  3. В подменю с подписью «Выберите формат выгрузки.» нажмите «CSV» или «XLSX» — файл скачается сразу, без дополнительного окна. Вернуться к предыдущему списку можно кнопкой «Назад».
  • Пункт экспорта полупрозрачный и не нажимается, пока в справочнике нет ни одной записи: выгружать нечего. На странице «Кабинеты» это правило считается по текущей вкладке.
  • Экспорт всегда берёт справочник целиком и не учитывает поиск, фильтры и сортировку таблицы. Отбирайте нужные строки уже в скачанном файле средствами Excel или другой таблицы.
  • Состав выгрузки свой у каждого справочника. В классах это «Название», «Сокращение», «Количество учащихся», «Параллель», «Кабинеты», «Деления». В учителях «ФИО», «Сокращение», «Предметы», «Кабинеты». В предметах «Название», «Сокращение», «Кабинеты», «Ссылка». В кабинетах «Название», «Сокращение», «Корпус», «Вместимость». В корпусах «Название» и «Сокращение», в типах занятий «Название», «Сокращение», «На печать».
  • Полученный файл подходит для обратной загрузки: колонки совпадают с шаблоном импорта. Списки в CSV записаны через «; » и целиком в кавычках. В XLSX шапка закреплена и включён автофильтр.

Поля

ПолеЧто задаётОграничения
«Выбрать файл»Файл, из которого читаются строки. Рядом встают его имя и счётчик «Найдено строк: N»Обязательный шаг. Принимаются только CSV и XLSX, из книги XLSX читается первый лист. До выбора рядом стоит подпись «Файл пока не выбран». Файл разбирается в браузере, на сервер он на этом шаге ещё не уходит
«Скачать пример CSV»Скачивает шаблон с правильной строкой заголовковНеобязательный шаг: ссылка в памятке диалога. Внутри только заголовки, примеров данных нет. Имя файла всегда школьное — «шаблон импорта классов.csv»
«Скачать пример XLSX»То же в формате книги ExcelНеобязательный шаг: ссылка в памятке диалога, имя вида «шаблон импорта классов.xlsx»
«Очистить»Сбрасывает выбранный файл и разбор прошлой загрузки, диалог остаётся открытымНеобязательная кнопка внизу диалога. Неактивна, пока не выбран файл и не показан «Результат импорта»
«Импортировать»Отправляет разобранные строки на сервер и заполняет блок «Результат импорта»Кнопка внизу диалога. Неактивна, пока в выбранном файле не найдено ни одной строки
«Результат импорта»Итог загрузки тремя счётчиками: «Импортировано», «Пропущено», «Ошибок»Не поле, а блок диалога: появляется после нажатия «Импортировать» и исчезает по «Очистить». Ниже раскрываются «Пропущенные строки» и «Строки с ошибками» — по пять строк в каждом

Если что-то выглядит не так

  • В результате стоит «Импортировано: 0», хотя «Ошибок» всего 1–2, а остальные строки в файле корректны.
    • Почему: Импорт выполняется целиком. Если хотя бы в одной строке есть ошибка, приложение не добавляет ни одной записи и показывает только разбор.
    • Что делать: Исправьте все строки из блока «Строки с ошибками», нажмите «Очистить» и загрузите файл заново. Счётчик «Импортировано» станет ненулевым, только когда «Ошибок» будет 0.
  • Записи из файла не появились, а в «Пропущено» стоит число и причины вроде «Класс с таким названием уже есть в приложении».
    • Почему: Импорт только добавляет новые записи. Он никогда не обновляет и не перезаписывает существующие.
    • Что делать: Правьте такие записи вручную в карточке справочника. Единственное исключение — классы: для уже существующего класса импортом можно догрузить новые деления.
  • В блоках «Пропущенные строки» и «Строки с ошибками» перечислены не все строки, внизу подпись вида «И еще 4 строки.».
    • Почему: Список намеренно ограничен пятью строками, чтобы диалог оставался читаемым.
    • Что делать: Исправьте видимые строки и повторите импорт. Следующие проблемные строки покажутся в новом разборе, и так по кругу, пока «Ошибок» не станет 0.
  • Строка с ошибкой «Кабинет "215" не найден» или «Найдено несколько кабинетов с названием "215"».
    • Почему: Кабинеты, предметы и корпуса подставляются по совпадению названия со справочником. Если названия нет или таких названий несколько, связь не строится.
    • Что делать: Сначала заведите или переименуйте недостающие записи в их справочниках, устраните полные тёзки и только потом импортируйте файл.
  • В вузе или колледже выгруженный файл называется «классы.xlsx», а лист внутри — «Классы».
    • Почему: Имена файлов и листов при экспорте всегда школьные, хотя на экране справочник подписан иначе. То же самое верно для остальных справочников: «учителя», «предметы», «кабинеты», «корпуса», «типы-занятий».
    • Что делать: Считайте это техническим именем: содержимое соответствует тому справочнику, из которого вы делали выгрузку. Если нужно, переименуйте файл после скачивания.

Дальше

  • Классы — какие поля есть у класса и что попадёт в колонки файла.
  • Деления — как то же деление на группы выглядит и правится в интерфейсе.
  • Удаление и связи — как убрать записи, загруженные по ошибке.
  • Таблицы, поиск и фильтры — почему выгрузка не совпадает с тем, что видно в таблице после отбора.