Построитель запроса. Табличный документ. Загрузка из Excel
Интересные возможности объектов ТабличныйДокумент и ПостроительЗапроса, которые позволяют загружать данные из Excel без установки Excel
Пример:
https://bitbucket.org/ayvas/workspace/snippets/yXEkBz
&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Показать(Новый ОписаниеОповещения("ОбработкаВыбораФайлов", ЭтаФорма));
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбораФайлов(СписокФайлов, ДополнительныеПараметры) Экспорт
ПутьКФайлу = СписокФайлов[0];
КонецПроцедуры // ()
&НаСервере
Функция ПрочитатьТабличныйДокумент(ТабличныйДокументИсточник)
КоличествоСтолбцов = ТабличныйДокументИсточник.ШиринаТаблицы;
Если КоличествоСтолбцов = 0 Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
ТабличныйДокумент = Новый ТабличныйДокумент;
Для НомерСтолбца = 1 По КоличествоСтолбцов Цикл
ТабличныйДокумент.Область(1, НомерСтолбца, 1, НомерСтолбца).Текст = "Номер_" + Формат(НомерСтолбца,"ЧГ=0");
КонецЦикла;
ТабличныйДокумент.Вывести(ТабличныйДокументИсточник);
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());
Построитель.Выполнить();
ТаблицаЗначенийРезультат = Построитель.Результат.Выгрузить();
Возврат ТаблицаЗначенийРезультат;
КонецФункции
&НаКлиенте
Процедура ЗаполнитьИзФайла(Команда)
ЗаполнитьИзФайлаНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИзФайлаНаСервере()
ТабличныйДокументДанные.Прочитать(ПутьКФайлу);
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьДанные(Команда)
ПолучитьДанныеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПолучитьДанныеНаСервере()
Данные = ПрочитатьТабличныйДокумент(ТабличныйДокументДанные);
КонецПроцедуры
Пример:
https://bitbucket.org/ayvas/workspace/snippets/yXEkBz
&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбораФайла.Показать(Новый ОписаниеОповещения("ОбработкаВыбораФайлов", ЭтаФорма));
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаВыбораФайлов(СписокФайлов, ДополнительныеПараметры) Экспорт
ПутьКФайлу = СписокФайлов[0];
КонецПроцедуры // ()
&НаСервере
Функция ПрочитатьТабличныйДокумент(ТабличныйДокументИсточник)
КоличествоСтолбцов = ТабличныйДокументИсточник.ШиринаТаблицы;
Если КоличествоСтолбцов = 0 Тогда
Возврат Новый ТаблицаЗначений;
КонецЕсли;
ТабличныйДокумент = Новый ТабличныйДокумент;
Для НомерСтолбца = 1 По КоличествоСтолбцов Цикл
ТабличныйДокумент.Область(1, НомерСтолбца, 1, НомерСтолбца).Текст = "Номер_" + Формат(НомерСтолбца,"ЧГ=0");
КонецЦикла;
ТабличныйДокумент.Вывести(ТабличныйДокументИсточник);
Построитель = Новый ПостроительЗапроса;
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());
Построитель.Выполнить();
ТаблицаЗначенийРезультат = Построитель.Результат.Выгрузить();
Возврат ТаблицаЗначенийРезультат;
КонецФункции
&НаКлиенте
Процедура ЗаполнитьИзФайла(Команда)
ЗаполнитьИзФайлаНаСервере();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИзФайлаНаСервере()
ТабличныйДокументДанные.Прочитать(ПутьКФайлу);
КонецПроцедуры
&НаКлиенте
Процедура ПолучитьДанные(Команда)
ПолучитьДанныеНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПолучитьДанныеНаСервере()
Данные = ПрочитатьТабличныйДокумент(ТабличныйДокументДанные);
КонецПроцедуры
Комментарии
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Прямая ссылка:
BB-код для форумов и блогов:
HTML-код:
BB-код для форумов и блогов:
HTML-код: