From 7742cb1e10cf76ccadd532607feade744fd07cff Mon Sep 17 00:00:00 2001 From: prog1764 Date: Tue, 4 Aug 2026 23:17:48 +0400 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B8=20?= =?UTF-8?q?=F0=9F=A7=AE=20=D1=80=D0=B0=D1=81=D1=87=D1=91=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BA=D0=B0=D0=B7=D0=B0=D1=82=D0=B5=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9=208/9=20=E2=80=94=20NameError=20=D0=B2=20=5Fopen=5Fcalc?= =?UTF-8?q?=5Fdialog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit В _open_calc_dialog использовался _num2 (определён только в _auto_fill_criteria) — tkinter молча глотал исключение, кнопки «молчали». Заменено на _num (определён внутри _open_calc_dialog). Дополнительно isys определён в начале диалога ПП 127 для авторасчёта (доходы/ущерб/балансовая стоимость объекта). --- dokogen/ui.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/dokogen/ui.py b/dokogen/ui.py index 009447f..d4b0596 100644 --- a/dokogen/ui.py +++ b/dokogen/ui.py @@ -2052,6 +2052,11 @@ class DokoGenApp: messagebox.showerror("Ошибка", f"Не удалось загрузить таблицу ПП 127: {e}") return + # Текущий объект КИИ (для авторасчёта п. 8/9: доходы, ущерб, балансовая стоимость) + isys = None + if self._current_is_idx is not None and self._current_is_idx < len(self.model.information_systems): + isys = self.model.information_systems[self._current_is_idx] + # Применимость показателей по сфере объекта (Распоряжение ПРФ № 360-р) applicable = None # None = все показатели применимы try: @@ -2516,10 +2521,10 @@ class DokoGenApp: e_profit = e_tax = None # Доходы за 5 лет — из данных организации (поля «Доходы за 5 лет») - _incs = [_num2(getattr(self.model, f'income_year_{i}', '') or '') for i in range(1, 6)] + _incs = [_num(getattr(self.model, f'income_year_{i}', '') or '') for i in range(1, 6)] _incs = [x for x in _incs if x is not None] _d_avg = (sum(_incs) / len(_incs)) if _incs else None - _d_loss = _num2(getattr(self.model, 'income_loss', '') or '') + _d_loss = _num(getattr(self.model, 'income_loss', '') or '') e_dincome = _row("Суммарный экономический ущерб от нарушения критических процессов (руб.):", 'dincome', f"{_d_loss:,.0f}" if _d_loss else '') e_budget = _row("Доходы субъекта КИИ, усреднённые за 5 лет (руб.):",