Skip to content

Примеры на 1С

Примеры можно выполнить во встроенной обработке "Консоль кода"

Внимание !

При запуске примеров в базе, работающей режиме клиент-сервер, нужно указывать пути к файлам загрузки-выгрузки доступным с сервера 1С.

Обмен данными через файлы Parquet

Выгрузка

Таблица значений

Выгрузка таблицы значений в файл Parquet

bsl
ТЗ = Новый ТаблицаЗначений();
ТЗ.Колонки.Добавить("Кол_Бул",		Новый ОписаниеТипов("Булево"));
ТЗ.Колонки.Добавить("Кол_Число",	ткд_РаботаСТипамиПИ.ПолучитьОТ_Число(10));

Для Сч = 1 По 500000 Цикл
	СтрокаТЗ            = ТЗ.Добавить();		
	СтрокаТЗ.Кол_Бул	= (Сч%2=0);
	СтрокаТЗ.Кол_Число	= Сч % 50;
КонецЦикла;

рВыгрузки       = ткд_ОбменДаннымиС.ВыгрузитьТЗвПаркет(ТЗ);
ДанныеПаркет    = рВыгрузки.Данные["ОсновнаяТаблица"];
ДанныеПаркет.Записать("C:\tmp\pq_data\MyFirstParguetFile.parquet");

Время выгрузки

1 000 000 ячеек - 1.282 секунд
размер файла - 54 396 байт

Результат запроса

Выгрузка результата запроса

bsl
ТекстЗапроса = "
|ВЫБРАТЬ ПЕРВЫЕ 100000
|	Ссылка,
|	Код,
|	Наименование
|ИЗ
|	Справочник.Номенклатура
|";

рВыгрузки = ткд_ОбменДаннымиС.ВыгрузитьЗапросвПаркет(ТекстЗапроса);
рВыгрузки.Данные.Записать("C:\tmp\pq_data\Номенклатура.parquet");

Время выгрузки

100 000 элементов - 1.993 секунд
размер файла - 2 453 203 байт

Пакет запросов

Выгрузка результатов пакета запросов.

В данном примере выгружаются данные 10 000 документов "ЗаказПокупателя". В выгрузку включены шапки документов и табличная часть "Товары".
Все данные будут выгружены в один файл: "Документ.ЗаказПокупателя.parquet".

bsl
ТекстЗапроса = "
|ВЫБРАТЬ ПЕРВЫЕ 10000
|	Ссылка	
|ПОМЕСТИТЬ ВТ_Ссылки
|ИЗ
|	Документ.ЗаказПокупателя
|;	
|ВЫБРАТЬ //Шапка
|	т.Ссылка,
|	т.Номер,
|	т.Дата,
|	т.Контрагент	
|ИЗ
|	Документ.ЗаказПокупателя КАК т
|ПРАВОЕ СОЕДИНЕНИЕ ВТ_Ссылки ПО ВТ_Ссылки.Ссылка = т.Ссылка
|;
|ВЫБРАТЬ //ТЧ_Товары
|	т.Ссылка,
|	т.Номенклатура,
|	т.ХарактеристикаНоменклатуры,	
|	т.Количество,
|	т.КоличествоМест,
|	т.Коэффициент,
|	т.Цена,
|	т.СуммаНДС,
|	т.Сумма	
|ИЗ
|	Документ.ЗаказПокупателя.Товары КАК т
|ПРАВОЕ СОЕДИНЕНИЕ ВТ_Ссылки ПО ВТ_Ссылки.Ссылка = т.Ссылка
|";

ОписаниеПакета = Новый Структура("ТекстЗапроса", ТекстЗапроса);
рВыгрузки = ткд_ОбменДаннымиС.ВыгрузитьПакетЗапросовВПаркет(ОписаниеПакета);
рВыгрузки.Данные.Записать("C:\tmp\pq_data\Документ.ЗаказПокупателя.parquet");

Время выгрузки

Выгрузка - 1.142 секунд.
Выгружено: 10 000 документов, 14 090 строк товаров.
Размер файла: 1 268 455 байт.

Результаты выгрузки

Список заказов

Загрузка данных Parquet

Загрузка из файла Parquet

bsl
ДанныеПаркет = Новый ДвоичныеДанные("C:\tmp\pq_data\MyFirstParguetFile.parquet");

рЗагрузки = ткд_ОбменДаннымиС.ПрочитатьПаркет(ДанныеПаркет); 
ТЗ = рЗагрузки.Данные[рЗагрузки.ИмяГлавнойТаблицы];

Время загрузки

1 000 000 ячеек - 1.504 секунд
размер файла - 54 396 байт

Просмотр файла Parquet

В состав Турбо КД входит обработка Универсальная выгрузка-загрузка объектов
С помощью данной обработки можно просмотреть содержимое файлов Parquet выгруженных системой Турбо КД.

Универсальная выгрузка-загрузка объектов Parquet
Универсальная выгрузка-загрузка объектов Parquet