MyTetra Share
Делитесь знаниями!
Передать таблицу значений с сервера на клиент
Время создания: 14.09.2016 10:42
Раздел: Программирование - 1с - client-server
Запись: xintrea/mytetra_anatolean/raw/master/base/14738389628aqfrpd0hs/text.html на bitbucket.org

Через ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр

&НаКлиенте

Процедура ПолучитьТаблицуНаСервер(Команд а)

ТЗВСтроке = ПолучитьТЗНаСервере();

ТЗ = ЗначениеИзСтрокиВнутр(ТЗВСтроке);

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

// Функция получает данные на сервере

&НаСервере

Функция ПолучитьТЗНаСервере()

// Для примера сформируем ТЗ с данными

ТЗ = ЗаполнитьТЗДанными();

Возврат ЗначениеВСтрокуВнутр(ТЗ);

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

Через реквизит Формы

// Создаем реквизит формы "ВремТабЗнач" с типом данных: Таблица значений

// Ревкизит будет использоваться для передачи данных с сервера на клиент.

&НаСервере

Функция ПолучитьТЧ(ОбъектСсылка,ИмяТЧ)

ЗначениеОбъекта = ОбъектСсылка.ПолучитьОбъект();

ТабРез = ЗначениеОбъекта[ИмяТЧ].выгрузить();

МассивДобавляемыхРеквизитов = Новый Массив;

МассивУдаляемыхРеквизитов = Новый Массив;

МассивКолонок = Новый Массив;

ИдКоллекции="ВремТабЗнач";

КоллФормы=РеквизитФормыВЗначение(ИдКоллекции);

Для каждого ТекКол из КоллФормы.Колонки Цикл

МассивУдаляемыхРеквизитов.Добавить(ИдКоллекции+"."+ТекКол.Имя);

КонецЦикла;

Для каждого ТекКол из ТабРез.Колонки Цикл

МассивДобавляемыхРеквизитов.Добавить(

Новый РеквизитФормы(ТекКол.Имя,ТекКол.ТипЗначения,ИдКоллекции));

МассивКолонок.Добавить(ТекКол.Имя);

КонецЦикла;

// Добавим новые, удалим старые колонки

ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивУдаляемыхРеквизитов);

// Поместим значение в реквизит формы

ЗначениеВРеквизитФормы(ТабРез,ИдКоллекции);

// вернем массив колонок в обрабатываемой ТЗ, например для более простого перебора

Возврат МассивКолонок;

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

Через Временное хранилище

АдресХранилища = ПоместитьВоВременноеХранилище(МассивДанных,ЭтаФорма.УникальныйИдентификатор);

ПротоколПереноса = ПолучитьИзВременногоХранилища(АдресХранилища);

Через обычный возврат

&НаКлиенте

Процедура ПолучитьТаблицуНаСервер(Команда)

ТЗ = ЗаполнитьТЗДанными();

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

//Функция заполняет ТЗ

&НаСервере

Функция ЗаполнитьТЗДанными()

ТЗ = Новый ТаблицаЗначений;

ТЗ.Колонки.Добавить("Поле1");

ТЗ.Колонки.Добавить("Поле2");

ТЗ.Колонки.Добавить("Поле3");

ТЗ.Колонки.Добавить("Поле4");

ТЗ.Колонки.Добавить("Поле5");

Для i = 1 По 3 Цикл

НоваяСтр = ТЗ.Добавить();

НоваяСтр.Поле1 = i;

НоваяСтр.Поле2 = 2*i;

НоваяСтр.Поле3 = 3*i;

НоваяСтр.Поле4 = 4*i;

НоваяСтр.Поле5 = 5*i;

КонецЦикла;

Возврат ТЗ;

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

Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования