Как передать данные с сервера на клиент ?

1. Terabaytus 04.08.21 10:50 Сейчас в теме
Добрый день, подскажите нужно передать структуру с сервера на клиент. Видел вариант как передать её в функцию через параметры и потом вызвать на клиенте, но на клиент ругается что ни чего не знает о перемененной указанной в параметре, а без неё ругается что не хватает этих параметров, замкнутый круг ?


&НаСервере
Функция Вопросы(Структура1)
	
	  Структура = Структура1;
	  
	  Возврат Структура;
	
КонецФункции



&НаКлиенте
Процедура ВыборПриИзменении(Элемент)
	
	
	Вопрос = Вопросы(Структура);
	
	Для Каждого Элемент Из Вопрос Цикл
			
		Сообщить(Элемент.Ключ + " " + Элемент.Значение);	
			
			
		КонецЦикла;

	

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


Показать


{Документ.Форма.ФормаДокумента1.Форма(274,38)}: Переменная не определена (Структура)
Вопрос = Вопросы(<<?>>Структура); (Проверка: Тонкий клиент)
По теме из базы знаний
Найденные решения
26. Good_Smile 04.08.21 11:58 Сейчас в теме
(1) Все манипуляции с клиентом-сервером и непонятными ошибками лучше делать через временное хранилище
Передавать параметр - адрес временного хранилища, который возвращает функция ПоместитьВоВременноеХранилище()
Terabaytus; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. RocKeR_13 1325 04.08.21 11:05 Сейчас в теме
(1) По описанию вообще непонятно, как вы это пытаетесь "провернуть": нужно больше информации
5. RocKeR_13 1325 04.08.21 11:09 Сейчас в теме
(1)
&НаСервере
Функция Вопросы(Структура1)
    
      Структура = Структура1;
      
      Возврат Структура;
    
КонецФункции



&НаКлиенте
Процедура ВыборПриИзменении(Элемент)
    
    Структура = Новый Структура("Ключ", "Значение");
    Вопрос = Вопросы(Структура);
    
    Для Каждого Элемент Из Вопрос Цикл
            
        Сообщить(Элемент.Ключ + " " + Элемент.Значение);    
            
            
        КонецЦикла;

    

КонецПроцедуры
Показать
6. Terabaytus 04.08.21 11:10 Сейчас в теме
(5)Ругается на параметр что ничего о нём не знает вопрос же инициализирован функцией Вопросы.

Вопрос = Вопросы(<<?>>Структура); (Проверка: Тонкий клиент)
7. RocKeR_13 1325 04.08.21 11:13 Сейчас в теме
(6) Вы в функцию пытаетесь передать неинициализированную переменную
10. FatPanzer 04.08.21 11:15 Сейчас в теме
(7) Нет, поэтому выскакивает ошибка об отсутствующей переменной, а не передается Неопределено.
11. RocKeR_13 1325 04.08.21 11:16 Сейчас в теме
(10) Да я уже понял, что глупость сморозил)))
12. Terabaytus 04.08.21 11:17 Сейчас в теме
(7) Ни чего не понял в параметре Структура1 находиться данные как не определено ?
8. ixijixi 1805 04.08.21 11:13 Сейчас в теме
(6) Так на клиенте структура не определена, правильно ругается.
&НаСервере
Функция Вопросы()
    
      Структура = Новый Структура;
      
      Возврат Структура;
    
КонецФункции



&НаКлиенте
Процедура ВыборПриИзменении(Элемент)
    
    
    Вопрос = Вопросы();
    
    Для Каждого Элемент Из Вопрос Цикл
            
        Сообщить(Элемент.Ключ + " " + Элемент.Значение);    
            
            
        КонецЦикла;

    

КонецПроцедуры
Показать
FatPanzer; AnryMc; +2 Ответить
13. Terabaytus 04.08.21 11:18 Сейчас в теме
(8) По вашему коду пишет
Недостаточно фактических параметров (Вопросы)
15. ixijixi 1805 04.08.21 11:21 Сейчас в теме
(13)Функция Вопросы без параметров
&НаСервере
Функция Вопросы()
16. Terabaytus 04.08.21 11:24 Сейчас в теме
(15)
&НаСервере
Функция Вопросы()
зачем если я туда специально передал параметры чтобы их на клиенте увидеть возможно это не правильно я привёл пример мой вопрос заключается в
Как передать данные с сервера на клиент ?
18. FatPanzer 04.08.21 11:26 Сейчас в теме
(16)
Как передать данные с сервера на клиент ?

Возврат Структура;
19. пользователь 04.08.21 11:29
Сообщение было скрыто модератором.
...
20. пользователь 04.08.21 11:32
Сообщение было скрыто модератором.
...
22. пользователь 04.08.21 11:37
Сообщение было скрыто модератором.
...
24. пользователь 04.08.21 11:53
Сообщение было скрыто модератором.
...
25. пользователь 04.08.21 11:54
Сообщение было скрыто модератором.
...
21. ixijixi 1805 04.08.21 11:36 Сейчас в теме
(16) Не надо их туда передавать, потому что это передача с клиента на сервер.
А ты спрашивал, как передать с сервера на клиент.
Так что с клиента вызываешь серверную функцию (без параметров), в которой формируется твоя структура и которую ты потом вернешь на клиент.
Ферштейн?
27. Terabaytus 04.08.21 12:05 Сейчас в теме
(21)
Ферштейн?
понял только видимо это не мой случай. Я получаю данные для клиента в процедуре их надо передать на клиент как я уже писал вижу это через функцию, но возникают ошибки с параметрами. Вот как вы бы их передали ?
28. ixijixi 1805 04.08.21 12:17 Сейчас в теме
(27) Ты отдохни немного, кофе выпей)) А потом посмотри в (8), я уже всё написал
29. Terabaytus 04.08.21 12:24 Сейчас в теме
(28)Вы предлагаете создать функцию

&НаСервере
Функция Вопросы()
    
      Структура = Новый Структура;
      
      Возврат Структура;
    
КонецФункции

Показать

без параметров понятно, но мне надо через неё предать данные полученные в процедуре.
38. ixijixi 1805 04.08.21 14:31 Сейчас в теме
(29)
&НаКлиенте
Процедура ВыборПриИзменении(Элемент)
    
    // В это месте встань отладчиком и посмотри, что содержится в переменной Структура
    Вопрос = Вопросы(Структура);
    
    Для Каждого Элемент Из Вопрос Цикл
            
        Сообщить(Элемент.Ключ + " " + Элемент.Значение); 
            
    КонецЦикла;

КонецПроцедуры
Показать
9. kot26rus 04.08.21 11:15 Сейчас в теме
(6)А переменная "Структура" где определена?
14. Terabaytus 04.08.21 11:20 Сейчас в теме
(9)
А переменная "Структура" где определена?
&Насервере
17. Terabaytus 04.08.21 11:26 Сейчас в теме
(5)
(10)
(9) Я лишь пример привёл может есть другой способ мой вопрос заключается в
Как передать данные с сервера на клиент ?
23. AnryMc 849 04.08.21 11:41 Сейчас в теме
(17)
Как передать данные с сервера на клиент ?


"Попросить" сервер с клиента...

З.Ы. Уже не первый раз удивляет способность ИИ формулировать вопросы, а особенно выслушивать ответы...
FatPanzer; +1 Ответить
26. Good_Smile 04.08.21 11:58 Сейчас в теме
(1) Все манипуляции с клиентом-сервером и непонятными ошибками лучше делать через временное хранилище
Передавать параметр - адрес временного хранилища, который возвращает функция ПоместитьВоВременноеХранилище()
Terabaytus; +1 Ответить
2. kot26rus 04.08.21 10:59 Сейчас в теме
Покажите пример вашего кода, на что именно ругается.
4. Terabaytus 04.08.21 11:08 Сейчас в теме
(3)
(2)Дополнил вопрос кодом.
30. ddemon 29 04.08.21 13:23 Сейчас в теме
можно попробовать воспользоваться функциями

ЗначениеВСтрокуВнутр(

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

т.е. на клиенте Структуру оборачиваешь в строку, а на Клиенте из строки возвращаешь структуру.

но оно не сработает для тонкого клиента) эх ...)))
31. FatPanzer 04.08.21 13:30 Сейчас в теме
32. Sashares 34 04.08.21 13:53 Сейчас в теме
(30)Интересно, это уже можно считать призывом к насилию или еще нет?
33. FatPanzer 04.08.21 13:55 Сейчас в теме
(32) Да за такое надо банить на форуме намного агрессивнее, чем за мат!!!
34. ddemon 29 04.08.21 14:22 Сейчас в теме
(33) да-да, собрались мастера 1С, сразу видно))))). банить надо тех, кто конструктивно не дает замечаний.
35. FatPanzer 04.08.21 14:25 Сейчас в теме
(34) Ну расскажи мне, мастер, - в чем твой-то конструктив в этом совете??? Ну, окромя вредности и профнепригодности?
37. ddemon 29 04.08.21 14:31 Сейчас в теме
(35)я вам написал выше, если вы читать умеете, причитайте внимательно, а не между строк как вы умеете. и мастером себя в отличии от вас я не считаю, что так же написано выше.
39. Sashares 34 04.08.21 14:34 Сейчас в теме
(37)Прочитал внимательно.
Позвольте вас процитировать))

т.е. на клиенте Структуру оборачиваешь в строку, а на Клиенте из строки возвращаешь структуру.


