Шаблон для быстрой загрузки различных файлов Excel.
В новых версиях платформы, у табличного документа можно воспользоваться методом Прочитать(ИмяФайла, СпособЧтенияЗначений) для загрузки данных из файлов *.xls, *.xlsx, причем необязательно указывать формат загружаемого файла (второй необязательный параметр).
СпособЧтенияЗначений - Определяет, каким образом нужно интерпретировать значения, считываемые из исходного документа XLS, XLSX или ODS.
Принцип работы обработки
1) Загрузка данных из файла Excel в новый табличный документ:
//загрузка из Excel в табличный документ
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.Прочитать(ИмяФайлаНаСервере);
2) Загружаем в построитель отчета как источник данных
ВсегоСтрок = ТабДокумент.ВысотаТаблицы;
ВсегоКолонок = ТабДокумент.ШиринаТаблицы;
Если ВсегоСтрок = 0 Тогда
Возврат;
КонецЕсли;
Область = ТабДокумент.Область(1,1,ВсегоСтрок,ВсегоКолонок);
ИсточникДанных = Новый ОписаниеИсточникаДанных(Область);
ПостроительОтчета = Новый ПостроительОтчета;
ПостроительОтчета.ИсточникДанных = ИсточникДанных;
3) Выгружаем результат построителя в ТЗ
ПостроительОтчета.Выполнить();
//в таблице значений - таблица загруженных данных
ТабЗначений = ПостроительОтчета.Результат.Выгрузить();
При этом имена колонок формируются по первой строке таблице (заголовки), преобразуя текст в ячейке по правилам именования (пример: "Дата рождения" преобразуется "ДатаРождения".
Важно: метод Прочитать() не работает на клиенте, поэтому при работе на управляемых формах в клиент-серверной базе, необходимо будет передать сам файл с клиента через временное хранилище на сервер.
В дальнейшем можно работать непосредственно с таблицей значений.
В Обработке - пример реализации шаблона, для обычных и управляемых форм (одна обработка с двумя формами), при этом:
1) диалог выбора файла Excel,
2) для управляемых форм - передача через временное хранилище файла с клиента на сервер,
3) автоматическое создание колонок, реквизитов и вывод на форму вновь загруженной таблицы значений.
Тестировалось на платформе 8.3.12.1567, на конфигурациях УТ 10.3 и ЗУП 3.1.