Можно ли в модуле передать значение переменной из процедуры НаСервере в процедуру НаКлиенте,или объявить ее глобальной?

1. solodovnikov.84 11 27.10.17 10:56 Сейчас в теме
Добрый день!
Осваиваю возможность программно работать с директивами НаСервере и НаКлиенте.Задача такая.При открытии формы программно у меня передается в нее определенное значение.Процедура &НаСервере "ПриСозданииНаСервере",далее у меня идет процедура &НаКлиенте "ПриОткрытии" и мне там нужно это значение.Каким образом можно передать с сервера на клиент?И вообще это возможно?
Найденные решения
2. Dream_kz 129 27.10.17 11:15 Сейчас в теме
(1) Записать в реквизит формы
solodovnikov.84; herfis; user633533_encantado; starik-2005; +4 Ответить
3. Aitbay 27.10.17 11:25 Сейчас в теме
на сервере
Объект.Поле = Значение
или если реквизит формы то просто
реквизитформы = значение
solodovnikov.84; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dream_kz 129 27.10.17 11:15 Сейчас в теме
(1) Записать в реквизит формы
solodovnikov.84; herfis; user633533_encantado; starik-2005; +4 Ответить
4. solodovnikov.84 11 27.10.17 16:17 Сейчас в теме
(2)
(3)Парни что то не выходит. Работу операторов не могу сформулировать и подобрать нужные. Вот у меня Этаформа (УправляемаяФорма),как программно ей добавить параметр?И вот вопрос в окне,что на скриншоте можно же задать параметр.Я так понимаю как раз для формы устанавливаются они,но как это сделать.
У меня это происходит в процедуре
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
Прикрепленные файлы:
5. Dream_kz 129 27.10.17 16:30 Сейчас в теме
(4) Параметр можно передавать в методе ОткрытьФорму(ИмяФормы, ПараметрыСтруктурой), но доступны они будут только в процедуре ПриСозданииНаСервере в переменной Параметры. Если форма своя, пиши в реквизит формы, проблем меньше.
solodovnikov.84; +1 Ответить
6. solodovnikov.84 11 27.10.17 17:10 Сейчас в теме
(5)Не правильно выразился. Не параметр,а реквизит ссылка, которая определяется на клиенте при открытии
7. herfis 513 27.10.17 17:27 Сейчас в теме
Тебе уже ответили в (2).
Единственный человеческий способ "пробросить" из ПриСозданииНаСервере() полученный параметр формы на клиента, это записать его значение в реквизит формы.
Если еще не читал эту статью, то обязательно сначала прочти ее.
solodovnikov.84; +1 Ответить
8. solodovnikov.84 11 27.10.17 17:52 Сейчас в теме
(7)Спасибо обязательно прочту. Еще не читал. Да ответ в голове я принял, просто злой мозг стал выдумывать не бывалые вещи. И искать привычные по обычным формам решения. А проблему решил именно созданием реквизита в конечном итоге. Недавно начал работать с УФ. Все кажется диким и не понятным. Поэтому и пытаюсь собрать все возможные варианты решений.
9. herfis 513 27.10.17 17:59 Сейчас в теме
(8) Тогда бросай все и читай статью :) Специально для тебя написана. Многое прояснится.
10. solodovnikov.84 11 27.10.17 20:11 Сейчас в теме
(9)Обязательно прочту.Спасибо!
11. solodovnikov.84 11 27.10.17 20:13 Сейчас в теме
(9)Если вдруг еще интересные статьи,скинь если не жалко.
3. Aitbay 27.10.17 11:25 Сейчас в теме
на сервере
Объект.Поле = Значение
или если реквизит формы то просто
реквизитформы = значение
solodovnikov.84; +1 Ответить
12. abion 26.10.20 15:42 Сейчас в теме
Передача значения через реквизит формы кажется неправильным решением. Если много значений и форма сложная то такой подход будет утяжелять форму и это отразится на конечном пользователе.
Неужели нельзя никак подругому передать значение из ПриСозданииНаСервере в ПриОткрытии?
13. SlavaKron 26.10.20 15:56 Сейчас в теме
(12) Через временное хранилище можно. Понадобится только 1 реквизит формы для передачи адреса во временном хранилище. Это может быть полезно, если вы хотите иметь на клиенте некоторые данные, но не хотите чтобы они улетали на сервер при любом серверном контекстном вызове
&НаКлиенте
Перем КлиентскийКэш;

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	Структура = Новый Структура;
	Структура.Вставить("МоеЗначение", 1);
	
	
	// АдресВХранилище – строковый реквизит формы
	АдресВХранилище = ПоместитьВоВременноеХранилище(Структура);
	
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	КлиентскийКэш = ПолучитьИзВременногоХранилища(АдресВХранилище);
	
КонецПроцедуры
Показать
slige_work; GV.; +2 Ответить
14. abion 26.10.20 15:58 Сейчас в теме
(12)
Можно передать через ключевой параметр формы который надо создать на вкладке Параметры в конфигураторе.
15. SlavaKron 26.10.20 16:07 Сейчас в теме
(14) Это тоже самое, что через реквизит формы. Параметры являются данными формы, а значит для них недоступны коллекции типа Массив, Соответствие, Структура. Также имеем ненужные передачи данных при контекстных вызовах.
Оставьте свое сообщение

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