diff --git a/dokogen/importer.py b/dokogen/importer.py index 39fb109..cb79c85 100644 --- a/dokogen/importer.py +++ b/dokogen/importer.py @@ -195,6 +195,10 @@ def _import_152_is_list(wb, data, log_fn): if 'перечисленные пдн принадлежат' in field_lower or 'принадлеж' in field_lower: current_section = 'subjects' continue + if 'структура ис' in field_lower or 'структура информационной' in field_lower or 'структур.*ис' in field_lower: + if val_b: + is_obj['structure'] = val_b + continue if 'количество записей' in field_lower or 'количество субъект' in field_lower: if val_b: is_obj['personalDataCount'] = val_b diff --git a/dokogen/models.py b/dokogen/models.py index 05abad1..4b51360 100644 --- a/dokogen/models.py +++ b/dokogen/models.py @@ -94,6 +94,9 @@ class Company: paper_documents_list: List[PaperDocument] = field(default_factory=list) employees_access: List[Dict[str, str]] = field(default_factory=list) + # Наименование структурного подразделения по безопасности + security_department: str = "" + def update_declensions(self, inflect_func): """Обновить склонения полного названия""" if self.full_name: diff --git a/dokogen/ui.py b/dokogen/ui.py index 0f30192..e4a0919 100644 --- a/dokogen/ui.py +++ b/dokogen/ui.py @@ -1358,6 +1358,10 @@ class DokoGenApp: if data.get('contractDate'): self.doc_date_var.set(data['contractDate']) + # Наименование структурного подразделения по безопасности + if data.get('ispdnDepartment'): + self.model.security_department = data['ispdnDepartment'] + # Информационные системы if data.get('informationSystems'): self.model.information_systems.clear() @@ -1375,6 +1379,8 @@ class DokoGenApp: processing_modes=is_data.get('processing_mode', ''), purpose=is_data.get('description', ''), room=is_data.get('room', ''), + structure=is_data.get('structure', ''), + pd_actions_list=is_data.get('pd_actions', []), ) self.model.information_systems.append(isys) self._refresh_is_listbox() diff --git a/dokogen/variables.py b/dokogen/variables.py index 61d22ec..a6e1c8c 100644 --- a/dokogen/variables.py +++ b/dokogen/variables.py @@ -50,6 +50,8 @@ VARIABLE_DEFS = [ ('{{company_ogrn}}', 'A', 'ОГРН', 'company:ogrn'), ('{{company_ogrn_date}}', 'A', 'Дата ОГРН', 'company:ogrn_date'), ('{{company_kpp}}', 'A', 'КПП', 'company:kpp'), + ('{{security_department}}', 'A', 'Наименование структурного подразделения по безопасности', 'company:security_department'), + ('{{item.pd_actions}}', 'B', 'Действия с ПДн (в цикле ИС)', 'item:pd_actions'), # === Комиссия === ('{{commission_list}}', 'A', 'Список комиссии', 'commission_list'), @@ -281,6 +283,7 @@ def _build_loop_data(company: Company, is_list: List) -> Dict[str, List[Dict]]: 'is_purpose': isys.purpose or '—', 'structure': getattr(isys, 'structure', '') or '—', 'software': getattr(isys, 'software', '') or '—', + 'pd_actions': '; '.join(isys.pd_actions_list or []) or '—', }) loops['information_systems'] = items