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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. asupigor 31.10.23 07:37 Сейчас в теме
Спасибо большое, очень помогло!
Для отправки сообщения требуется регистрация/авторизация
Дмитрий Сидоренко. Что ты сделал для Open Source в свои годы?
Ринат Зиганшин. Как написать свой первый плагин для 1C:EDT. Дорожная карта новичка
Николай Ермаков. Sage: встраиваем мониторинги в разработку 1С на примере Т-Банка
Вадим Фоминых. 1С без дирижера: как построить бизнес-процессы через Kafka и хореографию событий
Андрей Овсянкин. Запуск DevOps в 1С с точки зрения не техники, но людей и процессов
Дмитрий Абрамов. ИИ-сервисы как LEGO: из чего на самом деле состоит корпоративный ИИ
Владимир Акимов. Полный cookbook «Разработки в 1С на ИИ-агентах» — от проблем до решений
Никита Арипов. Стек технологий для 1С
Дарья Осипова. Пентест без катастроф: миссия выполнима
Сергей Голованов. Желудевое вино против бюрократии