1 Создал обработку, в ней форму.
2. Добавил реквизит «ТабличныйДокумент» с типом ТабличныйДокумент перетащил на форму.
3. Создал Команду «ЗагрузитьExcel» тоже перетянул на форму.
4. Для команды взял код из обработки ЗагрузкаДанныхИзтабличногоДокумента с ИТС:
&НаКлиенте
Процедура ЗагрузитьExcel(Команда)
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Заголовок = «Прочитать табличный документ из файла»;
ДиалогВыбораФайла.Фильтр = «Табличный документ (Лист Excel (*.xls)|*.xls|»;
Если ДиалогВыбораФайла.Выбрать() Тогда
ФайлНаДиске = Новый Файл(ДиалогВыбораФайла.ПолноеИмяФайла);
мПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент,ДиалогВыбораФайла.ПолноеИмяФайла);
КонецЕсли;
КонецПроцедуры
И собственно сама функция: мПрочитатьТабличныйДокументИзExcel
// Функция считывает в табличный документ данные из файла в формате Excel
//
// Параметры:
// ТабличныйДокумент — ТабличныйДокумент, в который необходимо прочитать данные
// ИмяФайла — имя файла в формате Excel, из которого необходимо прочитать данные
// НомерЛистаExcel — номер листа книги Excel, из которого необходимо прочитать данные
//
// Возвращаемое значение:
// Истина, если файл прочитан, Ложь — иначе
//
Функция мПрочитатьТабличныйДокументИзExcel(ТабличныйДокумент, ИмяФайла, НомерЛистаExcel = 1) Экспорт
xlLastCell = 11;
ВыбФайл = Новый Файл(ИмяФайла);
Если НЕ ВыбФайл.Существует() Тогда
Сообщить(«Файл не существует!»);
Возврат Ложь;
КонецЕсли;
Попытка
Excel = Новый COMОбъект(«Excel.Application»);
Excel.WorkBooks.Open(ИмяФайла);
//Состояние(«Обработка файла Microsoft Excel…»);
ExcelЛист = Excel.Sheets(НомерЛистаExcel);
Исключение
Сообщить(«Ошибка. Возможно неверно указан номер листа книги Excel.»);
Возврат ложь;
КонецПопытки;
ТабличныйДокумент.Очистить();
ActiveCell = Excel.ActiveCell.SpecialCells(xlLastCell);
RowCount = ActiveCell.Row;
ColumnCount = ActiveCell.Column;
Для Column = 1 По ColumnCount Цикл
ТабличныйДокумент.Область(«C» + Формат(Column, «ЧГ=»)).ШиринаКолонки = ExcelЛист.Columns(Column).ColumnWidth;
КонецЦикла;
Для Row = 1 По RowCount Цикл
Для Column = 1 По ColumnCount Цикл
ТабличныйДокумент.Область(«R» + Формат(Row, «ЧГ=») +»C» + Формат(Column, «ЧГ=»)).Текст = ExcelЛист.Cells(Row,Column).Text;
КонецЦикла;
КонецЦикла;
Excel.WorkBooks.Close();
Excel = 0;
Возврат Истина;
КонецФункции // ()
СсылкаНаФайл
У меня файл с 11000 строк и 25 столбцами грузился наверно час.
Собственно вся байда для того чтобы загрузить потом в справочник с табличной частью, в типовой обработке этого нет. Вообще меня убивает ента претензия 1с на универсальность.
Лучше по полочкам все разложили чем мутить.
В обработке еще игрался с загрузкой элементов в справочник с табличной частью. Кому интересно посмотрите. Ха я программист тот ещё. но вот понадобилось найти просто код с записью элементов в справочник с табличной частью, каково же было мое удивление найти это в моем блоге, а по большему поисковики тока ссылки на типа готовые решение выдают , а мне это надо? Ну на самом деле можно было и в справке 1с посмотреть. И то быстрее было бы чем гуглить, одна беда поисковая система в синтаксис-помошнике. Они б лучше не версии щелкали а в нормальное состояние её провели. Глядишь народ и прозрел бы.