# ImportMapper Универсальный редактор импорта из Excel-опросников. Показывает, какие данные из файла опросника импортируются и куда, позволяет включить/выключить поля и добавить свои привязки. Поддерживаемые типы опросников (профили в `profiles/`): - `152` — 152-ФЗ «О персональных данных» - `187` — 187-ФЗ «О безопасности КИИ» - `117` — 117-ФЗ (безопасность объектов КИИ / ГИС) - `mu` — МУ (методические указания) - `kzi` — КЗИ (комплекс средств защиты информации) - `pzi` — ПЗИ (программные средства защиты информации) ## Запуск ```bash pip install -r requirements.txt python3 main.py ``` ## Как пользоваться 1. Выберите тип опросника в выпадающем списке. 2. Нажмите «Обзор» и укажите Excel-файл опросника. 3. Нажмите «Сканировать» — программа покажет, что импортируется. 4. Галочками включите/выключите нужные поля. 5. «💾 Сохранить настройки» — сохраняет настройки для этого типа опросника. 6. «📤 Выгрузить данные» — собирает данные из Excel в JSON по настройкам (файл `export/export_<тип>.json`), который может использовать генератор. ## Структура - `main.py` — точка входа - `editor.py` — окно редактора - `core.py` — профили, сканирование Excel, извлечение данных - `profiles/*.json` — правила импорта для каждого типа опросника - `settings/settings_<тип>.json` — настройки пользователя (создаются автоматически) - `export/export_<тип>.json` — выгруженные данные (создаются автоматически) ## Профили Каждый профиль — JSON-файл: ```json { "id": "152", "name": "152-ФЗ (персональные данные)", "common_sheet": "общие", "employee_sheet": "сотруд", "is_enabled": true, "rules": [ {"pattern": "полное наименование организации", "field": "fullName", "desc": "Полное наименование организации"} ], "sections": { "commission": {"header": "состав комиссии"} } } ``` - `common_sheet` — лист с общими сведениями (подстрока имени листа) - `employee_sheet` — лист с комиссией/сотрудниками (подстрока имени листа) - `is_enabled` — включать ли разбор остальных листов как информационных систем - `rules` — правила: регулярное выражение заголовка → поле программы - `sections` — секции на листе сотрудников (заголовок секции → id) Правила для 187/117/МУ/КЗИ/ПЗИ — базовые; их можно дополнить под конкретные опросники через редактор (галочка «Найдено, но не импортируется») или отредактировав JSON профиля.