|
УФ: Как передать результаты запроса из сервера на клиент? | ☑ | ||
---|---|---|---|---|
0
worker-good
28.10.14
✎
14:14
|
Как передать результаты запроса из сервера на клиент в управляемых формах, без создания дополнительных табличных частей и реквизитов?
1) Пробовал через список значений не получилось, ругается. 2) Через хранилище вроде нельзя передать именно таблицу значений |
|||
1
Looser-1c
28.10.14
✎
14:14
|
Раскрой тему
|
|||
2
worker-good
28.10.14
✎
14:16
|
(1) Есть запрос который выполняется в функции &НаСервере и надо результаты запроса открыть в процедуре &НаКлиенте
|
|||
3
Drac0
28.10.14
✎
14:16
|
(0) Передавай массив структур
|
|||
4
Looser-1c
28.10.14
✎
14:16
|
(2) В табличную часть. В табличный документ.
Или вообще - в сад, листья подметать. |
|||
5
worker-good
28.10.14
✎
14:18
|
(3) А как обычно передается на клиент результат запроса?
|
|||
6
Krolik Bezobraznik
28.10.14
✎
14:19
|
(5) Смотря для каких целей...
|
|||
7
Krolik Bezobraznik
28.10.14
✎
14:20
|
(5) Важно задаться вопросом, а надо ли ТЗ передавать на клиент?
|
|||
8
worker-good
28.10.14
✎
14:21
|
(6) Я рассматриваю не исключительные случаи, а как эта проблема решается в большинстве случаев? Т.е. наиболее универсальное решение...
|
|||
9
Drac0
28.10.14
✎
14:22
|
(8) Обычно запрос заполняет реквизит формы ТаблицаЗначений (ДанныеФормыКоллекция).
|
|||
10
эс-образник
28.10.14
✎
14:24
|
На клиенте существуют только некоторые типы - можно передать только их (например Таблицу Значений - нельзя)
|
|||
11
Krolik Bezobraznik
28.10.14
✎
14:24
|
(8) Можно как (9) гововрит, а можно и так (3)
|
|||
12
worker-good
28.10.14
✎
14:38
|
(9) Сделал реквизит внешней обработки типа "ТаблицаЗначений" выдает ошибку что недоступен такой метод на клиенте, что делаю не так?
&НаКлиенте Процедура Печать(Команда) ТаблицаЗапроса=Объект.Запрос.Выгрузить(); Для Каждого ЭлементТаблицы из ТаблицаЗапроса Цикл Сообщить(ЭлементТаблицы.Номенклатура); КонецЦикла; КонецПроцедуры &НаСервере Процедура ПолучитьЗапрос() ОбъектОбработки=РеквизитФормыВЗначение("Объект"); Запрос=Новый Запрос; Запрос.Текст="ВЫБРАТЬ | РеализацияТоваровУслугТовары.Номенклатура, | РеализацияТоваровУслугТовары.Количество, | РеализацияТоваровУслугТовары.Сумма |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары |ГДЕ | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата"; Запрос.УстановитьПараметр("Дата", ОбъектОбработки.Дата); ВыборкаРеализация= Запрос.Выполнить().Выбрать(); Объект.Запрос.Загрузить(ВыборкаРеализация); ЗначениеВРеквизитФормы(Объект, "Запрос"); КонецПроцедуры |
|||
13
worker-good
28.10.14
✎
14:41
|
(12) + Сделал реквизит внешней обработки под названием "Запрос" типа "ТаблицаЗначений"
|
|||
14
Enders
28.10.14
✎
14:42
|
(13) а ничего что
ВыборкаРеализация= Запрос.Выполнить().Выбрать(); нифига не ТЗ? |
|||
15
hhhh
28.10.14
✎
14:43
|
ну вот же
ОбъектОбработки.Запрос.Загрузить(ВыборкаРеализация); ЗначениеВРеквизитФормы(ОбъектОбработки, "ОБъект"); |
|||
16
DCKiller
28.10.14
✎
14:43
|
(13) М-да-а...
|
|||
17
Krolik Bezobraznik
28.10.14
✎
14:44
|
(13) Сделай реквизит формы а не внешней обработки типа ТЗ
|
|||
18
antotti
28.10.14
✎
14:47
|
Верни структуру, а в структуру тз запхни.
|
|||
19
worker-good
28.10.14
✎
14:49
|
(17) я делаю все во внешней обработке, и реквизит внешней обработки автоматически стал реквизитом формы http://hkar.ru/w0gR
|
|||
20
hhhh
28.10.14
✎
15:04
|
(19) тогда вдумчиво читайте (14) и (15). А то что-то в конце процедуры вы откровенно бредите.
|
|||
21
Drac0
28.10.14
✎
15:14
|
(12) Вот ты сам можешь словами объяснить, что ты делаешь?
1. Тут: " Объект.Запрос.Загрузить(ВыборкаРеализация);" 2. Тут: "ЗначениеВРеквизитФормы(Объект, "Запрос");" 3. и тут: "ТаблицаЗапроса=Объект.Запрос.Выгрузить();" |
|||
22
18_plus
28.10.14
✎
15:15
|
(21) кодинг угадыванием
|
|||
23
worker-good
28.10.14
✎
16:34
|
(20) А как будет выглядеть правильный код?
|
|||
24
worker-good
28.10.14
✎
16:34
|
(21) Я пытаюсь на клиенте прочитать данные с сервера
|
|||
25
Drac0
28.10.14
✎
16:35
|
(24) Конкретно скажи, что ты делаешь в указанных строках.
|
|||
26
worker-good
28.10.14
✎
16:37
|
(25) Пытаюсь передать таблицу значений на клиента и кролик безобразник сказал что так можно если сделать через реквизит формы.
|
|||
27
Fish
28.10.14
✎
16:37
|
(26) Пост (14) читал? Что можешь сказать по этому поводу?
|
|||
28
worker-good
28.10.14
✎
16:38
|
(27) Понял)) надо Выгрузить()
|
|||
29
worker-good
28.10.14
✎
16:42
|
(27) Исправил, все равно ругается "Метод не доступен на клиенте"
|
|||
30
GreatOne
28.10.14
✎
16:46
|
this (7)
|
|||
31
worker-good
28.10.14
✎
16:48
|
(30) так (9) сказал что это так обычно и делают!
|
|||
32
worker-good
28.10.14
✎
16:50
|
Может кто-нибудь код в качестве примера приведет как передать результаты запроса на клиент...
|
|||
33
Looser-1c
28.10.14
✎
16:51
|
(32) Результатов запроса на клиенте нет. Используй ТЧ обработки
|
|||
34
worker-good
28.10.14
✎
16:52
|
(33) Так это под каждый запрос на сервере, на клиенте нужно будет создавать свою табличную часть?!
|
|||
35
Fish
28.10.14
✎
16:54
|
(34) Обрабатывай результат на сервере. Зачем тебе вообще на клиент передавать?
|
|||
36
GreatOne
28.10.14
✎
16:54
|
(35) ему так сказали.
http://www.ljplus.ru/img4/n/e/nell0/zabor.jpg |
|||
37
hhhh
28.10.14
✎
16:55
|
(34) процедура Печать() спокойно на сервере работает.
|
|||
38
18_plus
28.10.14
✎
16:55
|
(34) facepalm.jpg
зачем? ответь, зачем тебе пихать результаты запросов на клиента? |
|||
39
worker-good
28.10.14
✎
16:57
|
(35) А если мне нужно отобразить данные запроса на клиенте, например отчет сделать?
|
|||
40
hhhh
28.10.14
✎
16:58
|
(39) в типовой 150 отчетов, ни одного на клиенте.
|
|||
41
МаякНаКазачке
28.10.14
✎
17:01
|
(12) этот запрос, это вообще список, дИнамчскЫй
|
|||
42
scanduta
28.10.14
✎
17:02
|
(39) Формируй на сервере ТабДок и его передавай на клиент а там выводи
|
|||
43
Fish
28.10.14
✎
17:05
|
(39) Отчёты ДЕЛАЮТ на сервере, на клиенте их только отображают.
|
|||
44
worker-good
28.10.14
✎
17:08
|
(43) Ну отобразить можно только на клиенте, а для этого надо их передать с сервера на клиент, как отобразить того чего нет?
|
|||
45
Looser-1c
28.10.14
✎
17:09
|
(44) "отобразить можно только на клиенте"
Зато на сервере можно софрмировать печатную форму, которую можно вернуть клиенту, который потом ей покажет. В доме, что построил Джек. |
|||
46
Fish
28.10.14
✎
17:11
|
(44) Ну так и передавай то, что тебе надо отобразить, т.е. табличный документ. А результат запроса передавать ни к чему.
|
|||
47
Мыш
28.10.14
✎
17:15
|
(45) (46) Не указывайте творцу, что ему делать! Он так видит! )
|
|||
48
worker-good
28.10.14
✎
17:17
|
(47) Действительно смешно, палюсь на работе со своим смехом)
|
|||
49
Zhuravlik
28.10.14
✎
17:32
|
(0) На клиенте не существует типа "ТаблицаЗначений". Но на клиенте существует тип "ДанныеФормыКоллекция". Удобнее делать реквизит формы, типа "ТаблицаЗначений", и видеть его "&НаКлиенте" как "ДанныеФормыКоллекция". По методам он практически не уступает ТЗ. Различия только в методе "Найти", почему-то на клиенте его нет, но есть "НайтиЗначения". Реквизит формы удобнее тем, что не приходится писать Объект.<ИмяМоейТЗ>.
Хранилище нужно (только?) для того, чтобы &НаСервере видеть глоб. переменные. Так как между серверными вызвами они очищаются. Ну а результаты запроса - на клиенте попросту недоступны, и ответ на (0) - никак) Только &НаСервере выгрузить в таблицу значений, которая (повторюсь) будет на клиенте иметь тип "ДанныеФормыКоллекция". |
|||
50
worker-good
28.10.14
✎
17:39
|
(49) Спасибо за развернутый ответ, все понятно стало)
|
|||
51
worker-good
31.10.14
✎
12:09
|
(49) А как &НаСервере выгрузить в таблицу значений, которая (повторюсь) будет на клиенте иметь тип "ДанныеФормыКоллекция", можно привести небольшой пример в виде, у меня что-то не получается передать
|
|||
52
Krolik Bezobraznik
31.10.14
✎
12:25
|
(51) А для чего? Расскажите как вы планируете ее использовать на стороне колента?
|
|||
53
Krolik Bezobraznik
31.10.14
✎
12:25
|
(51) *клиента
|
|||
54
worker-good
31.10.14
✎
12:54
|
(52) Ну просто выводить в виде отчета например
|
|||
55
Krolik Bezobraznik
31.10.14
✎
13:36
|
(54) ну так сделай ТЧ, заполняй ее и выводи в виде отчета
|
|||
56
worker-good
31.10.14
✎
16:56
|
(55) Получиться-то получилось, но если надо будет 10 запросов передать на клиента надо заводить 10 ТЧ?
|
|||
57
Локи-13
31.10.14
✎
17:05
|
что за сатанизм в топике?
(45) правильный ответ. тему можно закрывать. |
|||
58
Mankubus
31.10.14
✎
17:05
|
(56) надо придумать алгоритм без необходимости такой передачи
|
|||
59
worker-good
31.10.14
✎
17:21
|
(57) >> Зато на сервере можно софрмировать печатную форму, которую можно вернуть клиенту, который потом ей покажет.
Можно посмотреть как это в коде будет выглядеть |
|||
60
worker-good
31.10.14
✎
17:22
|
(59) +?
|
|||
61
worker-good
31.10.14
✎
17:22
|
(58) Я вот ищу по интернету и никто кроме ТЧ ничего предложить не может
|
|||
62
ДенисЧ
31.10.14
✎
17:24
|
(59)
&НаСервере Функция ВернутьТабДок() табДок = Новый ТабличныйДокумент; макет = ПолучиьтОбщийМакет("МойМакет"); табДок.Вывести(макет); Возврат ТабДок; КонецФункции &НаКлиенте Процедура ПоКнопке() табДок = ВернутьТабДок(); табДок.Показать(); КОнецПРоцедуры |
|||
63
DexterMorgan
31.10.14
✎
17:27
|
Да это просто пипец таащи, а еще обижаются что 1сников тупыми считают..
|
|||
64
worker-good
31.10.14
✎
17:29
|
(62) Спасибо за код)
|
|||
65
Drac0
31.10.14
✎
17:29
|
(61) Варианта три: ТЧ, Табличный документ и их вариации ,например, СКД. Все это здесь прозвучало. Что ты еще хочешь получить?
|
|||
66
Drac0
31.10.14
✎
17:29
|
(62) Он же сейчас будет жаловаться, что проверка выдает синтаксические ошибки...
|
|||
67
ДенисЧ
31.10.14
✎
17:30
|
(66) Где??
|
|||
68
Euguln
31.10.14
✎
17:31
|
(67) Ошибка при получении макета "МойМакет" ))
|
|||
69
ДенисЧ
31.10.14
✎
17:32
|
(68) А у меня такой есть. Так что это не ошибка ))
|
|||
70
GreatOne
31.10.14
✎
17:36
|
(69) Метод объекта не обнаружен "ПолучиьтОбщийМакет"
|
|||
71
GreatOne
31.10.14
✎
17:37
|
(70) ой не, функция не определена, во.
|
|||
72
ДенисЧ
31.10.14
✎
17:41
|
(70) А, ну это да, сложно без контекстной подсказки набивать )))
|
|||
73
worker-good
31.10.14
✎
17:57
|
Шутники)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |