Имя: Пароль:
1C
1С v8
Передать значение запроса с сервера на тонкий клиент
,
0 sidrd
 
06.07.12
12:55
Приложение тонкий клиент.

Хочу передать значение с НаСервере в НаКлиенте


&НаСервере

Функция ПередатьЗапрос ()


 Запрос такой то .....

   ВыборкаСотрудники = ЗапросДанные.Выполнить().Выбрать();

   Список = Новый СписокЗначений;

   Пока ВыборкаСотрудники.Следующий() Цикл
     
       Список.Добавить(ВыборкаСотрудники);
       
   КонецЦикла;

   Возврат Список;
КонецФункции


На клиенте получаю Список из этой функции запроса

Делаю так, ругается на ДаннныеЗапроса, это произвольная переменная, пишет нельзя в неё передавать данные
&НаКлиенте
Процедура ПолучитьДанные ()

ДанныеЗапроса = ПередатьЗапрос()
 Для каждого Стр Из ДанныеЗапроса  Цикл

 Сообщить (Стр.Ссылка);

КонецЦикла;

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


Делаю так, ругается нельзя обратиться к функции ПередатьЗапрос():
&НаКлиенте
Процедура ПолучитьДанные ()

 Для каждого Стр Из ПередатьЗапрос()  Цикл
 Сообщить (Стр.Ссылка);

 КонецЦикла;

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

Помогите пожалуйста. Как правильно получить данные запроса на клиенте?
1 sapphire
 
06.07.12
12:57
(0)
&НаСервере

Функция ПередатьЗапрос ()


Запрос такой то .....

   ВыборкаСотрудники = ЗапросДанные.Выполнить();

 

   

   Возврат ВыборкаСотрудники.Выгрузить();
КонецФункции
2 H A D G E H O G s
 
06.07.12
12:58
(1) Херракс, и тигры у ног моих сели!
3 H A D G E H O G s
 
06.07.12
12:58
(1) ТЗ нет на клиенте. Несуществует.
4 H A D G E H O G s
 
06.07.12
13:00
Как в принципе и ВыборкаЗапроса, которую аутор пытается "завернуть" в СписокЗначений
5 anddro
 
06.07.12
13:04
Список.Добавить(ВыборкаСотрудники); - элементами списка значений является сама выборка, а не конкретное значение? Исправь на ВыборкаСотрудники.<имя поля>.

Сообщить(Стр.Ссылка); - здесь Стр - это элемент списка значений, у него есть только .Значение и .Представление. Значение ты определил в Список.Добавить. Свойства .Ссылка нет, и будет ошибка.
6 sidrd
 
06.07.12
14:20
anddro

Делаю так:  

&НаСервере

Функция ПередатьЗапрос ()


Запрос такой то .....

   ВыборкаСотрудники = ЗапросДанные.Выполнить().Выбрать();

