|
|||||||
Передать таблицу значений с сервера на клиент
Время создания: 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;
КонецЦикла;
Возврат ТЗ;
КонецФункции |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|