&НаСервере
Функция УбратьНеОбрабатываемыеСимволы(стр)
стр=стрзаменить(стр," ","_");
стр=стрзаменить(стр,"№","N");
стр=стрзаменить(стр,"-","_");
стр=стрзаменить(стр,".","_");
стр=стрзаменить(стр,",","_");
стр=стрзаменить(стр,"/","_");
возврат стр;
конецфункции
&НаСервере
Функция ПреобразоватьФайлHtmlВМассивТаблиц(АдресХранилищаФайла)
ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресХранилищаФайла);
ИмяВременногоФайлаСпр = ПолучитьИмяВременногоФайла("html");
ДвоичныеДанные.Записать(ИмяВременногоФайлаСпр);
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.ОткрытьФайл(ИмяВременногоФайлаСпр, "UTF-8");
ПостроительDOM = Новый ПостроительDOM;
ДокументHTML = ПостроительDOM.Прочитать(ЧтениеHTML);
ЭлементыТаблицы = ДокументHTML.ПолучитьЭлементыПоИмени("table");
МассивТаблиц=Новый Массив();
для каждого таблица из ЭлементыТаблицы цикл
ТЗ=Новый ТаблицаЗначений();
строкиТаблицы=таблица.ПолучитьЭлементыПоИмени("tr");
ПрочитаноСтрок=0;
для каждого строкаТаблицы из строкиТаблицы цикл
колонки=строкаТаблицы.ПолучитьЭлементыПоИмени("td");
ПрочитаноКолонок=0;
для каждого колонка из колонки цикл
если ПрочитаноСтрок=0 тогда
ТЗ.Колонки.Добавить(УбратьНеОбрабатываемыеСимволы(колонка.ТекстовоеСодержимое));
иначе
если ПрочитаноКолонок=0 тогда
нс=ТЗ.Добавить()
конецесли;
нс[ПрочитаноКолонок]=колонка.ТекстовоеСодержимое;
конецесли;
ПрочитаноКолонок=ПрочитаноКолонок+1;
конеццикла;
ПрочитаноСтрок=ПрочитаноСтрок+1;
конеццикла;
МассивТаблиц.Добавить(ТЗ);
конеццикла;
ЧтениеHTML.Закрыть();
конецфункции
&НаКлиенте
Процедура ЗагрузитьФайл(Команда)
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Фильтр = НСтр("ru = 'Текст'; en = 'Text'")+ "(*.xls)|*.xlsx";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбрать() Тогда
МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
ФайлСМС="";
Для Каждого ИмяФайла Из МассивФайлов Цикл
ФайлСМС=ИмяФайла;
конеццикла;
если ФайлСМС<>"" тогда
АдресХранилищаФайла = "";
Состояние("Перемещаю файл на сервер");
ПоместитьФайл(АдресХранилищаФайла, ФайлСМС, , Ложь, ЭтаФорма.УникальныйИдентификатор);
Состояние("Обрабатывается файл "+ФайлСМС);
таблицы=ПреобразоватьФайлHtmlВМассивТаблиц(АдресХранилищаФайла);
иначе
сообщить("Файл не выбран");
конецесли;
конецесли;
КонецПроцедуры