Перейти к содержанию

Импорт компонентов из 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
  • Разделитель колонок — запятая (,)

Загрузка шаблона

Чтобы не ошибиться в названиях колонок, скачайте готовый шаблон:

  1. Откройте страницу учёта оборудования
  2. Вызовите диалог импорта
  3. Система предложит скачать шаблон для выбранного типа компонента

Имя файла формируется автоматически: {тип_компонента}_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-файла

  1. В интерфейсе учёта оборудования нажмите кнопку импорта
  2. Выберите тип компонента (например, Мышь, Процессор)
  3. Укажите CSV-файл для загрузки
  4. Нажмите кнопку загрузки

Что происходит на этом этапе: - Система читает файл и проверяет каждую строку - Если найдены ошибки — загрузка прерывается, выводится список ошибок - Если ошибок нет — данные сохраняются в сессии и отображаются в виде таблицы для проверки

Этап 2: Подтверждение импорта

  1. Просмотрите предварительные данные в таблице
  2. Убедитесь, что все строки корректны
  3. Нажмите кнопку подтверждения

Что происходит на этом этапе: - Все строки из сессии сохраняются в базу данных в одной транзакции - Для каждого компонента создаётся событие 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 с теми же производителями и названиями моделей — система не создаёт дубликаты, а использует существующие записи из справочников.

События и оповещения

После успешного импорта:

  1. Для каждого созданного компонента формируется событие CPNT_ADD
  2. События группируются и сохраняются в таблице Events
  3. Отправляется оповещение (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-файле или удалите существующие записи с конфликтующими номерами.

Проблема: Импорт прерван с ошибкой транзакции
Решение: Проверьте, что все обязательные поля заполнены. Убедитесь, что данные не нарушают ограничения базы данных (например, уникальность). После исправления загрузите файл заново — частично сохранённых данных не осталось благодаря транзакции.

Проблема: Пользователь не найден в полях «Ответственный» или «Пользователь»
Решение: Если указанный пользователь не существует в системе — это поле будет проигнорировано, импорт продолжится без ошибки. Проверьте правильность написания имени пользователя.