Dim isMain As Boolean, isTranche As Boolean, isAdd As Boolean
isMain = IsMainRow(r3g1)
isTranche = (r5g2 <> "")
isAdd = (r5g1 = "" And r1g1 = "")
If Not dictCurr.Exists(ID) Then
dictCurr(ID) = Array(0, False, 0#, 0#, 0#, 0#, 0#, False, 0#, 0#, 0#, 0#, False, False, "")
End If
currArr = dictCurr(ID)
currArr(4) = currArr(4) + SafeNum(arrC(r, cR10G2 - cOff))
' === ИСПРАВЛЕНИЕ: Основная строка определяется по заполненному R1G1 ===
If Trim(r1g1) <> "" Then
currArr(0) = r
currArr(1) = True
currArr(5) = SafeNum(arrC(r, cR5G8 - cOff)) ' R5G8 Основная (берётся напрямую из массива)
currArr(14) = CStr(r3g1) ' Сохраняем R3G1 для проверки правила 7212
End If
' Сумма по траншам R5G8 (агрегируется по всем строкам договора)
If isTranche Then
currArr(6) = currArr(6) + SafeNum(arrC(r, cR5G8 - cOff))
End If