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