Построитель запроса. Табличный документ. Загрузка из Excel

15.11.2021 08:20:44   Вася Котов (ayv73@bk.ru)    1953

Интересные возможности объектов ТабличныйДокумент и ПостроительЗапроса, которые позволяют загружать данные из Excel без установки Excel

Пример:
https://bitbucket.org/ayvas/workspace/snippets/yXEkBz

&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;

ДиалогВыбораФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

ДиалогВыбораФайла.Показать(Новый ОписаниеОповещения("ОбработкаВыбораФайлов", ЭтаФорма));

КонецПроцедуры

&НаКлиенте
Процедура ОбработкаВыбораФайлов(СписокФайлов, ДополнительныеПараметры) Экспорт

ПутьКФайлу = СписокФайлов[0];

КонецПроцедуры // ()

&НаСервере
Функция ПрочитатьТабличныйДокумент(ТабличныйДокументИсточник)

КоличествоСтолбцов = ТабличныйДокументИсточник.ШиринаТаблицы;

Если КоличествоСтолбцов = 0 Тогда
  Возврат Новый ТаблицаЗначений;
КонецЕсли;

ТабличныйДокумент = Новый ТабличныйДокумент;
Для НомерСтолбца = 1 По КоличествоСтолбцов Цикл
  ТабличныйДокумент.Область(1, НомерСтолбца, 1, НомерСтолбца).Текст = "Номер_" + Формат(НомерСтолбца,"ЧГ=0");
КонецЦикла;

ТабличныйДокумент.Вывести(ТабличныйДокументИсточник);

Построитель = Новый ПостроительЗапроса;

Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());
Построитель.Выполнить();
ТаблицаЗначенийРезультат = Построитель.Результат.Выгрузить();

Возврат ТаблицаЗначенийРезультат;

КонецФункции

&НаКлиенте
Процедура ЗаполнитьИзФайла(Команда)

ЗаполнитьИзФайлаНаСервере();

КонецПроцедуры

&НаСервере
Процедура ЗаполнитьИзФайлаНаСервере()

ТабличныйДокументДанные.Прочитать(ПутьКФайлу);

КонецПроцедуры

&НаКлиенте
Процедура ПолучитьДанные(Команда)

ПолучитьДанныеНаСервере();

КонецПроцедуры

&НаСервере
Процедура ПолучитьДанныеНаСервере()

Данные = ПрочитатьТабличныйДокумент(ТабличныйДокументДанные);

КонецПроцедуры

Категории:
 Программирование

В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
В этой теме еще нет сообщений.
Оставьте свое сообщение
Максим Артеменко. Варианты применения СКД вне отчетов в отраслевых конфигурациях
1С разработка. Mac OS. Parallels desktop
Александр Крынецкий. Кейсы решения задач на СКД
1С. Сравнение и объединение. Дополнительные инструменты. KDiff3.
Избыточные блокировки. Подготовка к сдаче экзамена 1С:Эксперт
Управляемые взаимоблокировки. Подготовка к сдаче экзамена 1С:Эксперт.
Ожидания на управляемых блокировках. Подготовка к сдаче экзамена 1С:Эксперт
Игорь Антонов. Реактивный интерфейс для 1С:Предприятия
Сергей Харламов. Уникальный дизайн в 1С на примере разработки реального продукта
Матвей Серегин. Когда интерфейсам 1С нужны веб-технологии