очень информативно=)
41. ddemon 29 04.08.21 14:37 Сейчас в теме
(39) видимо вы идеал) мечта одинесника)) никогда не опечатывались и не ошибались))))
43. Sashares 34 04.08.21 14:41 Сейчас в теме
(41)Да это просто шутка была, не обижайтесь =)
44. ddemon 29 04.08.21 14:42 Сейчас в теме
(43) я не обидчивый. но за шутку спасибо!)))
45. ddemon 29 04.08.21 14:43 Сейчас в теме
(43)но каюсь. опечатался. грех на душу не буду брать. оставлю как есть без исправления.))
47. SlavaKron 04.08.21 14:58 Сейчас в теме
(45) Опечатались, но ЗначениеИзСтрокиВнутр/ЗначениеВСтрокуВнутр недоступны в тонком клиенте.
48. ddemon 29 04.08.21 15:00 Сейчас в теме
(47)совершено верно. что я ниже и написал) но кто бы читал(((
40. FatPanzer 04.08.21 14:37 Сейчас в теме
(37) Ты бы у меня даже в стажеры не прошел бы, если считаешь, что структуру нельзя передать с клиента на сервер и обратно "как есть". А уж за использование ЗначениеВСтрокуВнутр и ЗначениеИзСтрокиВнутр - и в джуны не прошел бы.
42. ddemon 29 04.08.21 14:40 Сейчас в теме
(40) как и ты у меня, таких выгоняю сразу, кто считает себя местным гением и вправе всех поучать. про передачу структуры как есть с сервера на клиент вроде как никто не писал. так что еще раз. сними корону, голову раздавит и перечитай.
46. ddemon 29 04.08.21 14:57 Сейчас в теме
(40)просто расскажи человеку какие данные можно передавать между сервером и клиентом и обратно, что такое примитивные типы, что такое мутабельные значения. он тебе спасибо скажет. а ты будешь глубоко спать с короной на ушах)))) но видимо у вас большая команды: вы и ...вы, остальных всех выгоняете))))
49. Sashares 34 04.08.21 15:04 Сейчас в теме
(46)У ТС сложности с возвратом данных с одной процедуры в другую даже с учетом того, что в теме есть примеры кода.
Мало хотеть рассказать, надо чтобы хотели слушать и понимать.
Это же не какие-то сокровенные знания, это основы.
Как из одной процедуры передать данные в другую процедуру.
Как вернуть данные функцией.
Тут ведь даже не о мутабельных значениях вопрос.

Еще конечно важно правильно формулировать вопросы. А то даже если получишь ответы, они никак не помогут.
DJ_Codebase; FatPanzer; +2 Ответить
55. ddemon 29 04.08.21 15:16 Сейчас в теме
(49) я с вами соглашусь и в тоже время не соглашусь. надо понимать, что тут на форуме нет ограничений по знаниям 1С. вопросы задают как новички и самоучки, так и с опытом. поэтому не всегда можно ждать правильность вопроса с высоты нашего знания.

но правильно сформулированный вопрос, это на половину ответ))) отличная штука метод "утенка" ))
36. ddemon 29 04.08.21 14:27 Сейчас в теме
50. SlavaKron 04.08.21 15:08 Сейчас в теме
(46) (49) Кстати, просветите, что такое мутабельные значения?
51. Sashares 34 04.08.21 15:09 Сейчас в теме
(50)Если в 2х словах, это переменные с типом, которые нельзя передать с клиента на сервер и обратно.
Пример - ДокументОбъект, СписокЗначений и подобные.
52. SlavaKron 04.08.21 15:10 Сейчас в теме
53. Sashares 34 04.08.21 15:10 Сейчас в теме
(52)Внезапно, да?
Он мутабельный в обычном приложении.
Прикрепленные файлы:
Светлый ум; ixijixi; DJ_Codebase; +3 Ответить
54. SlavaKron 04.08.21 15:15 Сейчас в теме
(53) Еще раз, вы пишите "это переменные с типом, которые нельзя передать с клиента на сервер и обратно."
&НаКлиенте
Процедура Команда1(Команда)
	СписокЗначений = Новый СписокЗначений;
	Команда1НаСервере(СписокЗначений);
	Сообщить(СписокЗначений[0].Значение) //Элемент1
КонецПроцедуры

&НаСервереБезКонтекста
Процедура Команда1НаСервере(СписокЗначений)
	СписокЗначений.Добавить("Элемент1");
