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

15.11.2021 08:20:44   Вася Котов (freenet)    12593

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. asupigor 31.10.23 07:37 Сейчас в теме
Спасибо большое, очень помогло!
Оставьте свое сообщение
Леонид Паутов, Анастасия Андриянова. Промышленное тестирование конфигураций в 1С
Валерий Дыков. Как устроен изнутри расчет себестоимости в типовых конфигурациях
Олег Репников. ChatGPT в помощь 1С-разработчику: мост между языками программирования
Станислав Косолапов. Как спецификация OpenAPI помогает писать тесты http-сервисов
Гульнара Гайсина. ChatGPT: от кода до коммуникаций
Карина Самигуллина. Технологии и преимущества разработки решений на общем коде. Как разрабатывается 1С:РМК, 1C:Розница и 1С:УНФ
Андрей Хашкин. Опыт применения Vanessa-Automation и других инструментов для обучения, ролевой модели и тестирования
Константин Редькин. NativeAPI – это (не) страшно. Как и зачем мы используем websocket в EmplDocs
Антон Иванов. Жажда программирования – темный попутчик разработчика
Тимур Кашафутдинов. Логирование в приложениях