- В начале нужно считать файл табличным документом 1С
Из файла Excel через в табличный документ 1С
ТабличныйДокумент = Новый ТабличныйДокумент; Попытка ТабличныйДокумент.Прочитать(ПутьКфайлу); Исключение Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Не удалось прочитать файл Excel, по причине: " + ОписаниеОшибки(); Сообщение.Сообщить(); Возврат; КонецПопытки; |
2. Использовать табличный документ как ИсточникДанных.
в объекте ПостроительЗапроса
Из файла через построитель запроса в табличный документ 1С
Построитель = Новый ПостроительЗапроса; Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область()); Построитель.ЗаполнитьНастройки(); Построитель.Выполнить(); ТЗ = Построитель.Результат.Выгрузить(); |
или в объекте ПостроительОтчета
Построитель = Новый ПостроительОтчета;Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область(1, 1, ТабличныйДокумент.ВысотаТаблицы, ТабличныйДокумент.ШиринаТаблицы));Построитель.Выполнить();ТЗ = Построитель.Результат.Выгрузить();
Из файла через построитель отчета в таблицу значений
Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область(1, 1, ТабличныйДокумент.ВысотаТаблицы, ТабличныйДокумент.ШиринаТаблицы));
Построитель.Выполнить();
ТЗ = Построитель.Результат.Выгрузить();
Полученную таблицу значений можно передать как параметр запроса и выполнить по ней сопоставление через ЛЕВОЕ СОЕДИНЕНИЕ
Результирующий код может быть примерно таким:
ТабличныйДокумент = Новый ТабличныйДокумент;
ПутьКфайлу = "\\shared\xls_load.xlsx";
Попытка
ТабличныйДокумент.Прочитать(ПутьКфайлу);
Исключение
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось прочитать файл Excel, по причине: " + ОписаниеОшибки();
Сообщение.Сообщить();
Возврат;
КонецПопытки;
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());
Построитель.ЗаполнитьНастройки();
Построитель.Выполнить();
ТЗ = Построитель.Результат.Выгрузить();
+ There are no comments
Add yours