![]() |
![]() |
![]() |
|
Как передать параметра с сервера на клиент | ☑ | ||
---|---|---|---|---|
0
Python
14.11.09
✎
14:21
|
&НаСервере
Функция СформироватьВыборкуИЗЗапроса() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЗадачаИсполнителя.Наименование, | ЗадачаИсполнителя.СрокИсполнения КАК ПериодКонец, | ЗадачаИсполнителя.Дата КАК ПериодНачало, | ЗадачаИсполнителя.Ссылка, | ЗадачаИсполнителя.Описание, | ЗадачаИсполнителя.Номенклатура |ИЗ | Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя |ГДЕ | ЗадачаИсполнителя.Выполнена = ИСТИНА"; ТаблицаДанных = Запрос.Выполнить().Выгрузить(); Возврат ТаблицаДанных; КонецФункции &НаКлиенте Процедура Сформировать(Команда) Выборка = СформироватьВыборкуИЗЗапроса(); КонецПроцедуры Вот такой кусок кода а ТаблицаДанных не хочет передаватся на клиент. Помогите кто знает |
|||
1
Lama12
14.11.09
✎
14:34
|
Вроде должна...
|
|||
2
Lama12
14.11.09
✎
14:34
|
Какая версия платформы, релиз какой?
|
|||
3
H A D G E H O G s
14.11.09
✎
14:34
|
Если ТЗ принципиально доступна на клиенте - то тебе поможет
ПоместитьВоВременноеХранилище() ПолучитьИзВременногоХранилища() |
|||
5
Python
14.11.09
✎
14:42
|
(2) 8.2.9.260
|
|||
7
Lama12
14.11.09
✎
15:04
|
(5)Какой клиент? Тонкий, толстый, Вэб?
|
|||
9
Python
14.11.09
✎
15:08
|
{Обработка.ДиаграммаЗадач.Форма.ФормаОтчета.Форма(99)}: Ошибка при вызове метода контекста (ПолучитьИзВременногоХранилища)
Выборка = ПолучитьИзВременногоХранилища(АдресВременогоХранилища); по причине: Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа. по причине: Ошибка преобразования данных 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' Пишет отакое. Даже пробую предавть результат запросто то тоще чтото подобное |
|||
10
Python
14.11.09
✎
15:08
|
(5) пока толстий но хотелось что визде работало
|
|||
11
Lama12
14.11.09
✎
15:09
|
7+
В описании встроенного языка написано что ТЗ сериализуется и воозможен обмен с сервером, возможно преобразование XDTO и т.д. Так что, скорее всего это ошибка платформы. |
|||
12
Lama12
14.11.09
✎
15:10
|
11+
Забыл сказать. Версия руководства 82.001.01 |
|||
13
Python
14.11.09
✎
15:11
|
кто модет знает а как обойти это
|
|||
15
Lama12
14.11.09
✎
15:15
|
(13) Ну разве что извращениями всякими...
Например создать справочник с табличной частью и в объект выгружать на сервере данные, а на клиенте считывать. Но это все баловство... |
|||
17
H A D G E H O G s
14.11.09
✎
15:20
|
Вариант (3) пробовал?
|
|||
19
Jolly Roger
14.11.09
✎
15:33
|
(0) а чо, таблица значений доступна на тонком клиенте?
|
|||
21
Python
14.11.09
✎
15:56
|
(19) в каком смысле.
|
|||
23
Jolly Roger
14.11.09
✎
19:14
|
(21) в буквальном...
|
|||
25
AleksS
16.11.09
✎
12:30
|
а как работать с функциями (помогите разобраться)
ПоместитьВоВременноеХранилище(Данные,Переменная "Необязательная") ПолучитьИзВременногоХранилища(Переменная "Обязательная") Переменная - где ее определить, а если ее неопределять, что указать в ПолучитьИзВременногоХранилища(Переменная "Обязательная") |
|||
26
программистище
16.11.09
✎
14:19
|
создавай реквизит формы таблицу и выгружай туда
|
|||
27
AleksS
16.11.09
✎
15:53
|
я решил немного по другому обойти
фф = ЭтаФорма.Объект.УФЛ.Выгрузить(); Для каждого ффф из фф Цикл Если ффф.НомерСтроки = Элементы.УФЛ.ТекущаяСтрока Тогда КонецЕсли; КонецЦикла; ЭтаФорма.Объект.УФЛ.Загрузить(фф); Элементы.УФЛ.ТекущаяСтрока - возвращает (0,2,5,9,14,20,...) подскажите почему |
|||
28
detec
16.11.09
✎
16:13
|
Буквально на выходных этих пришлось вплотную разбираться с тонким клиентом и передачей данных между клиентом и сервером. Итак:
(0) - полная ерунда всё это по архитектуре. Нельзя просто так тащить выборку на клиента. Выборкой необходимо заполнить реквизит или ТЧ объекта, и сам обновлённый объект передать на клиента. В домонстрационной конфигурации я увидел и у себя реализовал примерно следующую архитектуру, пример: &НаКлиенте // в модуле формы Процедура ПолеВВодаКомандОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; ЗапуститьКомандуОболочки(Текст); ЭтаФорма.ОбновитьОтображениеДанных(); КонецПроцедуры &НаСервере // в модуле формы Процедура ЗапуститьКомандуОболочки(ТКоманды) ТекстКоманды = "> " + Символы.ПС + ТКоманды; // бла-бла-бла Обработка = РеквизитФормыВЗначение("Объект"); Обработка.ОбработатьКонсольнуюКоманду(ТекстКоманды); ЗначениеВРеквизитФормы(Обработка, "Объект"); КонецПроцедуры // в модуле объекта Процедура ОбработатьКонсольнуюКоманду(ТекстКоманды) Экспорт //ЛогКонсоли = ЛогКонсоли + Символы.ПС + "> " + ТекстКоманды; ЛогКонсоли = ТекстКоманды; ПолеВВодаКоманд = ""; КонецПроцедуры Пояснение. ЛогКонсоли - это реквизит объекта. Сначала на клиенте мы дёрнули серверную процедуру формы, которая обработала данные, передала их в модуль объекта. Модуль объекта записал реквизит, севрерная процедура формы приняла реквизит и отрефрешила форму на сервере. Затем клиент отрефрешил визуальное представление формы на клиенте и передал управление консоли клиента. |
|||
29
detec
16.11.09
✎
16:15
|
(27)
Это элемент формы - ТЧ - возвращает индекс строки в табличной части объекта. |
|||
30
detec
16.11.09
✎
16:17
|
(27)
Но эта фишка - ТекущаяСтрока - возможно, глючит; причём приходится полностью закрывать и переоткрывать форму. Билд 8.2.9.356. Но у себя я несколько раз обновлял с объекта таблицу на форме, и, возможно, в этот момент воспроизводится баг платформы. |
|||
31
NcSteel
16.11.09
✎
16:21
|
Преоразовывай в масив и передавай .
|
|||
32
AleksS
16.11.09
✎
16:27
|
я стал передавать номер строки с клиента на сервер и все получилось правда как то на мой взгляд коряво(если табличная часть будет большой и каждый раз прогонять и изменять ???)
|
|||
33
Filin396
16.11.09
✎
16:29
|
(27)Используй "ТекущиеДанные".
Элементы.УФЛ.ТекущиеДанные.НомерСтроки ТекущаяСТрока почему то глючит пока. |
|||
34
программистище
16.11.09
✎
16:31
|
текущаястрока
это идентификатор строки и никак не номер также она в динсписке является ссылкой основной таблицы |
|||
35
detec
16.11.09
✎
16:33
|
(32)
С чего ты взял, что всё будет с нуля рефрешится? Может платформа умеет только изменения отображать. Во всяком случае, создав управляемую форму для регистра, в который всё время пишутся строки, я заметил, что она сама по себе не рефрешится - только после нажатия кнопки F5. Т.е. можно предположить, что механизмы взаимодействия там полностью другие. |
|||
36
программистище
16.11.09
✎
16:39
|
(32) смотри (34)
|
|||
37
AleksS
17.11.09
✎
16:59
|
(33) Элементы.УФЛ.ТекущиеДанные (Ошибка чтения данных)
(34) да быстрей всего ты прав |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |