Показатель 8: если «Снижение уровня дохода» не заполнено — оценка ущерба «доход за год × 5» (наихудший сценарий), с пометкой в обосновании и окне авторасчёта ПП-127
This commit is contained in:
@@ -2306,6 +2306,11 @@ class DokoGenApp:
|
||||
_bv8 = getattr(isys, 'balance_value', '') or ''
|
||||
_bvn8 = _num(_bv8)
|
||||
_dincome_def = _d_loss or _bvn8
|
||||
_dincome_est = False
|
||||
if not _dincome_def and _d_avg:
|
||||
# Фолбэк: ущерб не заполнен → оценка «доход за год × 5» (наихудший сценарий)
|
||||
_dincome_def = _d_avg * 5
|
||||
_dincome_est = True
|
||||
e_dincome = _row("Снижение уровня дохода от нарушения критических процессов (руб.):",
|
||||
'dincome', f"{_dincome_def:,.0f}" if _dincome_def else '')
|
||||
if _d_loss:
|
||||
@@ -2316,6 +2321,10 @@ class DokoGenApp:
|
||||
ttk.Label(frm, text="⚠️ ΔДоходов — подставлена балансовая стоимость объекта КИИ "
|
||||
f"({_bvn8:,.0f} руб.); можно поправить.",
|
||||
foreground='#8a6d00', wraplength=900, justify=tk.LEFT).pack(anchor=tk.W)
|
||||
elif _dincome_est:
|
||||
ttk.Label(frm, text="⚠️ ΔДоходов — не заполнено, принята оценка «доход за год × 5» "
|
||||
f"({_d_avg:,.0f} × 5 = {_dincome_def:,.0f} руб., наихудший сценарий); можно поправить.",
|
||||
foreground='#8a6d00', wraplength=900, justify=tk.LEFT).pack(anchor=tk.W)
|
||||
else:
|
||||
ttk.Label(frm, text="⚠️ ΔДоходов — не заполнено: введите вручную или заполните "
|
||||
"«Снижение уровня дохода» во вкладке «Организация».",
|
||||
|
||||
+13
-3
@@ -434,6 +434,11 @@ def _calc_criterion_8_9(company, isys, num):
|
||||
r_avg = (sum(incs) / len(incs)) if incs else None
|
||||
|
||||
if num == '8':
|
||||
# Фолбэк: ущерб не заполнен → оценка «доход за год × 5» (наихудший сценарий)
|
||||
d_estimated = False
|
||||
if d is None and r_avg:
|
||||
d = r_avg * 5
|
||||
d_estimated = True
|
||||
if d is None or not r_avg:
|
||||
return ("Показатель применим. Для расчёта заполните данные организации: "
|
||||
"«Снижение уровня дохода» и доходы за 5 лет, или балансовую стоимость объекта КИИ.", None)
|
||||
@@ -448,9 +453,14 @@ def _calc_criterion_8_9(company, isys, num):
|
||||
cat = None
|
||||
text = (f"Реализация компьютерных атак на объект не приведет к снижению доходов субъекта КИИ. "
|
||||
f"Объем среднегодового дохода субъекта КИИ (с учетом НДС), усредненный за прошедший "
|
||||
f"5-летний период, составляет {r_avg:,.2f} руб. В случае выхода из строя объекта КИИ "
|
||||
f"потребуется замена, установка и настройка, стоимость которых составит около {d:,.2f} руб. "
|
||||
f"Абсолютный ущерб субъекта КИИ: U={d:,.2f} руб. "
|
||||
f"5-летний период, составляет {r_avg:,.2f} руб. ")
|
||||
if d_estimated:
|
||||
text += (f"Снижение уровня дохода не заполнено, поэтому оценка ущерба принята по наихудшему "
|
||||
f"сценарию: доход за год × 5 лет = {r_avg:,.2f} × 5 = {d:,.2f} руб. ")
|
||||
else:
|
||||
text += (f"В случае выхода из строя объекта КИИ потребуется замена, установка и настройка, "
|
||||
f"стоимость которых составит около {d:,.2f} руб. ")
|
||||
text += (f"Абсолютный ущерб субъекта КИИ: U={d:,.2f} руб. "
|
||||
f"Показатель ущерба субъекту КИИ: U_8 = U / R_год = {d:,.2f} / {r_avg:,.2f} "
|
||||
f"= {val_pct:.6f} %.")
|
||||
if cat:
|
||||
|
||||
Reference in New Issue
Block a user