КонецПроцедуры
Показать
Тута и сюда передается. Ваше определение не работает
56. Sashares 34 04.08.21 15:16 Сейчас в теме
(54)Не уточнил, сразу, извиняюсь - он мутабельный в обычном приложении.
То есть если будет модуль с флагом Сервер и Вызов сервера - с него в обычном приложении не вернуть список значений в клиент-серверной базе.
DJ_Codebase; +1 Ответить
57. Sashares 34 04.08.21 15:25 Сейчас в теме
(54)Список значений не удачный пример, это тяжкое наследие обычного приложения.
Мутабельные - все объектные - справочник объект, документ объект, ПВХ объект, объект обработки и подобные.
https://kb.mista.ru/article.php?id=941
58. SlavaKron 04.08.21 15:39 Сейчас в теме
(57) Читал это определение. Иными словами, понятие "мутабельное значение" имеет смысл только в режиме Обычного приложения и относится к тем типам данных, про которые указано, что они мутабельные в СП? =) Я думал будет какой-нибудь более прозрачный критерий, объясняющий суть.
59. spacecraft 04.08.21 15:47 Сейчас в теме
(58) Руководство разработчика.
4.3. Типы данных и переменные
Типы бывают мутабельными (изменяемыми) и иммутабельными (неизменяемыми). Иммутабельный тип ‑ это тип, для которого после создания значения невозможно изменить состояние объекта. Подмножеством иммутабельных типов являются примитивные типы: Неопределено, NULL, Число, Дата, Строка, Булево. Если, например, со значением типа Число выполняется какая-либо операция ‑ создается новое значение типа Число, но не происходит модификации уже существующего объекта. В то же время примером мутабельного типа служит, например, тип, описывающий какой-либо элемент справочника (подробнее см. здесь). Мутабельный тип позволяет изменять состояние объекта этого типа, не создавая нового объекта. Еще одно различие между объектами мутабельных и иммутабельных типов заключается в том, как выполняется сравнение этих объектов:

● Значения иммутабельных типов сравниваются «по значению», поэтому значения разных переменных типа Число будут равны, если для создания каждого значения использовалось одно и тоже значение числа.

● Значения мутабельных типов сравниваются «по ссылке». Другими словами, сравниваются адреса памяти, где размещаются значения. Таким образом, два значения мутабельного типа, даже ссылающихся на один и тот же физический элемент данных (например, элемент справочника с одной и той же ссылкой), всегда не равны друг-другу. Значение мутабельного типа равно только само себе.
61. SlavaKron 04.08.21 15:57 Сейчас в теме
(59) То есть возможность или невозможность передачи значения между сервером и клиентом вообще не является критерием мутабельности?
62. spacecraft 04.08.21 15:59 Сейчас в теме
(61) это просто частая ошибка была в свое время. Вот и было на слуху. А так это только следствие мутабельности.
63. SlavaKron 04.08.21 16:00 Сейчас в теме
(62) Ну вот, например, массив мутабелен по всем признакам, но такого "следствия" не имеет.
64. spacecraft 04.08.21 16:06 Сейчас в теме
(63) так нигде и не говориться, что любые мутабельные значения невозможно передавать.
65. SlavaKron 04.08.21 16:09 Сейчас в теме
(64) Тогда у меня, скорее, вопрос в том, есть ли какая-либо закономерность между определённым мутабельным типом и его возможностью передачи клиент/сервер?
66. spacecraft 04.08.21 16:10 Сейчас в теме
(65) закономерности нет. Есть СП, где могут быть "противопоказания".
60. Sashares 34 04.08.21 15:49 Сейчас в теме
(58) Если рассматривать только особенность передачу между клиентом и сервером, то по сути да.
В управляемом приложении текст ошибки при передаче таких объектов изменился.
Вместо "Попытка передачи мутабельного значения" как это было в обычном приложении, теперь выдается "Ошибка преобразования данных XDTO" (если вернуть объект) или "Отсутствует отображение типа" (если вернуть таблицу значений). Может еще какие есть.

С объектами есть и другие проблемы - их нельзя поместить во временное хранилище чтобы потом передать в параметр в фонового задания. При получении из временного хранилища в фоновом задании такие параметры будут неопределено.
67. DJ_Codebase 04.08.21 16:40 Сейчас в теме
(54)
Ваше определение не работает

в трехзвенке не работает, поверь. И еще мутабельные значения нельзя проверять функцией ЗначениеЗаполнено()
68. SlavaKron 04.08.21 16:52 Сейчас в теме
(67)
в трехзвенке не работает, поверь
Я ведь и написал, что "не работает" и это был ответ на определение "переменные с типом, которые нельзя передать с клиента на сервер и обратно." без указания режима запуска. Да и по теме мы вроде бы пришли к выводу, что невозможность передачи не может являться определением мутабельности.
69. DJ_Codebase 04.08.21 16:56 Сейчас в теме
(68) Пост 56 прочитал, когда уже написал сообщение

Я ведь и написал, что "не работает"


это было уже в след. посте. сорри
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот