Загрузка данных


@startuml
skinparam shadowing false
skinparam classFontSize 11
skinparam dpi 300
skinparam monochrome true

package "Справочники" {
    class Номенклатура {
        + Наименование
        + ВидНоменклатуры
        + Артикул
    }
    class ПричиныБрака {
        + Наименование
        + Описание
    }
    class Подразделения {
        + Наименование
        + ЭтоГруппа
    }
    class Склады {
        + Наименование
        + ТипСклада
    }
    class Сотрудники {
        + ФИО
        + Должность
    }
    class ВидыНоменклатуры {
        + ГотоваяПродукция
        + Полуфабрикат
        + Комплектующие
        + СырьеИМатериалы
        + Брак
    }
}

package "Документы" {
    class ПоступлениеПродукции {
        + Дата
        + Номер
        + Подразделение
        + Склад
        + Сотрудник
        --
        + Продукция : ТабличнаяЧасть
    }
    
    class ВыявлениеБрака {
        + Дата
        + Номер
        + Подразделение
        + Склад
        + Сотрудник
        --
        + Брак : ТабличнаяЧасть
        + ПечатнаяФорма()
        + QRКод : Картинка
    }
}

package "Регистры" {
    class БракПродукции {
        + Период
        + Подразделение
        + Склад
        + Номенклатура
        + ПричинаБрака
        + Количество
    }
}

package "Обработки" {
    class ЗагрузкаИзExcel {
        + ЗагрузитьДанные()
    }
    class ГенерацияQRКода {
        + СгенерироватьQR()
        + СохранитьВФайл()
    }
}

' ==================== Связи ====================

Номенклатура "1" --> "1" ВидыНоменклатуры : имеет

ВыявлениеБрака "1" *-- "0..*" Номенклатура : "Брак.Номенклатура"
ВыявлениеБрака "1" *-- "0..*" ПричиныБрака : "Брак.ПричинаБрака"

ПоступлениеПродукции "1" --> "0..*" Номенклатура : "Продукция.Номенклатура"

БракПродукции --> Подразделения
БракПродукции --> Склады
БракПродукции --> Номенклатура
БракПродукции --> ПричиныБрака

' Движения
ВыявлениеБрака ..> БракПродукции : "формирует движения"
ПоступлениеПродукции ..> БракПродукции : "может формировать"

' Обработки
ЗагрузкаИзExcel --> Номенклатура : "загружает"
ЗагрузкаИзExcel --> ПричиныБрака : "загружает"
ГенерацияQRКода --> ВыявлениеБрака : "генерирует для"

note right of ВыявлениеБрака
  <b>Основной документ</b>
  Печать + QR-код
end note

note right of ЗагрузкаИзExcel
  Импорт из Excel
  с поддержкой видов номенклатуры
end note

@enduml