ПП-127 п.6: остановка расчёта по остальным показателям при присвоении I категории (в автогенерации шаблона категорирования — «расчёт не проводится»)

This commit is contained in:
LocoAgent
2026-08-05 15:01:12 +04:00
parent 5bb6a2f5e9
commit c90660a0f8
+19 -1
View File
@@ -676,6 +676,7 @@ def _build_categorization_indicators(company, is_list):
isys = is_list[0] if is_list else None isys = is_list[0] if is_list else None
rows = [] rows = []
first_cat_num = None # номер показателя, по которому объект отнесён к I категории (п. 6 ПП-127)
for grp in criteria: for grp in criteria:
section = grp.get('criteria', '') section = grp.get('criteria', '')
for ind in grp.get('indicators', []): for ind in grp.get('indicators', []):
@@ -688,7 +689,20 @@ def _build_categorization_indicators(company, is_list):
value = '' value = ''
justification = '' justification = ''
category = '' category = ''
if not applicable: if first_cat_num is not None:
# Остановка расчёта: объект уже отнесён к I категории по одному из показателей
# (п. 6 Правил, утв. ПП РФ № 127: «расчет по остальным показателям не проводится»).
if applicable:
value = ''
justification = (f"Расчёт по данному показателю не проводится: объект отнесён к "
f"I категории значимости по показателю {first_cat_num} "
f"(п. 6 Правил категорирования, утв. ПП РФ № 127).")
category = ''
else:
value = 'Показатель не применим.'
justification = (just.get(num) or just.get(grp_num)
or f"Показатель не применим к объекту КИИ организации сферы «{sphere or ''}».")
elif not applicable:
value = 'Показатель не применим.' value = 'Показатель не применим.'
justification = (just.get(num) or just.get(grp_num) justification = (just.get(num) or just.get(grp_num)
or f"Показатель не применим к объекту КИИ организации сферы «{sphere or ''}».") or f"Показатель не применим к объекту КИИ организации сферы «{sphere or ''}».")
@@ -714,6 +728,10 @@ def _build_categorization_indicators(company, is_list):
justification = (just.get(num) or just.get(grp_num) justification = (just.get(num) or just.get(grp_num)
or 'Показатель применим к объекту КИИ; значение определяется по данным объекта.') or 'Показатель применим к объекту КИИ; значение определяется по данным объекта.')
# Если по показателю присвоена I категория — фиксируем для остановки расчёта
if first_cat_num is None and category.startswith('I'):
first_cat_num = num
rows.append({ rows.append({
'section': section, 'section': section,
'name': name, 'name': name,