Не проще загружать по имени КАТАЛОГА? (перебор файлов в каталоге)...
&НаКлиенте
Процедура ВыбратьФайлExcel(Команда)
Если ОбработатьВсеФайлыИзПапки Тогда
Если НЕ ПроверитьСуществованиеКаталога(Объект.ПутьКФайлу) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не вибрано каталог для імпорту!";
Сообщение.Поле = "Объект.ПутьКФайлу";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
Иначе
Если НЕ ПроверитьСуществованиеФайла(Объект.ПутьКФайлу) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не вибрано файл для імпорту!";
Сообщение.Поле = "Объект.ПутьКФайлу";
Сообщение.Сообщить();
Возврат;
КонецЕсли;
КонецЕсли;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Початок вибірки з файлу: "+СокрЛП(ТекущаяДата());
Сообщение.Сообщить();
Если ОбработатьВсеФайлыИзПапки Тогда
//много файлов
СписокФайлов = НайтиПутиФайлов(Объект.ПутьКФайлу);
Если СписокФайлов.Количество() = 0 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Немає файлів для імпорту в каталозі: "+СокрЛП(Объект.ПутьКФайлу);
Сообщение.Сообщить();
Возврат;
КонецЕсли;
Для КАЖДОГО текФ ИЗ СписокФайлов Цикл
Попытка
Двоичное = Новый ДвоичныеДанные(текФ);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Помилка відкриття файлу: "+СокрЛП(текФ)+ОписаниеОшибки();
Сообщение.Сообщить();
КонецПопытки;
Адрес = НЕОПРЕДЕЛЕНО;
Адрес = ПоместитьВоВременноеХранилище(Двоичное, ЭтаФорма.УникальныйИдентификатор);
ЗагрузкаНаСервере(Адрес, текФ);
КонецЦикла;
Иначе
//Один файл
Попытка
Двоичное = Новый ДвоичныеДанные(Объект.ПутьКФайлу);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Помилка відкриття файлу! "+ОписаниеОшибки();
Сообщение.Сообщить();
КонецПопытки;
Адрес = ПоместитьВоВременноеХранилище(Двоичное, ЭтаФорма.УникальныйИдентификатор);
ЗагрузкаНаСервере(Адрес);
КонецЕсли;
//Пост обработка
нТип = НужныйТип();
текН = 1;
Для КАЖДОГО текТип ИЗ нТип Цикл
текНужныйТип = текТип;
ОповеститьОбИзменении(текНужныйТип);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗагрузкаНаСервере(Адрес, текФайл = "")
темп_Путь = КаталогВременныхФайлов()+ "Import_KP_"+СтрЗаменить(СтрЗаменить(СтрЗаменить(Формат(ТекущаяДата(), "ЧГ=0"), ".", ""), ":", ""), "", "_")+".xlsx";
темп_файл = ПолучитьИзВременногоХранилища(Адрес);
темп_файл.Записать(темп_Путь);
СписокКолонок = Новый СписокЗначений;
СписокКолонок.Добавить("ВидЗапроса"); //1
СписокКолонок.Добавить("РегНомер"); //2
СписокКолонок.Добавить("ДатаДок"); //3
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Початок створення файлу переносу: "+СокрЛП(ТекущаяДата());
Сообщение.Сообщить();
ТабЗагрузки = НЕОПРЕДЕЛЕНО;
ТабЗагрузки = ЗагрузитьЭксель(темп_Путь,СписокКолонок);
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Файл перенесення сформовано: "+СокрЛП(ТекущаяДата());
Сообщение.Сообщить();
...
&НаСервере
Функция ЗагрузитьЭксель(Путь, СписокКолонки)
ТЗФайл = Новый ТаблицаЗначений;
Попытка
ex = ПолучитьCOMобъект("","Excel.Application");
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст ="Excel Application не створено!!";
Сообщение.Сообщить();
Возврат ТЗФайл;
КонецПопытки;
Попытка
ex.workbooks.open(Путь,1);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст ="Файл переміщено або видалено!";
Сообщение.Сообщить();
Возврат ТЗФайл;
КонецПопытки;
Для каждого Зн Из СписокКолонки Цикл
ТЗФайл.Колонки.Добавить(Зн.Значение);
КонецЦикла;
RCount = ex.Cells(1,1).SpecialCells(11).Row;
CCount = ex.Cells(1,1).SpecialCells(11).Column;
Для j = 6 по RCount цикл
Новая = ТЗФайл.Добавить();
Для i=1 По СписокКолонки.Количество() Цикл
ТД = СокрЛП(ex.ActiveSheet.Cells(j,i).Value);
ТД = СтрЗаменить(ТД,Символ(КодСимвола(Символы.ВК,1))," ");
Новая.Установить(i-1, ТД);
КонецЦикла;
КонецЦикла;
ex.workbooks.Close();
ex.quit();
Возврат ТЗФайл;
КонецФункции