29, 30, 31 октября
Санкт-Петербург, Невский пр. 100 Концертный зал «Колизей»
«Управление и технологии автоматизации учета на платформе 1С:Предприятие»
Построитель запроса. Табличный документ. Загрузка из Excel
День программиста — профессиональный праздник программистов, отмечаемый в 256-й день года. Число 256 выбрано потому, что это количество различных значений, которые можно выразить с помощью восьмиразрядного байта. Также это максимальная целая степень числа 2, которая не превышает количества дней в году (365).

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

Автор: Вася Котов
Нравится 0 Не нравится 0 В избранное В избранное Просмотров: 10 472
Опубликовал: Вася Котов 15.11.2021
Интересные возможности объектов ТабличныйДокумент и ПостроительЗапроса...
Категории:
Программирование
Теги:
{1960}, {6659}, {26720}
Интересные возможности объектов ТабличныйДокумент и ПостроительЗапроса, которые позволяют загружать данные из Excel без установки Excel

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецПроцедуры
Комментарии (0)
0
ayv73@bk.ru
Интересные возможности объектов ТабличныйДокумент и ПостроительЗапроса, которые позволяют загружать данные из Excel без установки Excel

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

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

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

&НаСервере
Функция ПрочитатьТабличныйДокумент(ТабличныйДокументИсточник)
 
 КоличествоСтолбцов = ТабличныйДокументИсточник.ШиринаТаблицы;
 
 Если КоличествоСтолбцов = 0 Тогда
В В Возврат Новый ТаблицаЗначений;
 КонецЕсли;
 
 ТабличныйДокумент = Новый ТабличныйДокумент;
 Для НомерСтолбца = 1 По КоличествоСтолбцов Цикл
В В ТабличныйДокумент.Область(1, НомерСтолбца, 1, НомерСтолбца).Текст = "Номер_" + Формат(НомерСтолбца,"ЧГ=0");
 КонецЦикла;
 
 ТабличныйДокумент.Вывести(ТабличныйДокументИсточник);
 
 Построитель = Новый ПостроительЗапроса;
 
 Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());
 Построитель.Выполнить();
 ТаблицаЗначенийРезультат = Построитель.Результат.Выгрузить();
 
 Возврат ТаблицаЗначенийРезультат;
 
КонецФункции

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

&НаСервере
Процедура ЗаполнитьИзФайлаНаСервере()
 
 ТабличныйДокументДанные.Прочитать(ПутьКФайлу);
 
КонецПроцедуры

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

&НаСервере
Процедура ПолучитьДанныеНаСервере() 
 
 Данные = ПрочитатьТабличныйДокумент(ТабличныйДокументДанные);
 
КонецПроцедуры

https://www.youtube.com/watch?v=GMXw7kuJX1k
Имя Цитировать 0
0
asupigor
Спасибо большое, очень помогло!
Имя Цитировать 0
Текст сообщения*
Защита от автоматических сообщений
Загрузить файл
 
Ссылки и коды
Партнеры и спонсоры

Официальные спонсоры

http://www.1c-bitrix.ru/ http://делаемпроекты.рф/


Почетные гости

http://www.pwc.ru/


Партнер онлайн-трансляции

http://nevastream.ru/


Информационные партнеры

Фото - видео партнер

http://fisheye-video.ru/

Генеральный HR-партнер

http://www.hh.ru/

Событийный партнер

http://it-sobytie.ru/

HR-партнер

http://www.superjob.ru/
http://www.klerk.ru/
 http://itmozg.ru/ 1C Forum globalcio.ru http://1cskd.ru/ http://allcio.ru/
http://bishelp.ru/ http://gendalf.ru/ http://it-weekly.ru/ http://it-world.ru/ http://kbyte.ru/
http://npabs.ru/ http://scrumtrek.ru/ http://spbit.ru/ http://www.3dnews.ru/ http://www.cfin.ru/
http://www.cmsmagazine.ru/ http://www.pcmag.ru/ http://www.silverbulleters.org/ http://www.tadviser.ru/ http://www.trinet.ru/
IFRS vingrad.ru www.computerworld.ru Системный администратор

Медиа-партнер

http://www.retail-loyalty.org/


Смотреть трансляцию
© 2014 «ИНФОСТАРТ»

Наверх