Консультация Беларусь
Консультация Россия
Блог

Как прочитать Excel в Таблицу значений в 1С

Рассмотрим чтение файла Excel в 1С на примере следующей задачи:
Есть внешняя обработка, на форме которой расположена таблица для отображения информации о товарах:
По кнопке "Прочитать Excel" нужно дать возможность пользователю выбрать файл Excel, после чего заполнить таблицу на форме данными из файла:
Ниже приведен программный код, решающий эту задачу:
&НаКлиенте
Асинх Процедура ПрочитатьExcel(Команда)
	
	ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
	ПараметрыДиалога.Заголовок = "Выберите файл";
	ПараметрыДиалога.Фильтр = "Таблица Excel | *.xls; *.xlsx";
	
	ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога);
	Если ОписаниеФайла <> Неопределено Тогда
		ПрочитатьExcelВТаблицуЗначений(ОписаниеФайла.Адрес, ОписаниеФайла.СсылкаНаФайл.Расширение);
	КонецЕсли;
	
	ПоказатьОповещениеПользователя("Обработка файла завершена!");
	
КонецПроцедуры                    

&НаСервере
Процедура ПрочитатьExcelВТаблицуЗначений(АдресДанных, РасширениеФайла)
	
	ПутьКфайлу = ПолучитьИмяВременногоФайла(РасширениеФайла);         
	
	Данные = ПолучитьИзВременногоХранилища(АдресДанных);
	Данные.Записать(ПутьКфайлу);
	
	ТабДок = Новый ТабличныйДокумент;
	
	Попытка
		// чтение данных из файла в табличный документ
		ТабДок.Прочитать(ПутьКфайлу);
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не удалось прочитать файл, по причине: " + ОписаниеОшибки();
		Сообщение.Сообщить();                                                        
		Возврат;
	КонецПопытки;
	
	// построение запроса к области ячеек табличного документа
	// с помощью объекта встроенного языка ПостроительЗапроса
	Построитель = Новый ПостроительЗапроса;
	Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());
	Построитель.ЗаполнитьНастройки();
	
	// выполнение запроса (результат записывается в свойство "Результат")
	Построитель.Выполнить();
	
	// выгрузка результата построителя запроса в таблицу значений
	ТаблицаИзExcel = Построитель.Результат.Выгрузить();
	
	// загрузка данных в таблицу на форме
	ТаблицаТоваров.Загрузить(ТаблицаИзExcel);

КонецПроцедуры // ПрочитатьExcelВТаблицуЗначений()
Хочешь научиться работать с файлами разных форматов (TXT, CSV, XML, DBF, JSON) в 1С?
Тогда, возможно, тебе пригодится наш обновленный курс по работе с файлами в 1С. Подробнее.
Программирование