Attribute VB_Name = "IN_FILE"
Sub Convert_File()
    lcFileName = Workbooks("MES_S1").Sheets("Service").Range("A34")
    Workbooks.OpenText FileName:=lcFileName, Origin:=xlMSDOS, _
        StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, Comma:=False, _
        Space:=True, Other:=False, FieldInfo:=Array(Array(1, 9), Array(2, 2), Array(3 _
        , 2), Array(4, 2), Array(5, 1), Array(6, 2), Array(7, 2), Array(8, 2), Array(9, 2))
End Sub

Sub Fill_data_from_File()

lcNameBook = Workbooks("MES_S1").Sheets("Service").Range("A31")
Set lwbReport = Workbooks("MES_S1").Sheets(Sheets("Service").Range("B19").Text)
Set lwbFile = Workbooks(lcNameBook).Sheets(1)
'Проверяем а есть ли данные
If lwbFile.Range("A7") = "" Or Not IsNumeric(lwbFile.Range("A7")) Then
    'Данных нет отчет пуст
    Workbooks("MES_S1").Saved = True
    Workbooks(lcNameBook).Saved = True
    Application.Quit
End If
'графа для заполнения
lnGraf = pnAddress_Col + 2

lnStartRow = 7
lnStartCol = 1

lbExit = False ' флаг выхода из цикла
While Not lbExit
    For nCnt = 1 To 8 Step 2
        lcKodStr = Trim(lwbFile.Cells(lnStartRow, nCnt))
        If Not lcKodStr = "" Then
            If IsNumeric(lcKodStr) Then
                lcSumma = Val(lwbFile.Cells(lnStartRow, nCnt + 1))
                ' Снятие защиты листа
                lwbReport.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
                Set LookRange = lwbReport.Range("CODE_STR").Find(lcKodStr, LookIn:=xlFormulas, lookat:=xlWhole)
                If Not LookRange Is Nothing Then
                     lwbReport.Cells(LookRange.Row, lnGraf).Value = lcSumma
                End If
            Else
                ' Осталась подпись
                lcFooter = ""
                For nCntf = 1 To 8
                    lcFooter = lcFooter + " " + lwbFile.Cells(lnStartRow, nCntf)
                Next
                ' Снятие защиты листа
                lwbReport.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
                pPermitUpd = False
                lwbReport.Range("FOOTER") = Trim(lcFooter)
                lbExit = True
                Exit For
            End If
        Else
                'проверим следущую стрoку
                If Not lwbFile.Cells(lnStartRow + 1, lnStartCol) = "" Then
                    ' Строчка не пустая считываем данные дальше
                    Exit For
                End If
                ' проверим вторую строчку
                If lwbFile.Cells(lnStartRow + 2, lnStartCol) = "" Then
                    'Пустая строка конец файла
                    lbExit = True
                    Exit For
                Else
                    ' или данные или подпись отчета
                    If IsNumeric(lwbFile.Cells(lnStartRow + 2, lnStartCol)) Then
                        lnStartRow = lnStarRow + 1
                        Exit For
                    Else
                        ' Осталась подпись
                        lcFooter = ""
                        For nCntf = 1 To 8
                            lcFooter = lcFooter + " " + lwbFile.Cells(lnStartRow, nCntf)
                        Next
                        ' Снятие защиты листа
                        lwbReport.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False
                        pPermitUpd = False
                        lwbReport.Range("FOOTER") = Trim(lcFooter)
                        lbExit = True
                        Exit For
                    End If
                End If
        End If
    Next
    lnStartRow = lnStartRow + 1
Wend
Workbooks(lcNameBook).Close
End Sub

Sub Input_File()
    Call INITVARS
    Call Server_Connect
    Call Convert_File
    pPermitUpd = True
    Call Fill_data_from_File
    Call TOOLBAR_INIT
    Call MENU_INIT
    Call FORMAT_CELL
    Call HideLists
    Call SETUP_PRINT
    Call REPORT_PROTECT
    pPermitUpd = True
    pPermitDepends = True
End Sub

