helpf.pro
Регистрация
 0 
Распечатать

1С 8.2 УП : Как передать таблицу значений с сервера на клиент?

Многие спрашиваю, как передать тз с сервера на клиент - ниже несколько вариантов как это можно реализовать:

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

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

ТЗВСтроке = ПолучитьТЗНаСер вере();
ТЗ = ЗначениеИзСтрокиВнутр(ТЗВСтрок е);
КонецПроцедуры

// Функция получает данные на сервере
&НаСервере
Функция ПолучитьТЗНаСер вере()
// Для примера сформируем ТЗ с данными
ТЗ = ЗаполнитьТЗДанными();
Возврат ЗначениеВСтрокуВнутр(ТЗ);
КонецФункции

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

Код 1C v 8.3
 // Создаем реквизит формы "ВремТабЗнач" с типом данных: Таблица значений
// Ревкизит будет использоваться для передачи данных с сервера на клиент.
&НаСервере
Функция ПолучитьТЧ(ОбъектСсылка,ИмяТЧ)
ЗначениеОбъекта = ОбъектСсылка.ПолучитьОбъект();

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

МассивДобавляемыхРеквизитов = Новый Массив;
МассивУдаляемыхРеквизитов = Новый Массив;
МассивКолонок = Новый Массив;
ИдКоллекции="ВремТабЗнач";

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

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

Для каждого ТекКол из ТабРез.Колонки Цикл
МассивДобавляемыхРеквизитов.Добавить(
Новый РеквизитФормы(ТекКол.Имя,ТекКол.ТипЗначения,ИдКоллекции));
МассивКолонок.Добавить(ТекКол.Имя);
КонецЦикла;

// Добавим новые, удалим старые колонки
ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивУдаляемыхРеквизитов);
// Поместим значение в реквизит формы
ЗначениеВРеквизитФормы(ТабРез,ИдКоллекции);

// вернем массив колонок в обрабатываемой ТЗ, например для более простого перебора
Возврат МассивКолонок;
КонецФункции

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

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

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

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

Код 1C v 8.2 УП
 &НаКлиенте
Процедура ПолучитьТаблицуНаСервер(Команда)
 
  ТЗ = ЗаполнитьТЗДанными();
 
КонецПроцедуры

//Функция заполняет ТЗ
&НаСервере
Функция ЗаполнитьТЗДанными()
 
  ТЗ = Новый ТаблицаЗначений;
  ТЗ.Колонки.Добавить("Поле1");
  ТЗ.Колонки.Добавить("Поле2");
  ТЗ.Колонки.Добавить("Поле3");
  ТЗ.Колонки.Добавить("Поле4");
  ТЗ.Колонки.Добавить("Поле5");
 
  Для i = 1 По 3 Цикл 
 
    НоваяСтр = ТЗ.Добавить();
    НоваяСтр.Поле1 = i;
    НоваяСтр.Поле2 = 2*i;
    НоваяСтр.Поле3 = 3*i;
    НоваяСтр.Поле4 = 4*i;
    НоваяСтр.Поле5 = 5*i;
 
  КонецЦикла;   
 
  Возврат ТЗ;
 
КонецФункции 

Пробуйте и пишите в комментариях как делаете это Вы

Разместил:   Версии: | 8.2 УП | 8.3 |  Дата:   Прочитано: 23693
 0 
Распечатать
Возможно, вас также заинтересует
10060 (0x0000274C): Попытка установить соединение была безуспешной 0
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через...
1С Предприятие что это? 6
Что такое 1С? 1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » - конкретный продукт, который...
COM-подключение к базе 7.7 из 8.2 1С 4
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине. Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)): НаКлиенте Процедура Загрузки() ПутьКБазе="...
Cклонения по падежам 4
НаКлиенте Процедура Команда1(Команда) ФИО = " Иванов Иван Иванович" ; Падеж = 2; Пол = 1; Результат = СклонениеФИО(ФИО, Падеж, пол); Сообщить(Результат); КонецПроцедуры НаСервере Функция СклонениеФИО(ФИО, Падеж, пол) ...
Cодержимое указанного ниже веб-сайта в этом приложении блокируется... Aboutsecurity_1cv8c.exe 0
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже...
Посмотреть все результаты поиска похожих
Комментарии
Raiser_ZX
28.05.2016 10:40Комментарий: 1
Raiser_ZX

Правильно ли я понимаю, что вернуть выборку на тонкий клиент вообще шансов нет никаких?

Допустим, есть управляемая форма, вызываемая из обработки. Надо заполнить табличную часть на этой форме. Соответственно на сервере запускаем запрос, результат запроса нужно каким-то образом вернуть на форму. Я пытаюсь вернуть таблицу значений.

В итоге получается, что:

1. Обычный возврат не работает, выкидывает ошибку XDTO.

2. ЗначениеИзСтрокиВнутр - на тонком клиенте недоступно.

3. Табличная часть формы на сервере недоступна.

Платформа 8.3 (8.3.5.1383) в режиме 8.2.

Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.