// создаю список значений с коллонками
Список = Новый СписокЗначений;
Список.Добавить(ВыборкаСотрудники.ФизЛицо, Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"));
Список.Добавить(ВыборкаСотрудники.Должность, Новый ОписаниеТипов ("СправочникСсылка.Должности"));

 

   Пока ВыборкаСотрудники.Следующий() Цикл
     
       Список.ЗаполнитьЗначение(ВыборкаСотрудники);
       
   КонецЦикла;

   Возврат Список;
КонецФункции


Тут пишет не соответствие типов при заполнении СпискаЗначений
7 Лефмихалыч
 
06.07.12
14:22
(0) на клиент ты можешь передать только те значения, которые там могут существовать. А ТЗ в тонком клиенте не бывает. Меняй задачу и переставай хотеть передать ТЗ на клиент
8 sidrd
 
06.07.12
14:24
Мне надо просто передать запрос из сервера на клиент
9 Ненавижу 1С
 
гуру
06.07.12
14:25
(8) на клиенте можно только отобразить ТЗ
10 sidrd
 
06.07.12
14:26
Как это сделать?
11 Лефмихалыч
 
06.07.12
14:28
(8) зачем? что клиент с ним делать будет?
12 Ненавижу 1С
 
гуру
06.07.12
14:28
(10) добавь таблицу, привяжи ее к твоей ТЗ
13 sidrd
 
06.07.12
14:29
ты имеешь ввиду таблицу формы добавить или таб часть документа?
14 Лефмихалыч
 
06.07.12
14:30
(13) почитай наврено мануал по управляемым формам. ДОбавить надо таблицу на форму и связать его с реквизитом объекта, в который запишешь свою ТЗ на сервере
15 Ненавижу 1С
 
гуру
06.07.12
14:31
(14) не обязательно именно к реквизиту объекта
16 AlexNew
 
06.07.12
14:40
(0) Посмотри демо от 8.3, как они таскают ТЗ.
17 sidrd
 
06.07.12
14:42
нету 8.3
18 AlexNew
 
06.07.12
14:42
ПоместитьВоВременноеХранилище (PutToTempStorage)
Синтаксис:

ПоместитьВоВременноеХранилище(<Данные>, <Адрес>)
Параметры:

<Данные> (обязательный)

Тип: Произвольный.
Данные, которые необходимо поместить во временное хранилище.
19 AlexNew
 
06.07.12
14:44
В УТ 11 тоже есть.
20 sidrd
 
06.07.12
14:47
Есть пример, дайте пожалуйста.
21 AlexNew
 
06.07.12
14:49
// Функция помещает список товаров во временное хранилище и возвращает адрес
&НаСервере
Функция ПоместитьТоварыВХранилище()
   Возврат ПоместитьВоВременноеХранилище(Объект.Товары.Выгрузить(,"Товар,Цена,Количество"), УникальныйИдентификатор);
КонецФункции    
// Функция восстанавливает список товаров из временного хранилища
&НаСервере
Процедура ПолучитьТоварыИзХранилища(АдресТоваровВХранилище)
   Объект.Товары.Загрузить(ПолучитьИзВременногоХранилища(АдресТоваровВХранилище));
   ПересчитатьЦеныИСуммыТоваров(Ложь);  
КонецПроцедуры
22 sidrd
 
06.07.12
15:05
Для запроса моего как будет выглядеть?
23 AlexNew
 
06.07.12
15:07
Давай я тебе сразу все напишу, быстрее будет. Да?
24 aleks-id
 
06.07.12
15:33
(22) ты нам объясни что ты собрался с таблицей делать ка клиенте?
25 sidrd
 
06.07.12
15:33
Мне на клиенте надо получить данные запроса.

Делаю так:


&НаСервере
Функция ПередатьЗапрос ()

       Запрос...

   ВыборкаСотрудники = Запрос.Выполнить().Выбрать();
   
   Возврат ПоместитьВоВременноеХранилище(ВыборкаСотрудники, УникальныйИдентификатор);
КонецФункции


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

ПолучитьИзВременногоХранилища(УникальныйИдентификатор);

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


Пишет об ошибке Ошибка получения значение из временного хранилища
26 aleks-id
 
06.07.12
15:34
(25) я тебя не спрашивал где тебе данные получить. я спросил - ЧТО ты с этими данными ДЕЛАТЬ будешь???
27 sidrd
 
06.07.12
15:35
Заполнить структуру
28 aleks-id
 
06.07.12
15:37
(27) так заполни ее на сервере!
29 AlexNew
 
06.07.12
15:39
&НаКлиенте
Процедура ПолучитьДанные ()

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

КонецПроцедуры
30 aleks-id
 
06.07.12
15:41
(29) обломись
31 AlexNew
 
06.07.12
15:43
(30) С чего бы?
32 Nik_nik_nik
 
06.07.12
15:55
(31), скажем на клиент не передавать ТЗ нельзя, а работать с ним. Т.е. какой хитрожелтый способ передачи не придумаешь - на клиенте ТЗ все равно не будет.

Автору - меняй подход, так не выйдет (да и не за чем).
33 aleks-id
 
06.07.12
16:06
(31)
{Форма.Форма.Форма(11)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)
НаконецТоТаблица = ПолучитьИзВременногоХранилища(АдресХранилища);
по причине:
Ошибка получения значение из временного хранилища
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
НачалоСвойства: {http://v8.1c.ru/8.2/mngsrv/ws}response    Форма: Элемент    Тип: {http://v8.1c.ru/8.1/data/core}ValueTable
по причине:
Ошибка отображения типов:
Отсутствует отображение для типа '{http://v8.1c.ru/8.1/data/core}ValueTable'
34 sidrd
 
06.07.12
22:18
Прикольно, но сделал 0)
35 Nik_nik_nik
 
11.07.12
10:38
(34) что делал то? (Ну и сразу: и как?)
36 H A D G E H O G s
 
11.07.12
11:00
"Ее сестра пушистый писец"
Независимо от того, куда вы едете — это в гору и против ветра!