Имя: Пароль:
1C
 
Как правильно работать с ЗначениеВРеквизитФормы()
0 Emilio
 
02.09.14
09:40
Чтобы передать с сервера на клиент результат запроса, создал реквизит с типом "СправочникСсылка.Номенклатура" в него передаю результат запроса
Результат.Следующий();
ЗначениеВРеквизитФормы(Результат.Ссылка,"НоменклатураРеквизит");

появляется ошибка:
Недопустимое значение параметра (параметр номер '2')

Проблема с реквизитом НоменклатураРеквизит, но я никак не могу понять какая именно проблема. Подскажите, что я делаю не так?
1 Сергиус
 
02.09.14
09:42
(0) Какой тип у Результат.Ссылка и какой тип у "НоменклатураРеквизит"?
2 Wobland
 
02.09.14
09:43
>Результат.Следующий();
а есть?
3 Emilio
 
02.09.14
09:44
СП:
<ИмяРеквизита> (обязательный)

Тип: Строка.
Имя реквизита формы, в который необходимо поместить преобразованное значение.

О том какой должен быть реквизит и какого типа ничего не написано.
4 Emilio
 
02.09.14
09:44
(2) есть.
5 Emilio
 
02.09.14
09:44
(1) создал реквизит с типом "СправочникСсылка.Номенклатура"
6 Wobland
 
02.09.14
09:46
(4) это сейчас. а вообще?
7 Сергиус
 
02.09.14
09:50
(0) у тебя серверная процедура, где ты пытаешься запихнуть значение в реквизит формы, какую директиву имеет?  &НаСервере?
8 Fedor-1971
 
02.09.14
09:52
(0) как я понимаю работаешь на УФ, тогда зачем преобразовывать нечто "Справочник..." в реквизит формы если реквизит формы и так доступен на сервере?
Просто заполни его НоменклатураРеквизит=Результат.Ссылка и всех делов.
Если хочешь не просто заполнить реквизит, тогда опиши полную задачу.
9 Сергиус
 
02.09.14
09:57
(8)Он хочет его потом на клиент вернуть..в составе данной формы.
10 Emilio
 
02.09.14
09:58
(6) вообще я ей присвоил такой тип
(7) Да, &НаСервере
(8) Затем, что дальше я работаю с этим результатом запроса в процедуре, которая компилится на клиенте.
11 Defender aka LINN
 
02.09.14
10:00
(0) "создал реквизит с типом "СправочникСсылка.Номенклатура" в него передаю результат запроса"
http://cs302404.vk.me/u27272220/153032160/x_1b58ecbd.jpg
12 Сергиус
 
02.09.14
10:00
(10) В отладчике проверял?
13 Emilio
 
02.09.14
10:06
(11) Обязательно троллить? Если не так, то скажи как?
http://risovach.ru/upload/2014/09/mem/zhirik_60060428_orig_.jpeg
14 hhhh
 
02.09.14
10:06
(10) для ссылок не надо писать ЗначениеВРеквизитФормы. Ссылки и так доступны на клиенте.
15 Остап Сулейманович
 
02.09.14
10:07
(0) Кто мешает заюзать банальное :
НоменклатураРеквизит = Результат.Ссылка; ?

Либо вот такой способ :
&НаКлиенте
Процедура ПолучитьЗначениеРеквизита()
    НоменклатураРеквизит = ПолучитьЗначениеРеквизитаНаСервере();
КонецПроцедуры

&НаСервере
Функция ПолучитьЗначениеРеквизитаНаСервере()
...
    Вовзврат Результат.Ссылка;
КонецФункции
16 Сергиус
 
02.09.14
10:10
(14)Да, но жто будут "обрезанные" ссылки..не те, что на сервере.
17 Emilio
 
02.09.14
10:12
(15) (14) хм... Всем спасибо! :)
банальное НоменклатураРеквизит = Результат.Ссылка работает)

*Отдыхать, все-таки надо...
18 Fedor-1971
 
02.09.14
10:13
(10) сделай Возврат Результат.Выгрузить() и работай с таблицей значений на клиенте. НаКлиенте её создать нельзя, а получить с сервера очень даже можно.
Вариант (15) то же рабочий ссылка замечательно передаётся на клиента, но обратиться к её реквизитам через "." не получится, уже лучше сделать структуру с нужными данными и передать её на клиента.
19 Emilio
 
02.09.14
10:14
(18) пробовал так сделать, выпадала ошибка.
20 hhhh
 
02.09.14
10:27
(16) будут необрезанные. будут те, что и на сервере. Один в один.
21 Defender aka LINN
 
02.09.14
10:32
(18) "НаКлиенте её создать нельзя, а получить с сервера очень даже можно" Вы там что употребляете такое, куда Батька смотрит?
22 Поpyчик-4
 
02.09.14
10:36
(18)
>>>работай с таблицей значений на клиенте
>>>получить с сервера таблицу значений очень даже можно.
Куда получить, в какое место?
23 Рэйв
 
02.09.14
10:40
(0)ЗначениеВРеквизитФормы()  Используется обычно в паре с
РеквизитФормыВЗначение() и выполняется на сервере.
типа:

Об=РеквизитФормыВЗначение("Объект");//получаем реальный объект

Об.Чтото=Чемуто;// заполняем реквизиты реального объекта

ЗначениеВРеквизитФормы(Об,"Объект"); // возвращаем все что заполнили в форму.
24 Fedor-1971
 
02.09.14
10:48
(21) лично мой уже никуда смотреть не может.
Да, лопухнулся с ТЗ, на клиент я её передавал через реквизит формы типа ТаблицаЗначений, простой возврат ТЗ с сервера не прокатывает.
25 Рэйв
 
02.09.14
10:51
(24)Обрадую тебя. ТЗ вообще не живет на клиенте как тип.
26 Fedor-1971
 
02.09.14
11:04
(25) Ну да, ну да.
1. Сделай реквизит формы типа ТЗ
2. Заполни её на сервере
3. На клиенте обойди через: Для каждого Из Цикл

Может и не живёт как тип но доступна для использования и обхода 8.2.19.90.
27 Рэйв
 
02.09.14
11:16
(26)Не знаю как в 8.2, а в 8.3 пишет  "Нельзя изменять реквизит, содержащий данные формы"
28 Поpyчик-4
 
02.09.14
11:16
(26) На клиенте доступна структура ДанныеФормыКоллекция, которая служит для моделирования коллекций, в том числе таблицы значений. Но работая с ДанныеФормыКоллекция ты работаешь не с таблицей значений.
Учи матчасть и не неси ахинею в уши почтеннейшей публике.
29 Defender aka LINN
 
02.09.14
11:17
(26) И накуя? На сервере атмосфера не та, чтобы таблицы обходить?
30 Поpyчик-4
 
02.09.14
11:19
(27) (29) Забейте.

Большой опыт администрирования сетей и настройки коммуникационного оборудования.

Всё понятно, чел полез куда не просили.
31 Остап Сулейманович
 
02.09.14
11:22
Мне больше интересно ДляНафига в мобильной платформе сделано разделение на сервер и клиент? На ведроиде тоже сервер баз установлен? И сколько к нему можно подцепить клиентов? Все же на одном приборчике в любом случае. Или я чего не знаю?
32 Рэйв
 
02.09.14
11:25
(31)Если в вебклиенте гонять все по толстому варианту, не каждый канал выдержит такой трафик. А так в основном только отображение уходит, все расчеты и работу с базой берет на себя сервер. Как то так
33 hhhh
 
02.09.14
11:26
(31) риб делать. Центральная база на компе и обмен с телефонами. И конфу лучше обновлять так.
34 Остап Сулейманович
 
02.09.14
11:32
(32) Базар не за вебклиента. Базар за мобильную платформу.
(33) В мобильной платформе РИБ не поддерживается.
35 hhhh
 
02.09.14
11:34
(34) поддерживается
36 Fedor-1971
 
02.09.14
11:37
(29) Например, ТЗ.Сумма=ТЗ.Количество*ТЗ.Цена - для этого не смысл дёргать сервер, тем более контекстным вызовом
37 Остап Сулейманович
 
02.09.14
11:39
(35) У меня если выбрать использование мобильное устройство - планы обмена есть. Но выставить галочку РИБ недоступно.
38 Остап Сулейманович
 
02.09.14
11:41
+ (37) Да и потом... Какое отношение РИБ имеет к разделению кода на клиент и сервер, если ВСЕ и ВСЕГДА выполняется на одном приборчике?
39 Defender aka LINN
 
02.09.14
11:50
(36) А трава, например, зеленая. Примерно такое же отношение к вопросу имеет.
Ну и - обойди большую ТЗ на клиенте и посчитай серверные вызовы.
40 Fedor-1971
 
02.09.14
12:16
(39) Трава не только зелёная, но ещё и растёт.
Вопрос был в возможности обойти ТЗ на клиенте, а не в целесообразности сего действа.
  Если надо, то на 8.2 можно. Зачем? Это вопрос касательства к первому не имеющий.
  Оптимизация вызовов сервера - это тайна великая есть, поскольку чёткой информации когда клиент ломанётся на сервер просто нет. Пример: атрибут Видимость - "В некоторых случаях инициируется вызов сервера", а вот в каких? Сие покрыто мраком.
41 Defender aka LINN
 
02.09.14
14:23
(40) Вопрос был не в возможности обхода. Ты сказал сделать таблицу на сервере, чтобы потом ее дальше обрабатывать на клиенте. Припоминаешь?
42 Fedor-1971
 
02.09.14
14:35
(41) я предложил вариант как передать таблицу на клиента и работать с ней.
  Вопросы: "Зачем?" и утверждения "Дятел!" посыпались позже.
Программист всегда исправляет последнюю ошибку.