&НаСервере
Процедура ОбработатьВыборФайла(ПомещенныеФайлы, ДополнительныеПараметры)
Если
ПомещенныеФайлы = Неопределено
Тогда
Возврат;
КонецЕсли;
Для
каждого ПереданныйФайл Из ПомещенныеФайлы
Цикл
РасширениеФайла = "";
МассивСтрок = СтрРазделить(ПереданныйФайл.Имя, ".", Ложь);
Если
МассивСтрок.Количество() > 1 Тогда
РасширениеФайла = МассивСтрок[МассивСтрок.Количество() - 1];
КонецЕсли;
ДвоичныеДанные = ПолучитьИзВременногоХранилища(ПереданныйФайл.Хранение);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(РасширениеФайла);
ДвоичныеДанные.Записать(ИмяВременногоФайла);
ОбработатьВыборФайлаНаСервере(ИмяВременногоФайла);
КонецЦикла;
КонецПроцедуры
////////////////////////////////////////////////////////////////////////////////////////////////////
&НаСервере
Процедура ОбработатьВыборФайлаНаСервере(ИмяВременногоФайла) Экспорт
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.Прочитать(ИмяВременногоФайла);
Построитель
= Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());
Построитель.Выполнить();
ТЗ
= Построитель.Результат.Выгрузить();
//Добавляем колонки в "ТабДок"
Для
НомерКолонки = 1 По ТабличныйДокумент.ШиринаТаблицы
Цикл
КолонкаВШапке = СокрЛП(ТабличныйДокумент.Область(1, НомерКолонки).Текст);
КолонкаВШапкеБезПробелов = СтрЗаменить(КолонкаВШапке, " ", "");
нРеквизиты = Новый Массив;
нРеквизиты.Добавить(Новый РеквизитФормы(КолонкаВШапкеБезПробелов, Новый ОписаниеТипов("Строка"),
"Объект.ТабДок", КолонкаВШапке,
Истина));
ИзменитьРеквизиты(нРеквизиты);
нЭлемент = Элементы.Добавить(КолонкаВШапкеБезПробелов, Тип("ПолеФормы"),
Элементы.ТабДок);
нЭлемент.Вид = ВидПоляФормы.ПолеВвода;
нЭлемент.ПутьКДанным = "Объект.ТабДок."
+ КолонкаВШапкеБезПробелов;
КонецЦикла;
//Загружаем
"ТЗ" в "ТабДок"
Объект.ТабДок.Загрузить(ТЗ);
//Обрабатываем данные
Для
НомерСтроки = 2 По ТабличныйДокумент.ВысотаТаблицы
Цикл
Адрес
= СокрЛП(ТабличныйДокумент.Область(НомерСтроки, 1).Текст);
КадастровыйНомер = СокрЛП(ТабличныйДокумент.Область(НомерСтроки,
1).Текст);
//...
КонецЦикла;
КонецПроцедуры
//////////////////////////////////////////////////////////////////////////////////////////////////
&НаКлиенте
Процедура ВыбратьФайл(Команда)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Фильтр = НСтр("ru = 'Лист Microsoft Excel'; en = 'Лист Microsoft Excel'") +
"(*.xlsx)|*.xlsx;*.xls";
ОписаниеОповещения = Новый ОписаниеОповещения("ОбработатьВыборФайла",
ЭтаФорма);
НачатьПомещениеФайлов(ОписаниеОповещения,
, ДиалогОткрытияФайла, Истина, УникальныйИдентификатор);
КонецПроцедуры
|