В начало

Чтение XLS-файла с ФТП-папки

 

Листинг. Модуль формы внешней обработки

&НаСервере

Процедура ЧтениеИксельФайла(ИмяВременногоФайла)      

            ТабличныйДокумент = Новый ТабличныйДокумент;

            ТабличныйДокумент.Прочитать(ИмяВременногоФайла);        

                       

            //Заголовки таблицы

            Заголовки = "";

            Для НомерКолонки = 1 По ТабличныйДокумент.ШиринаТаблицы Цикл

                        Заголовки = Заголовки + НомерКолонки + " " + СокрЛП(ТабличныйДокумент.Область(1, НомерКолонки).Текст) + Символы.ПС; 

            КонецЦикла;

           

            //==================

            //Заголовки колонок

            //==================

            //1 ID

            //2 Регион

            //3 Группа компаний

            //4 Компания

            //5 ФИО

            //6 Должность

            //7 Телефон

            //8 Статус

            //9 Подтвердили

            //10 Причина

            //11 Тех. своя

            //12 Тех. найм

            //13 Т

            //14 Люди свои

            //15 Люди найм

            //16 Л

            //17 Звонки

            //18 Время звонков

 

            //===================

            //Читаем из Иксель 

            //===================

            Для НомерСтроки = 2 По ТабличныйДокумент.ВысотаТаблицы Цикл//Первая строка - заголовки столбцов 

                       

                        //============================

                        //Строковые значения колонок

                        //============================

                        иксID = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 1).Текст);

                        иксРегион = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 2).Текст);

                        иксГруппаКомпаний = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 3).Текст);

                        иксКомпания = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 4).Текст);

                        иксФИО = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 5).Текст);

                        иксДолжность = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 6).Текст);

                        иксТелефон = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 7).Текст);

                        иксСтатус = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 8).Текст);

                        иксПодтвердили = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 9).Текст);

                        иксПричина = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 10).Текст);

                        иксТехСвоя = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 11).Текст);

                        иксТехНайм = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 12).Текст);

                        иксТ = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 13).Текст);

                        иксЛюдиСвои = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 14).Текст);

                        иксЛюдиНайм = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 15).Текст);

                        иксЛ = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 16).Текст);

                        иксЗвонки = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 17).Текст);

                        иксВремяЗвонков = СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 18).Текст);

                       

                        //Очистить р/с

                        //Записать данные в р/с

                       

            КонецЦикла;//ТабличныйДокумент         

КонецПроцедуры//ЧтениеИксельФайла

 

&НаСервере

Функция ЗагрузитьФайлыСФТП(Каталог, ИмяФайла, Сервер, Порт, Пользователь, Пароль)

           

            SSL = Новый ЗащищенноеСоединениеOpenSSL(Неопределено, Неопределено);

           

            Попытка

                        FTPСоединение = Новый FTPСоединение(Сервер, Порт, Пользователь, Пароль, Неопределено, Истина, 0, SSL);    

            Исключение

                        Возврат Неопределено;

            КонецПопытки;       

           

            FTPСоединение.УстановитьТекущийКаталог("/");          

            КаталогТемп = КаталогВременныхФайлов();     

            МассивФайлов =  FTPСоединение.НайтиФайлы(Каталог, ИмяФайла, Ложь);

           

            Если МассивФайлов.Количество() = 0 Тогда

                        Возврат Неопределено;

            КонецЕсли;

           

            Для Каждого Фл из МассивФайлов Цикл

                       

                        ТемпФайл = КаталогВременныхФайлов() + Фл.Имя;

                       

                        Попытка                               

                                   FTPСоединение.Получить(Фл.ПолноеИмя, ТемпФайл);

                                   ЧтениеИксельФайла(ТемпФайл);                         

                        Исключение

                        КонецПопытки;

                       

                        УдалитьФайлы(ТемпФайл);

                       

            КонецЦикла;

           

            FTPСоединение = Неопределено;

                       

КонецФункции//ЗагрузитьФайлыСФТП

 

&НаКлиенте

Процедура ЗагрузитьОтчет(Команда)        

           

            ЗагрузитьФайлыСФТП("", "файл.xlsx", "12.34.56.78", 21, "Логин", "Пароль");

 

КонецПроцедуры