diff --git a/dokogen/ui.py b/dokogen/ui.py index 23b3798..e86dc7d 100644 --- a/dokogen/ui.py +++ b/dokogen/ui.py @@ -1483,11 +1483,18 @@ class DokoGenApp: self.doc_number_var.set(c.contract_number or "") self.doc_date_var.set(c.contract_date or "") - # Дополнительные ОКВЭД + # Дополнительные ОКВЭД — нарезаем по кодам и нормализуем в «код название» if hasattr(self, 'okved_extra_listbox'): self.okved_extra_listbox.delete(0, tk.END) - for item in (c.okved_extra or []): - self.okved_extra_listbox.insert(tk.END, item) + try: + from .verify import split_okved_extra, resolve_okved + from .api_settings import load_api_settings as _las_g + _tok_g = (_las_g().get('dadata_token') or '') + for item in split_okved_extra(c.okved_extra or []): + self.okved_extra_listbox.insert(tk.END, resolve_okved(item, _tok_g)) + except Exception: + for item in (c.okved_extra or []): + self.okved_extra_listbox.insert(tk.END, item) # Склонения idx_map = {'nomn': 1, 'gent': 2, 'datv': 3, 'accs': 4, 'ablt': 5, 'loct': 6} @@ -1909,7 +1916,10 @@ class DokoGenApp: w.set(val) elif isinstance(w, tk.Listbox): w.delete(0, tk.END) - lines = [ln.strip() for ln in str(val).split('\n') if ln.strip()] + val = str(val) + if model_field in ('threats', 'incidents'): + val = normalize_threats(val) + lines = [ln.strip() for ln in val.split('\n') if ln.strip()] if model_field == 'threats': from .threat_rules import sort_threats_by_ubi lines = sort_threats_by_ubi(lines)