Импорт компонентов из CSV-файла
Примечание
Для добавления компонентов у пользователя должны быть права
Добавление компьютеров. Подробнее читайте страницу о
Правах доступа.
Функция позволяет массово создавать учётные записи оборудования (процессоры, мониторы, клавиатуры и другие типы компонентов) через загрузку CSV-файла. Система проверяет данные, отображает предварительный просмотр и только после подтверждения оператора сохраняет записи в базу данных.
Переход к странице импорта
Чтобы открыть страницу импорта:
1. В левом боковом меню выберите тип компонента, который хотите импортировать:
| Раздел меню | Тип компонента |
|---|---|
Процессоры |
Processor |
ОЗУ |
Memory |
Жёсткие диски |
HardDrive |
Материнские платы |
SystemBoard |
Видеокарты |
Gpu |
Батареи |
Battery |
Корпуса |
Case |
Контроллеры |
Controller |
Приводы |
Drive |
Прошивки |
Firmware |
Звуковые карты |
Soundcard |
Блоки питания |
PowerSupply |
PCI-устройства |
PCIDevice |
Сетевые карты |
NetworkCard |
Мониторы |
Monitor |
Мыши |
Mouse |
Клавиатуры |
Keyboard |
2. На открывшейся странице со списком оборудования в правом верхнем углу нажмите кнопку Импорт из CSV
Предварительные требования
- У пользователя есть разрешение Добавление компьютеров
- Пользователь привязан к организации
- CSV-файл в кодировке UTF-8
- Разделитель колонок — запятая (
,)
Загрузка шаблона
Чтобы не ошибиться в названиях колонок, скачайте готовый шаблон:
- Откройте страницу учёта оборудования
- Вызовите диалог импорта
- Система предложит скачать шаблон для выбранного типа компонента
Имя файла формируется автоматически: {тип_компонента}_template.csv (например, mouse_template.csv, processor_template.csv).
Примечание
В шаблоне колонки, обязательные для заполнения, отмечены звёздочкой (*):
- Производитель — название производителя
- Статус — числовой код или текстовое обозначение статуса
Остальные поля опциональны и могут быть оставлены пустыми.
Структура CSV-файла
Поддерживаемые поля
| Поле в CSV | Описание | Пример |
|---|---|---|
Производитель |
Название производителя (обязательно) | Logitech, Intel |
Название |
Модель компонента (обязательно) | MX Master 3S, Core i5-13600K |
Серийный номер |
Серийный номер единицы оборудования | SN-001 |
Инв. номер |
Инвентарный номер | INV-001 |
Статус |
Статус компонента (обязательно) | 1, Резерв |
Помещение |
Название помещения | MainRoom |
Филиал |
Название филиала (привязывается к помещению) | DevBranch |
Ответственный |
Имя пользователя-ответственного | ivanov |
Пользователь |
Имя пользователя-оператора | petrov |
Дата покупки |
Дата приобретения (YYYY-MM-DD) | 2024-01-15 |
Комментарий |
Произвольный комментарий | Основная рабочая станция |
Поля, специфичные для типа компонента (частота, ядра, объём памяти и т.п.), также поддерживаются и указываются соответствующими заголовками из шаблона.
Совет
Если поле не нужно для конкретной записи — оставьте его пустым. Пустые значения игнорируются.
Значения статуса
Поле Статус принимает как числовые коды, так и текстовые названия (регистр не важен):
| Код | Текстовое название | Отображение в интерфейсе |
|---|---|---|
1 |
reserve |
Резерв |
2 |
installed |
Установленные |
3 |
broken |
Сломанные |
4 |
repair |
Ремонтируются |
5 |
write-off |
Списание |
Процесс импорта
Импорт состоит из двух этапов: загрузка и подтверждение. Это сделано для того, чтобы оператор мог проверить данные перед записью в базу.
Этап 1: Загрузка CSV-файла
- В интерфейсе учёта оборудования нажмите кнопку импорта
- Выберите тип компонента (например,
Мышь,Процессор) - Укажите CSV-файл для загрузки
- Нажмите кнопку загрузки
Что происходит на этом этапе: - Система читает файл и проверяет каждую строку - Если найдены ошибки — загрузка прерывается, выводится список ошибок - Если ошибок нет — данные сохраняются в сессии и отображаются в виде таблицы для проверки
Этап 2: Подтверждение импорта
- Просмотрите предварительные данные в таблице
- Убедитесь, что все строки корректны
- Нажмите кнопку подтверждения
Что происходит на этом этапе:
- Все строки из сессии сохраняются в базу данных в одной транзакции
- Для каждого компонента создаётся событие CPNT_ADD
- Если в процессе возникла ошибка — транзакция откатывается, ни одна запись не сохраняется
Предупреждение
Подтверждение импорта — необратимое действие. Перед подтверждением внимательно проверьте все данные в таблице предпросмотра.
Валидация данных
Ошибки при загрузке
Система проверяет каждую строку CSV-файла и может вернуть следующие ошибки:
| Ошибка | Причина |
|---|---|
требуется указать производителя |
Поле Производитель пустое |
имя обязательно для заполнения |
Поле Название пустое |
статус обязателен |
Поле Статус пустое |
недопустимое значение статуса |
Значение статуса не соответствует ни одному допустимому коду или названию |
не удалось определить название |
Не удалось создать или найти запись названия компонента |
| CSV-файл пуст или не содержит заголовков | Файл не содержит ни одной строки с данными или заголовки не распознаны |
| CSV-файл содержит заголовки, но не содержит строк данных | Заголовки есть, но нет ни одной строки с данными |
Проверка уникальности
При загрузке CSV-файла система проверяет, что серийные и инвентарные номера из файла не совпадают с уже существующими в базе данных для данной организации:
Serial number "..." already exists.— серийный номер уже занятInventory number "..." already exists.— инвентарный номер уже занят
Если найдены дубликаты — загрузка прерывается, и оператор видит список конфликтующих номеров.
Примечание
Проверка уникальности выполняется только для номеров, указанных в CSV-файле. Если поле серийного или инвентарного номера пустое — проверка не выполняется.
Ошибка кодировки
Если файл сохранён не в UTF-8, система вернёт ошибку: File encoding error: must be UTF-8.
Автоматическое создание справочников
В процессе импорта система автоматически создаёт или находит записи в справочниках:
- Производитель — создаётся, если не найден по названию (глобальный справочник Manufacturer)
- Название модели — создаётся в связке с производителем (уникальность: (производитель, название))
- Помещение — создаётся в контексте организации
- Филиал — создаётся в контексте организации, привязывается к помещению
Совет
Если вы повторно загружаете CSV с теми же производителями и названиями моделей — система не создаёт дубликаты, а использует существующие записи из справочников.
События и оповещения
После успешного импорта:
- Для каждого созданного компонента формируется событие
CPNT_ADD - События группируются и сохраняются в таблице
Events - Отправляется оповещение (alert) с информацией о выполненном импорте
Пример CSV-файла
Производитель,Название,Серийный номер,Инв. номер,Статус,Помещение,Филиал,Комментарий
Logitech,MX Master 3S,SN-001,INV-001,1,Room 101,Main Branch,Основная мышь
Intel,Core i5-13600K,SN-002,INV-002,2,Room 102,Dev Branch,Для разработки
Устранение неполадок
Проблема: После загрузки CSV нет данных в таблице предпросмотра
Решение: Проверьте, что файл сохранён в кодировке UTF-8 и разделитель — запятая. Убедитесь, что хотя бы одна строка содержит заполненные поля производителя и названия.
Проблема: Выдаётся ошибка «Серийный номер уже существует»
Решение: Серийные номера должны быть уникальны в пределах организации. Исправьте номера в CSV-файле или удалите существующие записи с конфликтующими номерами.
Проблема: Импорт прерван с ошибкой транзакции
Решение: Проверьте, что все обязательные поля заполнены. Убедитесь, что данные не нарушают ограничения базы данных (например, уникальность). После исправления загрузите файл заново — частично сохранённых данных не осталось благодаря транзакции.
Проблема: Пользователь не найден в полях «Ответственный» или «Пользователь»
Решение: Если указанный пользователь не существует в системе — это поле будет проигнорировано, импорт продолжится без ошибки. Проверьте правильность написания имени пользователя.