Загрузка данных


        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