Написана обработка в которой приведены все стандартные способы загрузить данные из excel.
Скачать можно git и инфостарт.

В конфигурации приведено 5 методов загрузки информации из Excel в 1с, нет лишних оберток.
<p>
Отлично подходит как болванка, так и для обучению программированию.
</p>
#Область OLEСервер&НаКлиенте Процедура ЗагрузкаНаСервереOLE(Команда) нФайл = Новый Файл(ИмяФайла);
Если НЕ нФайл.Существует() Тогда Возврат; КонецЕсли; ДвоичДанные = Новый ДвоичныеДанные(ИмяФайла); ОбработкаОЛЕНаСервере(ДвоичДанные, нФайл.Расширение);КонецПроцедуры
&НаСервере Процедура ОбработкаОЛЕНаСервере(ДвоичДанные, Расширение) ФайлЭксельНаСервере = ПолучитьИмяВременногоФайла(Расширение); ДвоичДанные.Записать(ФайлЭксельНаСервере);
Попытка Эксель = Новый COMОбъект("Excel.Application"); Эксель.DisplayAlerts = 0; Эксель.Visible = 0; Исключение Return; КонецПопытки; // // Работаем с данными Excel // Эксель.Workbooks.Close(); Эксель.Application.Quit();КонецПроцедуры
#КонецОбласти
#Область ВнешнийИсточникДанных
&НаКлиенте Процедура ЗагрузкаСПомощьюВнешнегоИсточникаДанных(Команда) ЗагрузкаСПомощьюВнешнегоИсточникаДанныхНаСервере(); КонецПроцедуры
&НаСервере Процедура ЗагрузкаСПомощьюВнешнегоИсточникаДанныхНаСервере() ПараметрыПодключения = Новый ПараметрыСоединенияВнешнегоИсточникаДанных;
ПараметрыПодключения.СтрокаСоединения = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=" + ИмяФайла + ";"; ВнешниеИсточникиДанных.Excel.УстановитьОбщиеПараметрыСоединения(ПараметрыПодключения); ВнешниеИсточникиДанных.Excel.УстановитьСоединение(); Запрос = Новый Запрос("ВЫБРАТЬ | ExcelТаблицаТаблица1.КолонкаКод, | ExcelТаблицаТаблица1.Колонка2, | ExcelТаблицаТаблица1.Колонка3 КАК Колонка3 |ИЗ | ВнешнийИсточникДанных.Excel.Таблица.Таблица1 КАК ExcelТаблицаТаблица1 |ГДЕ | ExcelТаблицаТаблица1.Колонка3 > 1 |УПОРЯДОЧИТЬ ПО | Колонка3"); ТаблицаЭксельВ1с = Запрос.Выполнить().Выгрузить(); Для Каждого Стр Из ТаблицаЭксельВ1с Цикл Сообщить(Стр); // Обрабатываем КонецЦикла;КонецПроцедуры
#КонецОбласти
#Область OLEКлиент
&НаКлиенте Процедура ЗагрузкаНаКлиентеOLE(Команда) Попытка Эксель = Новый COMОбъект(“Excel.Application”); Эксель.DisplayAlerts = 0; Эксель.Visible = 0; Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки;
ЭксельКнига = Эксель.Workbooks.Open(ИмяФайла); КоличествоСтраниц = ЭксельКнига.Sheets.Count; // Перебираем все листы Для НомерЛиста = 1 По КоличествоСтраниц Цикл Лист = ЭксельКнига.Sheets(НомерЛиста); КоличествоСтрок = Лист.Cells(1, 1).SpecialCells(11).Row; КоличествоКолонок = Лист.Cells(1, 1).SpecialCells(11).Column; // Перебираем строки Для НомерСтроки = 1 По КоличествоСтрок Цикл // Перебираем колонки Для НомерКолонки = 1 По КоличествоКолонок Цикл ЗначениеВЯчейке = Лист.Cells(НомерСтроки, НомерКолонки).Value; // ... Сообщить(ЗначениеВЯчейке); // Обрабатываем занчение // ... КонецЦикла; КонецЦикла; КонецЦикла; Эксель.Workbooks.Close(); Эксель.Application.Quit();КонецПроцедуры
#КонецОбласти
#Область ТабличныйДокумент
&НаСервере Процедура ЗагрузкаВТабличныйДокументНаСервере() табДок = Новый ТабличныйДокумент;
Попытка табДок.Прочитать(ИмяФайла); Исключение Возврат; КонецПопытки; нТабзнч = Новый ТаблицаЗначений; нТабзнч.Колонки.Добавить("КолонкаКод", Новый ОписаниеТипов("Строка")); нТабзнч.Колонки.Добавить("Колонка2", Новый ОписаниеТипов("Строка")); нТабзнч.Колонки.Добавить("Колонка3", Новый ОписаниеТипов("Число")); КоличествоСтрок = табДок.ВысотаТаблицы; Для сч = 2 По КоличествоСтрок Цикл нСтр = нТабзнч.Добавить(); Попытка нСтр.КолонкаКод = Строка(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0;") + "C" + 1).ТекущаяОбласть.Текст); нСтр.Колонка2 = Строка(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0") + "C" + 2).ТекущаяОбласть.Текст); нСтр.Колонка3 = Число(табДок.ПолучитьОбласть("R" + Формат(сч, "ЧГ=0") + "C" + 3).ТекущаяОбласть.Текст); Исключение Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не удалось загрузить строку " + Строка(сч); Сообщение.Сообщить(); КонецПопытки; КонецЦикла;КонецПроцедуры
&НаКлиенте Процедура ЗагрузкаВТабличныйДокумент(Команда) ЗагрузкаВТабличныйДокументНаСервере(); КонецПроцедуры
#КонецОбласти
#Область ТабличныйДокументv2Построитель
&НаКлиенте Процедура ЗагрузкаВТабличныйДокументv2(Команда) ЗагрузкаВТабличныйДокументНаСервереv2(); КонецПроцедуры
&НаСервере Процедура ЗагрузкаВТабличныйДокументНаСервереv2() ТабДок = Новый ТабличныйДокумент; ТабДок.Прочитать(ИмяФайла);
ОбластиТаб = ТабДок.Область(1, 1, ТабДок.ВысотаТаблицы, ТабДок.ШиринаТаблицы); Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ОбластиТаб); Построитель.Выполнить(); ТабДанные = Построитель.Результат.Выгрузить(); Объект.Таблица1.Загрузить(ТабДанные); //Для Каждого Стр Из ТабДанные Цикл // Сообщить(стр); // Обрабатываем //КонецЦикла;КонецПроцедуры
#КонецОбласти
